VBA in Excel: Zelle als Variable

Lieber Michi,

ich bin in Excel und dieser ganzen VBA-Sache nicht so richtig bewandert, habe aber folgendes Problem:
Ich habe in einer Arbeitsmappe ein Arbeitsblatt mit einer Preisliste mit ungefähr 250 Produkten und ein zweites Arbeitsblatt mit den jeweiligen Leistungsbeschreibungen zu den 250 Produkten. Jetzt möchte ich, dass es zu jedem Produkt in der Preisliste einen Hyperlink zu der jeweiligen Produktbeschreibung gibt. Also dass man auf dem einen Arbeitsblatt auf bspw. E4 drückt und dann kommt man auf dem anderen Arbeitsblatt auf E4 und auf E5 drückt und bei dem anderen Arbeitsblatt auf E5 kommt. Eigentlich kein Problem, nur würde ich mir das gerne ersparen, diese ganze Prozedur für die 250 Produkute zu machen… Da muss es doch eine Möglichkeit geben, das mit einem Makro zu automatisieren, oder? Ich habe es schon mit der Aufzeichnung probiert, aber komme jetzt nicht weiter, wie man das dann erweitern kann, dass er das gleiche nicht nur für eine Zeile macht, sondern gleich bis zu E250.
Hier ist das aufgezeichnete Makro:

Sub Makro3()

’ Makro3 Makro

’ Tastenkombination: Strg+Umschalt+N

Range(„E5“).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
„Tabelle2!E5“, TextToDisplay:=„Alfter“
End Sub

Gibt es eine Möglichkeit, dass man statt einer absoluten Zelle eine variable eingibt und das dann über eine Schleife laufen lässt?
Wäre toll, wenn du mir helfen könntest.

Grüße
Melanie

Hallo Melanie,

wieso möchtest Du das Ganze denn per Makro machen?
Also ich unterstütze nur fleißige Menschen…!

Kleiner Spaß, bitte nicht böse sein :wink: !

Das ist kein Problem, hier ist (hoffentlich) die Lösung
Deines Problems:
____________________________________________

Sub Makro3()

Dim zeilenNummer As Long, spaltenNummer As Long,
zeilenNummerEnde As Long
Dim i As Long

'5. Spaltennummer = E
spaltenNummer = 5

'Hier eintragen ab welcher Zeile gestartet werden
soll
zeilenNummer = 5

'Hier eintragen bis zu welcher Zeile die Hyperlinks
erstellt werden sollen (5 bis 205 wären also 200
Zeilen)
zeilenNummerEnde = 205

While zeilenNummer zeilenNummerEnde + 1
ActiveSheet.Cells(zeilenNummer,
spaltenNummer).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection,
Address:="", SubAddress:= _
„Tabelle2!“ & Chr(64 + spaltenNummer) &
zeilenNummer, TextToDisplay:=„Alfter“
zeilenNummer = zeilenNummer + 1
Wend

MsgBox „Fertig!“

End Sub
____________________________________________

Folgende Variablen musst Du anpassen:

spaltenNummer: Hier muss die Nummer der Spalte rein.
Als Beispiel: 1 wäre A, 2 wäre B, 3 wäre C, usw.
In meinem Code habe ich mal 5 für E gewählt.

zeilenNummer: Hier muss rein ab welcher Zeile die
Hyperlinks erstellt werden sollen (entspricht der Zahl
die Excel ganz links anzeigt).

zeilenNummerEnde: Bei welcher Zeilennummer die
Hyperlinks enden sollen (entspricht der Zahl die Excel
ganz links anzeigt).

ACHTUNG!: Dieses Makro funktioniert nur in den Spalten
A bis Z! In z.B. AA klappt das Ganze nicht mehr.

Wenn Du noch fragen hast, darfst Du Dich gerne melden.

Viele Grüße und einen schönen Sonntag,
Michael (VBMichi)

Lieber Michi,

ich bin in Excel und dieser ganzen VBA-Sache nicht so

richtig

bewandert, habe aber folgendes Problem:
Ich habe in einer Arbeitsmappe ein Arbeitsblatt mit

einer

Preisliste mit ungefähr 250 Produkten und ein zweites
Arbeitsblatt mit den jeweiligen

Leistungsbeschreibungen zu den

250 Produkten. Jetzt möchte ich, dass es zu jedem

Produkt in

der Preisliste einen Hyperlink zu der jeweiligen
Produktbeschreibung gibt. Also dass man auf dem einen
Arbeitsblatt auf bspw. E4 drückt und dann kommt man

auf dem

anderen Arbeitsblatt auf E4 und auf E5 drückt und bei

dem

anderen Arbeitsblatt auf E5 kommt. Eigentlich kein

Problem,

nur würde ich mir das gerne ersparen, diese ganze

Prozedur für

die 250 Produkute zu machen… Da muss es doch eine
Möglichkeit geben, das mit einem Makro zu

automatisieren,

oder? Ich habe es schon mit der Aufzeichnung probiert,

aber

komme jetzt nicht weiter, wie man das dann erweitern

kann,

dass er das gleiche nicht nur für eine Zeile macht,

sondern

gleich bis zu E250.
Hier ist das aufgezeichnete Makro:

Sub Makro3()

’ Makro3 Makro

’ Tastenkombination: Strg+Umschalt+N

Range(„E5“).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection,

Address:="",

SubAddress:= _
„Tabelle2!E5“, TextToDisplay:=„Alfter“
End Sub

Gibt es eine Möglichkeit, dass man statt einer

absoluten Zelle

eine variable eingibt und das dann über eine Schleife

laufen

lässt?
Wäre toll, wenn du mir helfen könntest.

Grüße
Melanie

Vielen, vielen Dank, das war genau das, was ich gebraucht habe, klappt absolut super und zur Abwechslung verstehe ich sogar mal das System dahinter :smiley: Vielen Dank, Michi :smile:!
Grüße
Melanie