Hallo liebe Community!
Ich habe in Excel gezielt ein Makro aufgezeichnet. Dabei geht's darum, dass über INDEX und VERGLEICH gewisse Informationen in gewünschter Art und Weise referenziert und dargestellt werden sollen.
Das bedeutet konkret folgendes:
Ich beginne in der 2.ten Zeile über diese Formeln (INDEX, VERGLEICH) meine Informationen anzuzeigen. Nachdem ich mit der 2.ten Zeile, als Ausgangszeile, fertig bin, markiere ich die relevanten Zellen, dieser Zeile, und ziehe bis zu einer Zeilennummer X runter. Durch das automatische ausfüllen der Informationen habe ich dann, wie gewünscht, alles bis zur Zeile X, richtig befüllt!
Im Grunde, eignet sich für dieses Vorgehen ein Makro ganz gut und so hab ich es aufgezeichnet:
Mein Problem bei dem ganzen ist nun, dass ich gerne keine "fixe" Zeilennummer als "Endpunkt" haben möchte, sondern dass ich stattdessen, eine Variable, der beliebig ein Wert zugewiesen werden kann, haben möchte.
Meine Idee/Ansatz ist nun folgender:
Ich möchte eigentlich durch die Row Count Funktion, das letzte befüllte Feld einer Spalte ermitteln. Dieser Wert muss dann in eine Variable gespeichert werden und soll durch eine Art Schleife, die Autofill-Funktionalität (also das Runterziehen) bis zu der "Endposition" laufen lassen. Diese "Endposition" wird durch den Wert der Variable (nur die Zeilennummer) definiert!
Hat jemand eine Idee, wie ich das im Code umsetzen muss, damit ich "das runterziehen" von markierten Zellen, automatisiert, bis zu dem Wert, der eben auch automatisch durch die Row Count Funktionalität ermittelt wird, ausführen kann??
Vorab noch: Ich bin totaler VBA Anfänger!
Vielen Dank schon mal im Voraus an die Experten!!
Ich habe in Excel gezielt ein Makro aufgezeichnet. Dabei geht's darum, dass über INDEX und VERGLEICH gewisse Informationen in gewünschter Art und Weise referenziert und dargestellt werden sollen.
Das bedeutet konkret folgendes:
Ich beginne in der 2.ten Zeile über diese Formeln (INDEX, VERGLEICH) meine Informationen anzuzeigen. Nachdem ich mit der 2.ten Zeile, als Ausgangszeile, fertig bin, markiere ich die relevanten Zellen, dieser Zeile, und ziehe bis zu einer Zeilennummer X runter. Durch das automatische ausfüllen der Informationen habe ich dann, wie gewünscht, alles bis zur Zeile X, richtig befüllt!
Im Grunde, eignet sich für dieses Vorgehen ein Makro ganz gut und so hab ich es aufgezeichnet:
Visual Basic-Quellcode
- Sub Bestelltabelle_ergänzen()
- '
- ' Bestelltabelle_ergänzen Makro
- '
- ActiveWindow.ScrollColumn = 2
- ActiveWindow.ScrollColumn = 3
- ActiveWindow.ScrollColumn = 4
- ActiveWindow.ScrollColumn = 5
- ActiveWindow.ScrollColumn = 6
- ActiveWindow.ScrollColumn = 7
- ActiveWindow.ScrollColumn = 8
- ActiveWindow.ScrollColumn = 9
- ActiveWindow.ScrollColumn = 10
- ActiveWindow.ScrollColumn = 11
- ActiveWindow.ScrollColumn = 12
- ActiveWindow.ScrollColumn = 13
- Range("T2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("U2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("V2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("W2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("X2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("Y2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("Z2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("AA2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("AB2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("AC2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-17],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("AD2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-19],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("AD3").Select
- ActiveWindow.ScrollColumn = 14
- ActiveWindow.ScrollColumn = 15
- ActiveWindow.ScrollColumn = 16
- ActiveWindow.ScrollColumn = 17
- Range("AE2").Select
- ActiveCell.FormulaR1C1 = _
- "=INDEX('1_Alle_Aufträge_zu_Equipments'!C[-18],MATCH(RC1,'1_Alle_Aufträge_zu_Equipments'!C10,0))"
- Range("T2:AE2").Select
- Selection.AutoFill Destination:=Range("T2:AE185"), Type:=xlFillDefault
- Range("T2:AE185").Select
- ActiveWindow.ScrollColumn = 12
- ActiveWindow.ScrollColumn = 11
- ActiveWindow.ScrollColumn = 10
- ActiveWindow.ScrollColumn = 9
- ActiveWindow.ScrollColumn = 8
- ActiveWindow.ScrollColumn = 7
- ActiveWindow.ScrollColumn = 6
- ActiveWindow.ScrollColumn = 5
- ActiveWindow.ScrollColumn = 4
- ActiveWindow.ScrollColumn = 3
- ActiveWindow.ScrollColumn = 2
- ActiveWindow.ScrollColumn = 1
- ActiveWindow.ScrollRow = 148
- ActiveWindow.ScrollRow = 147
- ActiveWindow.ScrollRow = 146
- ActiveWindow.ScrollRow = 145
- ActiveWindow.ScrollRow = 144
- ActiveWindow.ScrollRow = 143
- ActiveWindow.ScrollRow = 141
- ActiveWindow.ScrollRow = 140
- ActiveWindow.ScrollRow = 138
- ActiveWindow.ScrollRow = 136
- ActiveWindow.ScrollRow = 135
- ActiveWindow.ScrollRow = 133
- ActiveWindow.ScrollRow = 131
- ActiveWindow.ScrollRow = 128
- ActiveWindow.ScrollRow = 126
- ActiveWindow.ScrollRow = 124
- ActiveWindow.ScrollRow = 121
- ActiveWindow.ScrollRow = 118
- ActiveWindow.ScrollRow = 115
- ActiveWindow.ScrollRow = 113
- ActiveWindow.ScrollRow = 110
- ActiveWindow.ScrollRow = 107
- ActiveWindow.ScrollRow = 103
- ActiveWindow.ScrollRow = 100
- ActiveWindow.ScrollRow = 97
- ActiveWindow.ScrollRow = 94
- ActiveWindow.ScrollRow = 91
- ActiveWindow.ScrollRow = 88
- ActiveWindow.ScrollRow = 85
- ActiveWindow.ScrollRow = 82
- ActiveWindow.ScrollRow = 79
- ActiveWindow.ScrollRow = 76
- ActiveWindow.ScrollRow = 73
- ActiveWindow.ScrollRow = 71
- ActiveWindow.ScrollRow = 68
- ActiveWindow.ScrollRow = 65
- ActiveWindow.ScrollRow = 63
- ActiveWindow.ScrollRow = 60
- ActiveWindow.ScrollRow = 57
- ActiveWindow.ScrollRow = 55
- ActiveWindow.ScrollRow = 53
- ActiveWindow.ScrollRow = 51
- ActiveWindow.ScrollRow = 49
- ActiveWindow.ScrollRow = 47
- ActiveWindow.ScrollRow = 45
- ActiveWindow.ScrollRow = 43
- ActiveWindow.ScrollRow = 41
- ActiveWindow.ScrollRow = 40
- ActiveWindow.ScrollRow = 38
- ActiveWindow.ScrollRow = 37
- ActiveWindow.ScrollRow = 35
- ActiveWindow.ScrollRow = 33
- ActiveWindow.ScrollRow = 32
- ActiveWindow.ScrollRow = 31
- ActiveWindow.ScrollRow = 29
- ActiveWindow.ScrollRow = 28
- ActiveWindow.ScrollRow = 27
- ActiveWindow.ScrollRow = 25
- ActiveWindow.ScrollRow = 24
- ActiveWindow.ScrollRow = 22
- ActiveWindow.ScrollRow = 20
- ActiveWindow.ScrollRow = 19
- ActiveWindow.ScrollRow = 17
- ActiveWindow.ScrollRow = 16
- ActiveWindow.ScrollRow = 15
- ActiveWindow.ScrollRow = 13
- ActiveWindow.ScrollRow = 12
- ActiveWindow.ScrollRow = 11
- ActiveWindow.ScrollRow = 10
- ActiveWindow.ScrollRow = 8
- ActiveWindow.ScrollRow = 7
- ActiveWindow.ScrollRow = 6
- ActiveWindow.ScrollRow = 5
- ActiveWindow.ScrollRow = 4
- ActiveWindow.ScrollRow = 3
- ActiveWindow.ScrollRow = 2
- ActiveWindow.ScrollRow = 1
- Range("A1").Select
- End Sub
Mein Problem bei dem ganzen ist nun, dass ich gerne keine "fixe" Zeilennummer als "Endpunkt" haben möchte, sondern dass ich stattdessen, eine Variable, der beliebig ein Wert zugewiesen werden kann, haben möchte.
Meine Idee/Ansatz ist nun folgender:
Ich möchte eigentlich durch die Row Count Funktion, das letzte befüllte Feld einer Spalte ermitteln. Dieser Wert muss dann in eine Variable gespeichert werden und soll durch eine Art Schleife, die Autofill-Funktionalität (also das Runterziehen) bis zu der "Endposition" laufen lassen. Diese "Endposition" wird durch den Wert der Variable (nur die Zeilennummer) definiert!
Hat jemand eine Idee, wie ich das im Code umsetzen muss, damit ich "das runterziehen" von markierten Zellen, automatisiert, bis zu dem Wert, der eben auch automatisch durch die Row Count Funktionalität ermittelt wird, ausführen kann??
Vorab noch: Ich bin totaler VBA Anfänger!
Vielen Dank schon mal im Voraus an die Experten!!
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ereza“ ()