08.09.2021, 15:03
(Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2021, 18:11 von schauan.
Bearbeitungsgrund: Leerzeilen entfernt
)
Hallo zusammen,
Ich versuche gerade eine Excel-Datei durch Makros zu vereinfachen, jedoch finde ich die Formel welche ich benötige nicht im Netz, deswegen bin ich hier.
Da ich mich mit dem erweiterten Programmieren von Makros kaum auskenne, stelle ich diese Frage.
Ich habe Folgendes Makro angefangen:
Sub ErweiterungV1()
x = selection.Row
y = selection.Column
selection.FillDown
End Sub
Das Makro soll die ausgewählte Zeile durch Filldown fortführen.
bevor das Makro das tut, soll es eine neue leere Zeile einfügen, wo dann die Formeln von der Zeile darüber Filldowned werden.
Meine Originale Idee welche sich als etwas kompliziert rausgestellt hat (zumindest für mich)war Folgendes:
Ich habe eine Test Datei erstellt.
in der Datei ist ein simples Makro, welches die Deckblatt Tabelle erweitert und dann auf Vorlage1 geht, um diese durch eine Weitere Tabelle, der Vorlage 1, aus dem Blatt Vorlagen zu Erweitern.
Wie ihr seht, erweitert das Makro die Tabelle immer in Zeile 5 (fügt eine neue Zeile ein und zieht die Formeln von Zeile 4 runter), jedoch sollte die Tabelle nachdem sie in Zeile 5 erweitert wurde, dann beim nächsten betätigen in Zeile 6 erweitert werden und auch die Formeln bis Zeile 6 ziehen. Dann soll das Makro die Vorlage1 aus Vorlagen kopieren und unter die vorherige Tabelle in Vorlage 1 einfügen und dann das Kontrollkästchen um 1 zur vorherigen Tabelle erweitern.
Dann bräuchte ich auch noch ein weiteres Makro, welches das Selbe mit Vorlage2 macht, wo es dann nochmal etwas komplexer wird, da das Makro abhängig von der Position von Vorlage1 die Tabelle erweitern muss, da Vorlage 2 durch das Hinzufügen von Einträgen von Vorlage 1 auch immer weiter runter geschoben wird. (Hier Wäre es eventuell möglich Vorlage 2 auf ein separates Blatt zu Tun um das ganze zu vereinfachen)
Die Kontrollkästchen sind für den Status auf dem Deckblatt zuständig, in einer Tabelle ist es immer das unterste Kästchen, welches den Status durch eine WAHR/FALSCH abfrage bestimmt.
Hier das Makro:
Sub Erweitern_von_V1()
'
' Erweitern_von_V1 Makro
' Fügt eine neue Zeile in Zeile 5 ein und erweitert die Formel von Zeile 4 auf Zeile 5. Dann nimmt es die Vorlage 1 aus dem Blatt Vorlagen und fügt sie in das Blatt Vorlage 1 unter die bereits erstellte Tabelle
'
'
Rows("5:5").Select
Range("B5").Activate
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A4").Select
Selection.AutoFill Destination:=Range("A4:A5"), Type:=xlFillDefault
Range("A4:A5").Select
Range("B4").Select
Selection.AutoFill Destination:=Range("B4:B5"), Type:=xlFillDefault
Range("B4:B5").Select
Range("D4").Select
Selection.AutoFill Destination:=Range("D4:D5"), Type:=xlFillDefault
Range("D4:D5").Select
Range("E4").Select
Selection.AutoFill Destination:=Range("E4:E5"), Type:=xlFillDefault
Range("E4:E5").Select
Range("F4").Select
Selection.AutoFill Destination:=Range("F4:F5"), Type:=xlFillDefault
Range("F4:F5").Select
Range("G4").Select
Selection.AutoFill Destination:=Range("G4:G5"), Type:=xlFillDefault
Range("G4:G5").Select
Range("H4").Select
Selection.AutoFill Destination:=Range("H4:H5"), Type:=xlFillDefault
Range("H4:H5").Select
Sheets("Vorlagen").Select
Range("A3:G23").Select
Selection.Copy
Sheets("Vorlage1").Select
Range("A44").Select
ActiveSheet.CheckBoxes.Add(369, 89.25, 30.75, 31.5).Select
ActiveSheet.CheckBoxes.Add(464.25, 95.25, 30.75, 23.25).Select
ActiveSheet.CheckBoxes.Add(369, 111, 30.75, 31.5).Select
ActiveSheet.CheckBoxes.Add(464.25, 117, 30.75, 23.25).Select
ActiveSheet.CheckBoxes.Add(369, 132.75, 30.75, 31.5).Select
ActiveSheet.CheckBoxes.Add(464.25, 138.75, 30.75, 23.25).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=21
End Sub
Was ich von meinem will Makro ist, dass wenn es die Deckblatt und die Vorlage1 Tabellen erweitert, dass es immer ganz unten in der Tabelle anfängt. Mit dem momentanem Makro, fängt es immer in Zeile 5 an, aber es soll wenn es fertig ist die Tabelle immer Über der Überschrift "Vorlage2" erweitern.
Die Deckblatt Tabelle soll lediglich eine Zusammenfassung von Vorlage1 und 2 sein welche sich selbst aktualisiert.
Das Makro soll die Vorgefertigte Tabelle erstellen unter der vorherigen und diese dann so Formatieren, dass man nur noch die Werte in die Tabelle schreiben muss und diese dann automatisch auf das Deckblatt übernommen werden.
Ich versuche gerade eine Excel-Datei durch Makros zu vereinfachen, jedoch finde ich die Formel welche ich benötige nicht im Netz, deswegen bin ich hier.
Da ich mich mit dem erweiterten Programmieren von Makros kaum auskenne, stelle ich diese Frage.
Ich habe Folgendes Makro angefangen:
Sub ErweiterungV1()
x = selection.Row
y = selection.Column
selection.FillDown
End Sub
Das Makro soll die ausgewählte Zeile durch Filldown fortführen.
bevor das Makro das tut, soll es eine neue leere Zeile einfügen, wo dann die Formeln von der Zeile darüber Filldowned werden.
Meine Originale Idee welche sich als etwas kompliziert rausgestellt hat (zumindest für mich)war Folgendes:
Ich habe eine Test Datei erstellt.
in der Datei ist ein simples Makro, welches die Deckblatt Tabelle erweitert und dann auf Vorlage1 geht, um diese durch eine Weitere Tabelle, der Vorlage 1, aus dem Blatt Vorlagen zu Erweitern.
Wie ihr seht, erweitert das Makro die Tabelle immer in Zeile 5 (fügt eine neue Zeile ein und zieht die Formeln von Zeile 4 runter), jedoch sollte die Tabelle nachdem sie in Zeile 5 erweitert wurde, dann beim nächsten betätigen in Zeile 6 erweitert werden und auch die Formeln bis Zeile 6 ziehen. Dann soll das Makro die Vorlage1 aus Vorlagen kopieren und unter die vorherige Tabelle in Vorlage 1 einfügen und dann das Kontrollkästchen um 1 zur vorherigen Tabelle erweitern.
Dann bräuchte ich auch noch ein weiteres Makro, welches das Selbe mit Vorlage2 macht, wo es dann nochmal etwas komplexer wird, da das Makro abhängig von der Position von Vorlage1 die Tabelle erweitern muss, da Vorlage 2 durch das Hinzufügen von Einträgen von Vorlage 1 auch immer weiter runter geschoben wird. (Hier Wäre es eventuell möglich Vorlage 2 auf ein separates Blatt zu Tun um das ganze zu vereinfachen)
Die Kontrollkästchen sind für den Status auf dem Deckblatt zuständig, in einer Tabelle ist es immer das unterste Kästchen, welches den Status durch eine WAHR/FALSCH abfrage bestimmt.
Hier das Makro:
Sub Erweitern_von_V1()
'
' Erweitern_von_V1 Makro
' Fügt eine neue Zeile in Zeile 5 ein und erweitert die Formel von Zeile 4 auf Zeile 5. Dann nimmt es die Vorlage 1 aus dem Blatt Vorlagen und fügt sie in das Blatt Vorlage 1 unter die bereits erstellte Tabelle
'
'
Rows("5:5").Select
Range("B5").Activate
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A4").Select
Selection.AutoFill Destination:=Range("A4:A5"), Type:=xlFillDefault
Range("A4:A5").Select
Range("B4").Select
Selection.AutoFill Destination:=Range("B4:B5"), Type:=xlFillDefault
Range("B4:B5").Select
Range("D4").Select
Selection.AutoFill Destination:=Range("D4:D5"), Type:=xlFillDefault
Range("D4:D5").Select
Range("E4").Select
Selection.AutoFill Destination:=Range("E4:E5"), Type:=xlFillDefault
Range("E4:E5").Select
Range("F4").Select
Selection.AutoFill Destination:=Range("F4:F5"), Type:=xlFillDefault
Range("F4:F5").Select
Range("G4").Select
Selection.AutoFill Destination:=Range("G4:G5"), Type:=xlFillDefault
Range("G4:G5").Select
Range("H4").Select
Selection.AutoFill Destination:=Range("H4:H5"), Type:=xlFillDefault
Range("H4:H5").Select
Sheets("Vorlagen").Select
Range("A3:G23").Select
Selection.Copy
Sheets("Vorlage1").Select
Range("A44").Select
ActiveSheet.CheckBoxes.Add(369, 89.25, 30.75, 31.5).Select
ActiveSheet.CheckBoxes.Add(464.25, 95.25, 30.75, 23.25).Select
ActiveSheet.CheckBoxes.Add(369, 111, 30.75, 31.5).Select
ActiveSheet.CheckBoxes.Add(464.25, 117, 30.75, 23.25).Select
ActiveSheet.CheckBoxes.Add(369, 132.75, 30.75, 31.5).Select
ActiveSheet.CheckBoxes.Add(464.25, 138.75, 30.75, 23.25).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=21
End Sub
Was ich von meinem will Makro ist, dass wenn es die Deckblatt und die Vorlage1 Tabellen erweitert, dass es immer ganz unten in der Tabelle anfängt. Mit dem momentanem Makro, fängt es immer in Zeile 5 an, aber es soll wenn es fertig ist die Tabelle immer Über der Überschrift "Vorlage2" erweitern.
Die Deckblatt Tabelle soll lediglich eine Zusammenfassung von Vorlage1 und 2 sein welche sich selbst aktualisiert.
Das Makro soll die Vorgefertigte Tabelle erstellen unter der vorherigen und diese dann so Formatieren, dass man nur noch die Werte in die Tabelle schreiben muss und diese dann automatisch auf das Deckblatt übernommen werden.