AW: Makro Zellbezug
30.06.2007 14:40:00
Chris
Servus,
zu 2.:
Grundsätzlich können überall Makros stehen.
In Modulen stehen zumeist Functions und Makros, die sich darauf beziehen.
In DieseArbeitsmappe kommen i.d.R. solche Dinge wie Workbook_Open, Workbook_BeforeClose, die sich auf die gesamte Arbeitsmappe beziehen.
Und in den Tabellenmodulen stehen normalerweise die Makros, die sich auf die Tabelle beziehen, muss aber nicht, hängt von deiner Programmierweise ab.
Range("xy") geht nur im Tabellenmodul, Sheets("xy").Range("xy") dagegen auch in anderen
zu 1. das geht natürlich bedingt auch, aber dann muss dein Makro so aufgebaut sein, dass die bezüge variabel gestaltet werden können, als Integer oder sonstige deklarierte Variablen
z.B.:
Sub variable()
Dim i As Integer
For i = 2 To 100 Step 1
Cells(i, 1).Value = "X"
Next i
End Sub
kannst du auch so schreiben (nur ein Beispiel)
Sub variable1()
Dim i As Integer, a as Integer, b As Integer
a = InputBox("Anfangswert")
b = InputBox("Endwert")
For i = a To b Step 1
Cells(i, 1).Value = "X"
Next i
End Sub
wenn du jetzt über Zeile B eine Spalte einfügst würde Makro 1 die jetzige Zeile 101 = früher 100 nicht berücksichtigen. Beim 2. Makro kannst du jetzt 3 bis 101 eingeben und es geht für den gleichen Bereich wieder.
Ist aber natürlich sehr umständlich.
Gruß
Chris