Hallo,
probiere gerade ein Makro zu schreiben. Sinn des Makros ist es, aus einem Formular verschiedene Werte in eine Uebersicht zu kopieren, damit man das nicht immer manuell machen muss.
Das kopieren funktioniert soweit ganz gut. Es kann jedoch vorkommen, dass in dem Formular ein Wert nicht angegeben ist. Wenn dem so ist, springt er mir mit meinem Makro nicht in die naechste Zeile.
Es gaebe also zwei Moeglichkeiten dem ganzen entgegenzuwirken.
-
Es wird immer auf einen Wert Bezug genommen (der immer ausgefuellt werden muss) sofern dieser in der Uebersicht dann vorhanden ist, springt er fuer eine Neueingabe automatich in die naechste Zeile.
-
Die Zellen in dem Formular werden ueberprueft. Sofern kein Wert in der Zelle vorhanden ist, soll ein #NA erscheinen. Anschliessend wird dann kopiert.
Ebenso muss ich dieses Kopiermakro fuer jeden Wert einzeln ausfuehren. Ist im Grunde kein groesseres Problem, nur ne Copy / Paste Geschichte, aber ggf. hat ja wer ne Idee wie man das vereinfachen koennte.
Das Makro wie ich es im Moment habe sieht so aus (ist derzeit auf 3 Werte beschraenkt, sind aber ca. 30 Werte die kopiert werden sollen) :
Sub Macro1()
’ Macro1 Macro
Windows(„X.xlsx“).Activate 'wechseln zum Formular
Range(„K3:L3“).Select '1. Wert auswaehlen
Selection.Copy 'kopieren
Windows(„X Overview.xlsm“).Activate 'in Uebersicht wechseln
Range(„b5“).Select 'in Uebersicht bereich makieren, wo Wert stehen soll
For i = 5 To 5700 'check ob Zeile bereits beschrieben ist, oder nicht
If ActiveCell.Value „“ Then ActiveCell.Offset(1, 0).Select Else Exit For
Next i
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
=False, Transpose:=False 'einfuegen
Windows(„X.xlsx“).Activate
Range(„b8:d8“).Select
Selection.Copy
Windows(„X Overview.xlsm“).Activate
Range(„c5“).Select
For i = 5 To 5700
If ActiveCell.Value „“ Then ActiveCell.Offset(1, 0).Select Else Exit For
Next i
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
=False, Transpose:=False
Windows(„X.xlsx“).Activate
Range(„j8:l8“).Select
Selection.Copy
Windows(„X Overview.xlsm“).Activate
Range(„d5“).Select
For i = 5 To 5700
If ActiveCell.Value „“ Then ActiveCell.Offset(1, 0).Select Else Exit For
Next i
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
=False, Transpose:=False
End Sub
Wuerde mich freuen, wenn mir jemand unter die Arme greifen koennte.
Gruss~~
Marcel