8.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich bekomme es einfach nicht gebacken und bitte daher um Eure Hilfe.

Ich habe ein Excel-Makro geschrieben, welches den Inhalt der aktuellen Zelle (Zahl) ausliest und gemeinsam mit einem feststehenden Wert einen Hyperlink hinterlegt.
Danach wird der curser eine Zelle tiefer gesetzt.

Jetzt hätte ich gerne eine Schleife, die diese Aktion solange durchführt, bis die Zelle leer ist.
Ich bleibe bei dieser Aktion immer in der gleichen Spalte, wechsel lediglich eine Zeile tiefer.

So sieht mein Makro aus:

Sub Hyperlink_InnoN()
Zellinhalt = ActiveCell.Text
Hlink = "http://innoplace.solvay.com/Idea.aspx?idea=" & Zellinhalt
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Hlink
Application.SendKeys ("{Down}")
End Sub



Ich hatte nun gedacht, wenn ich das Makro (siehe nachstehend) abändere, würde es laufen.
Tja, das ist aber nicht der Fall. 1 Link wird gesetzt, Curser geht auch eine Zeile tiefer, aber dann tut sich nichts mehr.

Sub Ideennr_link()
For i = Anfang To Ende
If ActiveCell(i) <> "" Then
Zellinhalt = ActiveCell.Text
Hlink = "http://innoplace.solvay.com/Idea.aspx?idea=" & Zellinhalt
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Hlink
Application.SendKeys ("{Down}")
End If
Next i
End Sub


Es wäre nett, wenn mir jemand helfen würde, den Fehler auszumerzen.
Ich raufe mir die Haare, aber ich kapiere das mit der Schleife einfach nicht.

Lieben Dank im Voraus!

6 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

wo sind denn die Variablen Anfang und Ende definiert? In deinem Makro jedenfalls nicht.

Gruß

M.O.
0 Punkte
Beantwortet von
ähm ... Danke M.O. für die Antwort.

Wie müsste ich die Variablen dann definieren?
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

meinst du das so:

Sub Ideennr_link()
Dim rngZelle As Range
Anfang = 1
Ende = 10
Set rngZelle = ActiveCell
For i = Anfang To Ende
If Cells(i, rngZelle.Column) <> "" Then
Hlink = "http://innoplace.solvay.com/Idea.aspx?idea=" & Cells(i, rngZelle.Column)
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, rngZelle.Column), Address:=Hlink
End If
Next i
End Sub


Bis später,
Karin
0 Punkte
Beantwortet von
Danke Beverly,

so läuft das Makro 10x durch, Beginn Zeile 1.
Ist doch schon mal was.

Das Makro soll aber in der Zeile beginnen, wo sich gerade der Curser befinden und enden, wenn an der curserposition kein Eintrag (also Zelle leer) ist.

Bei dieser Tabelle können 5000 und mehr Zeilen sein, die diesen Link benötigen.
Weißt du Rat?
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

Sub Ideennr_link2()
Dim i As Long
Dim intSpalte As Integer
If ActiveCell <> "" Then
i = ActiveCell.Row
intSpalte = ActiveCell.Column
Do
Hlink = "http://innoplace.solvay.com/Idea.aspx?idea=" & Cells(i, intSpalte)
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, intSpalte), Address:=Hlink
i = i + 1
Loop While Cells(i, intSpalte) <> ""
End If
End Sub


Bis später,
Karin
0 Punkte
Beantwortet von
Danke Beverly,

genauso meinte ich es und es funktioniert!!!

Fühl dich von mir herzlichst gedrückt.
Ich kann mir dadurch eine Menge Arbeit ersparen.
...