Habe eine Datei mit (zu) vielen Spalten, die ich häufiger umstrukturiere. Das Ärgerliche war dabei,
dass ich die darauf bezogenen Makros nach jeder Änderung immer wieder umschreiben musste.
Als Lösung sind mir dann sog. "Spaltenvariabeln" eingefallen: Ich ermittle mit einer Schleife die
Spaltentitel, z.B. bei 50 Spalten:
Sub Spaltentitel()
Dim i as Integer
For i = 1 To 50
Select Case Ucase(Cells(1, i).Value)
Case "SPALTENNAME1"
gesSpaltenname1 = i
Case "SPALTENNAME2"
gesSpaltenname2 = i
End Select
Next i
End Sub
Die mit "ges" (= gesamt) beginnenden Variablennamen sind in einem separaten Modul als öffentliche Integer-Variabeln deklariert, damit sie im ganzen Projekt zugänglich sind.
Nun muss ich jeweils beim Programmstart die Variablen durch oben angedeutete Routine, die ich mit
einer Kurztastenkombination aktiviere, initialisieren.
Seither habe ich viel weniger Ärger mit sich verändernden Spaltennummern, muss aber die Variablenwerte nach jedem Programmabsturz beim Programmieren wiederherstellen, indem obige Routine, wieder über die erwähnte Kurztastenkombination, aktiviert wird.
Kann man so etwas auch einfacher programmieren? Die automatische Befüllung der Spaltenvariabeln bei Programmstart würde nicht viel helfen, denn beim nächsten Programmabsturz haben alle Spaltenvariabeln ihre Werte schon wieder vergessen.
Frage: Wie kann man solche Variablenwerte über Programmabstürze hinweg speichern. Wahrscheinlich nur, indem man sie in eine separate Tabelle schreibt und von dort abfragt...
Gruß Werner