PDA

Vollständige Version anzeigen : Adaptive Zellenverweise


realpanda
06.01.2014, 13:12
Hallo Leute!

Ich habe mehrere kleine VBA-Progamme in einer Excel-Tablle geschrieben, die auf Zellenverweisen basieren. Dabei sind Labels bzw. CheckBoxen mit Zellenverweisen auf unterschiedlichen Tabellenblättern verknüpft.
Dazu zwei einfache Beispiele:

Private Sub Label17_Click()
If Rows("98:104").Hidden = True Then
Rows("98:104").Hidden = False
Else
Rows("98:104").Hidden = True
End If
End Sub

Private Sub CheckBox21_Click()
If CheckBox21.Value = True Then
Worksheets("Einstellungen").Range("B23").Value = 1
Else
Worksheets("Einstellungen").Range("B23").Value = 0
End If
End Sub

Nun muss ich einge Zeilen entfernen und diese VBA-Programme in einem Tabellenblatt kopieren, d.h. dieses Tabellenblatt erweitern. Dazu müsste ich alle Zellenverweise neu machen, was sehr viel Arbeitet bedeutet.

Kennt jemand eine Möglichkeit, die Zellenverweise adaptiv zu gestalten? Eine sinnvolle Offset-Lösung habe ich dazu leider nicht gefunden :( Bin offen für alle Vorschläge!

besten Dank
Panda

Hajo_Zi
06.01.2014, 13:20
arbeite mit Namen.

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm" onclick="window.open(this.href);return false"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

realpanda
07.01.2014, 14:08
Vielen Dank, das hat mir schon sehr weitergeholfen!

Es ist bei der Überarbeitung zu einem weiteren Problem gekommen. Wenn ich nicht zusammenhängende Felder mit einem Namen verküpfe und diese mit dem Namensaufruf bearbeiten will, dann wird immer nur das erste Feld bearbeitet. Hier in Beispiel:

'wk1_standardprüfungen = Eingabe!$B$37;Eingabe!$B$43;Eingabe!$B$44
'Ein- und Ausblenden Standardprüfungen (gemäß AA oder mit geringfügiger Modifikation)

Private Sub Label20_Click()
If Range("wk1_standardprüfungen").EntireRow.Hidden = TrueThen
Range("wk1_standardprüfungen").EntireRow.Hidden = FalseElse
Range("wk1_standardprüfungen").EntireRow.Hidden = True
End If
End Sub

In diesem Fall wird nur die Zeile "B37" aus- bzw. eingeblendet.
Wie kann man das Problem lösen?

Gruß

Luschi
07.01.2014, 14:23
Hallo realpanda,


mach es so: Range("wk1_standardprüfungen").Cells(1, 1).EntireRow.Hidden = False

Gruß von Luschi
aus klein-Paris


PS: Bitte bei der Namenvergabe auf Umlaute verzichten: wk1_standardpruefungen

realpanda
07.01.2014, 15:36
Hey Leute,

vielen Dank für eure Hilfe. Ich habe mich scheinbar irgendwo vertipp oder ähnliches. Nachdem ich mich nach einer kleinen Pause wieder dran gesetzt hatte, klappte es, ohne dass ich was ändern musste! :)

Besten Gruß
Panda