VBA Hilfe für Neuling
#1
Hallo zusammen, 
ich habe leider erst sehr wenig Erfahrung mit VBA, deswegen eine eher primitive Frage, wie ich vermute:

im Anhang ist eine Datei, dass man sich das Problem besser vorstellen kann.
Ich habe eine große Reihe an Artikelnummern. Von denen soll jede einzelne Artikelnummer oben in C2 eingefügt werden. In "material" usw. sind formeln hinterlegt, die anhand dieser Daten ziehen und im Feld "Summe" in C10 erscheinen die Kosten. (vereinfachte darstellung)

Nun möchte ich, dass im Prinzip B16 ausgewählt wird, in C2 eingefügt wird, dann erscheint automatisch unten die Summe, die Summe soll kopiert werden und in C16 eingefügt werden neben den entsprechenden Artikel.
Bis dahin kein Problem. Allerdings soll das ganze ja auch für die Artikel B17 bis B22 getan werden (in Realität sind es mehrere hundert) und entsprechend die Kosten immer neben den entsprechenden Artikel geschrieben werden.
Mein Ansatz ist folgender:

Range("B16:B22").Select
    Selection.Copy
    Range("C2").Select
    ActiveSheet.Paste
    Range("C10").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("C16").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False



Das Problem ist, dass er immer alle Artikel in der Range kopiert und einfügt, was die ganze Rechnung oben zerstört. Es soll jeder Artikel einzeln oben eingefügt werden (ich vermute ja schleifen usw. jedoch weiß ich die exakte Syntax nicht. Außerdem muss die Summe ja immer neben den entsprechenden Artikel und nicht nur in C16 sondern auch C17 usw. 

Danke für eure Hilfe.


Angehängte Dateien
.xlsm   MappeMakro.xlsm (Größe: 13,31 KB / Downloads: 8)
Antworten Top
#2
Hallo,

für mich erschließt sich nicht, was du da berechnen möchtest. Abgesehen davon entspricht der Aufbau deiner Liste in keiner Weise den Excel-Regeln.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Es geht nicht um eine Berechnung. Ich möchte nur wissen, wie ich aus der Artikelliste unten mit einem Makro jedes einzelne dieser Felder oben reinkopieren kann mit Hilfe eines Makros von oben nach unten. Wenn der Artikel oben eingefügt ist, sind in der Realdatei (meine ist nur zum vorspielen) Formeln hinterlegt, die aus einem anderen Reiter die Kosten dieses Artikels in das Feld "Summe" eintragen. Dieses Kostenfeld soll dann kopiert werden und neben dem Artikel unten in der Liste eingefügt werden. 

Das Problem ist, wenn ich dem Makro sage Range (Feld 1 - Feld x).select  , dann wird die gesamte Liste oben eingefügt und nicht jedes einzelne Feld. Ich möchte aber dass jeder Artikel einzeln oben eingefügt wird, weil sich die anderen Felder sonst die Daten nicht ziehen können.
Antworten Top
#4
Hallo,

dann versuche es mal so:

Code:
Sub übertrag()
    Range("C2:I2") = Application.Transpose(Range("B16:B22"))
End Sub


Hinweis: Select ist eine Anweisung, die in über 90% aller Fälle überflüssig ist. Der Makrorekorder ist nicht besonders gut geeignet, wenn man den Umgang mit VBA lernen möchte.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste