Fehler in Makro gesucht

boott

Stammgast
Guten Tag,

Ich hab mir ein kleines Makro gebastelt:

Code:
Sub HyperlinksErstellen()

i = 9

Do
    i = i + 1

    If Cells(i, 2) = "" Then
        Cells(i, 2).Value = "=WENN(C" & i & "="""";"""";HYPERLINK($B$8&C" & i & "&"".sng"";""Herunterladen""))"
        Cells(i, 1).Value = "=WENN(C" & i & "="""";"""";HYPERLINK($A$8&C" & i & "&"".sng"";""Ansehen""))"
    Else
    End If
    
Loop Until Cells(i, 3) = ""

Range(A9).Select

End Sub
Nun gibts noch ein Problem beim Festlegen des Zelleninhaltes.

Kann mir jemand mitteilen, wo der Fehler liegt?

Vielen Dank
boott
 

Xpert

Stammgast
Zuerst mal würde ich dir angewöhnen den Variablentyp zu deklarieren

Code:
Dim i as Integer
und danach die Variable mit einem Wert füllen. Ist halt alles eine Sache des Programmierstils und natürlich jedem selber überlassen.


dann frage ich mich warum du im Code mit

Code:
i = i + 1
beginnst, denn so fängst du eigentlich mit i=10 an und nicht i=9. Ich würde diese Anweisung immer am Schluss angeben

Wenn du eine Formel in eine Zelle einfügen willst, so wie in diesem Fall dann nimm nicht .value sondern .FormulaLocal:

Code:
Cells(i, 2).FormulaLocal = "=WENN(C" & i & "="""";"""";HYPERLINK($B$8&C" & i & "&"".sng"";""Herunterladen""))"

Bei deiner Range Angabe hast du im übrigen "" vergessen:

Code:
Range("A9").Select

Die if-Anweisung kannst du so lassen, ich persönlich würde die jedoch wie folgt machen:

Code:
If IsEmpty(Cells(i, 2)) Then

was man natürlich auf die Loop Until Anweisung anwenden könnte

hoffe es funzt...
 
Zuletzt bearbeitet:

boott

Stammgast
Vielen Dank für die Tips

dann frage ich mich warum du im Code mit

Code:
i = i + 1
beginnst, denn so fängst du eigentlich mit i=10 an und nicht i=9. Ich würde diese Anweisung immer am Schluss angeben
Das frage ich mich auch. Das i hatte ich zwar so gesetzt, dass der Code mit den gewollten 10 beginnt. Ich habe den Teil nun aber am Schluss hingesetzt.

hoffe es funzt...
Das tut es nun.
Danke
 
Oben