28.09.2017, 16:52
Hallo zusammen,
ich benötige bitte Unterstützung bei meinem Code.
Das ganze ist egtl. recht simpel. Der Makro soll Personendaten aus einer Tabelle in ein Berechnungstool einfügen und dann die Ergbenisseiten drucken + das ganze unter einem neuen Namen speichern.
Es handelt sich um Daten von mehreren 100 Personen, je Zeile eine Person.
Hier mein Code:
---------
Private Sub CommandButton1_Click()
Dim DateiName As String
Dim path As String
DateiName = Worksheets("Makros").Range("A1").Value
path = ActiveWorkbook.path + DateiName
'Name
Sheets("40 b FINAL").Range("A2").Copy
Sheets("Eingaben").Range("D5").PasteSpecial xlPasteValues
'Geburtsdatum
Sheets("40 b FINAL").Range("C2").Copy
Sheets("Eingaben").Range("D7").PasteSpecial xlPasteValues
Sheets("40 b FINAL").Range("D2").Copy
Sheets("Eingaben").Range("E7").PasteSpecial xlPasteValues
Sheets("40 b FINAL").Range("E2").Copy
Sheets("Eingaben").Range("F7").PasteSpecial xlPasteValues
'Diensteintrittsdatum
Sheets("40 b FINAL").Range("G2").Copy
Sheets("Eingaben").Range("D11").PasteSpecial xlPasteValues
Sheets("40 b FINAL").Range("H2").Copy
Sheets("Eingaben").Range("E11").PasteSpecial xlPasteValues
Sheets("40 b FINAL").Range("I2").Copy
Sheets("Eingaben").Range("F11").PasteSpecial xlPasteValues
' speichern
ActiveWorkbook.SaveAs path
'drucken
Sheets("Eingaben").PrintOut
Sheets("Steuerliche Auswirkungen").PrintOut
End Sub
------------
Es funktioniert auch. Nun komme ich jedoch nicht drauf, wie ich eine vernünftigte Schleife einbaue. Das Makro soll diesen Vorgang im Prinzip direkt wiederholen, für die Person deren Daten in der Zeile darunter (also in Zeile 3) stehen. Und dann immer wieder, bis es auf eine Zeile stößt, deren erste Zelle leer ist. Dann soll der Prozess enden.
Kann mir jemand helfen? Wahrscheinlich ist die Lösung recht unkompliziert...
Achja, und es gibt noch das Problem, dass er die Datei zwar unter neuem Namen speichert, aber dann auch die Ursprungsdatei schließt. Egtl soll es so aussehen, dass er es unter einem neuen Namen speichert, jedoch diese Datei dann nicht öffnet. Ist das auch machbar?
Danke im Voraus!
ich benötige bitte Unterstützung bei meinem Code.
Das ganze ist egtl. recht simpel. Der Makro soll Personendaten aus einer Tabelle in ein Berechnungstool einfügen und dann die Ergbenisseiten drucken + das ganze unter einem neuen Namen speichern.
Es handelt sich um Daten von mehreren 100 Personen, je Zeile eine Person.
Hier mein Code:
---------
Private Sub CommandButton1_Click()
Dim DateiName As String
Dim path As String
DateiName = Worksheets("Makros").Range("A1").Value
path = ActiveWorkbook.path + DateiName
'Name
Sheets("40 b FINAL").Range("A2").Copy
Sheets("Eingaben").Range("D5").PasteSpecial xlPasteValues
'Geburtsdatum
Sheets("40 b FINAL").Range("C2").Copy
Sheets("Eingaben").Range("D7").PasteSpecial xlPasteValues
Sheets("40 b FINAL").Range("D2").Copy
Sheets("Eingaben").Range("E7").PasteSpecial xlPasteValues
Sheets("40 b FINAL").Range("E2").Copy
Sheets("Eingaben").Range("F7").PasteSpecial xlPasteValues
'Diensteintrittsdatum
Sheets("40 b FINAL").Range("G2").Copy
Sheets("Eingaben").Range("D11").PasteSpecial xlPasteValues
Sheets("40 b FINAL").Range("H2").Copy
Sheets("Eingaben").Range("E11").PasteSpecial xlPasteValues
Sheets("40 b FINAL").Range("I2").Copy
Sheets("Eingaben").Range("F11").PasteSpecial xlPasteValues
' speichern
ActiveWorkbook.SaveAs path
Sheets("Eingaben").PrintOut
Sheets("Steuerliche Auswirkungen").PrintOut
End Sub
------------
Es funktioniert auch. Nun komme ich jedoch nicht drauf, wie ich eine vernünftigte Schleife einbaue. Das Makro soll diesen Vorgang im Prinzip direkt wiederholen, für die Person deren Daten in der Zeile darunter (also in Zeile 3) stehen. Und dann immer wieder, bis es auf eine Zeile stößt, deren erste Zelle leer ist. Dann soll der Prozess enden.
Kann mir jemand helfen? Wahrscheinlich ist die Lösung recht unkompliziert...
Achja, und es gibt noch das Problem, dass er die Datei zwar unter neuem Namen speichert, aber dann auch die Ursprungsdatei schließt. Egtl soll es so aussehen, dass er es unter einem neuen Namen speichert, jedoch diese Datei dann nicht öffnet. Ist das auch machbar?
Danke im Voraus!