Excel Makro Problem

zodiak

Grünschnabel
Hallo @all !

hab ein Problem mit einem Excel Makro, es sieht folgendermaßen aus:

Sub Makro1()
'
' Makro1 Makro

Range("A2").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"http://get.casedata?$casenumber$=" & Range("A2") _
, TextToDisplay:="" & Range("A2")

End If
End Sub

In diesem Makro wird der Zelle A2 ein Hyperlink hinzugefügt. Angezeigt wird der Text der in Zelle A2 steht.
Wie mache ich es das dieses Makro in der ganzen A-Spalte angewendet wird.
Bsp:

Spalte A

1234 Hyperlink: http://get.casedata?$casenumber$=1234
2346 Hyperlink: http://get.casedata?$casenumber$=2346
3456 Hyperlink: http://get.casedata?$casenumber$=3456
3462 Hyperlink: http://get.casedata?$casenumber$=3462
6782 Hyperlink: http://get.casedata?$casenumber$=6782


Ist dies irgendwie möglich mit einem do until od. so

Vielen Dank für eure Hilfe !
 
Code:
Sub Makro1()

Dim i As Integer
Dim Zelle As String
For i = 1 To 20
    Zelle = "A" & CStr(i)
    Range(Zelle).Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
    "http://get.casedata?$casenumber$=" & Range(Zelle) _
    , TextToDisplay:="" & Range(Zelle)
Next

End Sub
In der Zeile For i = 1 To 20 kannst du anstatt 20 einstellen wie weit er zählen soll.
In dem Beispiel macht er Links für die Zeilen 1 bis 20.
 
Perfekt

Danke Retlaw
Aber ein Problemchen hab ich da noch, und zwar:
In der Tabelle sind immer unterschiedlich viele Datensätze
ich habs versucht so zu lösen:

If Range(Zelle) <> "" then

Makro ausführen

end if

es funtkioniert auch aber wenn ich es so mache dann wird die Excel Tabelle sehr in die länge gezogen. Verstehst du was ich meine?
Gibts da auch eine andere lösung? Er soll einfach alle Datensätze bearbeiten die da sind u. dann aufhören. Funktioniert das irgendwie ?

VIELEN DANK NOCHMAL !
 
Code:
Sub Makro1()

Dim i As Integer
Dim Zelle As String
For i = 1 To getRows()
    Zelle = "A" & CStr(i)
    Range(Zelle).Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
    "http://get.casedata?$casenumber$=" & Range(Zelle) _
    , TextToDisplay:="" & Range(Zelle)
Next

End Sub

Function getRows()
    Dim j As Integer
    j = 1
    Do While Range("A" & CStr(j)) <> ""
        DoEvents
        j = j + 1
    Loop
    getRows = j - 1
End Function
Jetzt sucht er sich selber wieviel Zeilen gefüllt sind.
 
Ich frag mich wieso Ihr überhaupt mit den Buchstaben der Spalten arbeitet, ich finde es in Makros viel einfacher alles einfach mit

Range(Cells(ZeilenNr,SpaltenNr),-Cells(ZeilenNr,SpaltenNr)).select

zu definieren, dann ist es möglich mit ein und dem selben Befehl entweder nur ne einzelne Zelle, ne Spalte oder einen ganzen Bereich anzuwählen, und zudem fällt die Dimensionierung weg

Sorry die Syntax stimmt sicher nicht 100%ig

falls ich immer nur ne Zelle will, verwende ich
Cells(ZeilenNr,SpaltenNr).select
 
Natürlich gehts so auch, aber ob Nummer oder Buchstabe ist hier egal.
Und mehrere gleichzeitig markieren und dann Link setzten ist nicht möglich da jeder Link ja ein anderes Ziel hat, das wiederum ergibt sich aus dem Inhalt der einzelnen Zellen.
 
Hallo

ich bekomme einen Fehler im Makro wenn ich es auto_open() nenne.
In der Fett geschriebenen Zeile triff folgender Fehler auf:

Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen

Warum das

Function getRows()
Dim j As Integer
j = 1
Do While Range("A" & CStr(j)) <> ""
DoEvents
j = j + 1
Loop
getRows = j - 1
End Function


Vielen DANK FÜR DIE HILFE
 

Neue Beiträge

Zurück