1
Excel / Antw:Office 2003: VBA - Hilfe
« am: Dezember 21, 2014, 01:00:30 Vormittag »
Hallo fajo,
zu Deinem Problem mit dem Link hier mal zwei Programmschnipsel, die ich früher mal in einer Routine verwendet habe.Würde ich heute eventuell leicht anders programmieren, aber die Programmierung lebt manchmal auch vom Kopieren von Bewährtem. Natürlich muß das noch an Deine Problematik angepaßt werden:
For I = 1 To 30
If strTabelle(2, I) = "" Then Exit For
Sheets.Add after:=Sheets(I)
Sheets(I + 1).Name = strTabelle(2, I)
ActiveSheet.Cells(1, 1).ColumnWidth = 50
ActiveSheet.Cells(1, 1).Value = "zurück zur Übersicht"
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Übersicht!A1", TextToDisplay:="zurück zur Übersicht"
...
Die Routine macht folgendes: Hinter dem höchsten Tabellenblatt wird eingefügt. Dann erhält die Tabelle einen neuen Name. In meinem Fall ist der variabel und kommt daher aus einem Stringarray. Danach wird die Spalte A (1) etwes breiter gemacht und in Zelle A1 (1,1) der Wert "zurück zur Übersicht" geschrieben. Zuletzt wird dieser Text dann noch mit dem Hyperlink auf die erste Tabelle belegt. Die For-Schleife gibt es nur weil ich bis zu 30 Tabellenblätter (sind aber meist weniger) haben kann.
Es folgen dann noch das Füllen und Formatieren diverser Zellen und zum Schluss das Füllen der Übersichtsseite:
...
Sheets("Übersicht").Select
strZelle = "A" & Right(Str(1 + I * 2 + 1000), 3)
ActiveSheet.Range(strZelle).Select
ActiveSheet.Cells(1 + I * 2, 1).Value = strTabelle(2, I) & " (" & strTabelle(1, I) & ")"
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"'" & strTabelle(2, I) & "'!A1", TextToDisplay:=strTabelle(2, I) & " (" & strTabelle(1, I) & ")"
...
Die Programmierung ist recht ähnlich we oben.
Es wird auf die Übersichtsseite verzweigt. Mit einer leicht anderen Logig (würde ich heute eher wie oben machen) auf eine neue Zeile gegangen und dort der Name der eben verwendeten Zelle eingefügt. Danach erfolgt der Hyperlink auf die Zelle A1 des oben eingefügten Tabellenblattes.
Hoffe das Beispiel konnte helfen. Für die andern Probleme wäre es gut hier im Forum mal eine Beispieldatei anzuhängen.
LG
hp
zu Deinem Problem mit dem Link hier mal zwei Programmschnipsel, die ich früher mal in einer Routine verwendet habe.Würde ich heute eventuell leicht anders programmieren, aber die Programmierung lebt manchmal auch vom Kopieren von Bewährtem. Natürlich muß das noch an Deine Problematik angepaßt werden:
For I = 1 To 30
If strTabelle(2, I) = "" Then Exit For
Sheets.Add after:=Sheets(I)
Sheets(I + 1).Name = strTabelle(2, I)
ActiveSheet.Cells(1, 1).ColumnWidth = 50
ActiveSheet.Cells(1, 1).Value = "zurück zur Übersicht"
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Übersicht!A1", TextToDisplay:="zurück zur Übersicht"
...
Die Routine macht folgendes: Hinter dem höchsten Tabellenblatt wird eingefügt. Dann erhält die Tabelle einen neuen Name. In meinem Fall ist der variabel und kommt daher aus einem Stringarray. Danach wird die Spalte A (1) etwes breiter gemacht und in Zelle A1 (1,1) der Wert "zurück zur Übersicht" geschrieben. Zuletzt wird dieser Text dann noch mit dem Hyperlink auf die erste Tabelle belegt. Die For-Schleife gibt es nur weil ich bis zu 30 Tabellenblätter (sind aber meist weniger) haben kann.
Es folgen dann noch das Füllen und Formatieren diverser Zellen und zum Schluss das Füllen der Übersichtsseite:
...
Sheets("Übersicht").Select
strZelle = "A" & Right(Str(1 + I * 2 + 1000), 3)
ActiveSheet.Range(strZelle).Select
ActiveSheet.Cells(1 + I * 2, 1).Value = strTabelle(2, I) & " (" & strTabelle(1, I) & ")"
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"'" & strTabelle(2, I) & "'!A1", TextToDisplay:=strTabelle(2, I) & " (" & strTabelle(1, I) & ")"
...
Die Programmierung ist recht ähnlich we oben.
Es wird auf die Übersichtsseite verzweigt. Mit einer leicht anderen Logig (würde ich heute eher wie oben machen) auf eine neue Zeile gegangen und dort der Name der eben verwendeten Zelle eingefügt. Danach erfolgt der Hyperlink auf die Zelle A1 des oben eingefügten Tabellenblattes.
Hoffe das Beispiel konnte helfen. Für die andern Probleme wäre es gut hier im Forum mal eine Beispieldatei anzuhängen.
LG
hp
Menü
An- und Abmelden
Partner / Links