Fehler 5, ungültiger
#1
Hallo Freunde

ich versuche mit dem Makro(unten), die Einträge (ab Zelle A2 bis ….) zur Tabelle "Data" zu verlinken und bekomme eine Fehlermeldung "5" ungültiger Prozeduraufruf oder…
An der Stelle:

    ThisWorkbook.Sheets("myNew").Hyperlinks.Add Anchor:=c, Address:="", SubAddress:=c.Value


Sub linked()
Dim m, c As Range
Set m = ThisWorkbook.Sheets("myNew").Range("A2", Range("A" & Rows.count).End(xlDown))
For Each c In m
    ThisWorkbook.Sheets("myNew").Hyperlinks.Add Anchor:=c, Address:="", SubAddress:=c.Value
Next c
End Sub

Irgendeine Idee?

Danke für die Hilfe


t
Antworten Top
#2
Hallöchen,

was steht denn in c wenn der Fehler auftritt?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
EDIT: Oh, ich sehe gerade, dass Fehler 5 bei ungültigen Prozeduraufrufen kommt. Wahrscheinlich dann eher doch ein "falscher" Parameter.

EDIT2: Mir ist aber etwas anderes aufgefallen. Müsste es hier nicht xlup heißen?
Code:
Set m = ThisWorkbook.Sheets("myNew").Range("A2", Range("A" & Rows.count).End(xlDown))
Gruß
Michael
Antworten Top
#4
EDIT2: Mir ist aber etwas anderes aufgefallen. Müsste es hier nicht xlup heißen?

SUUUUUUPPPPPPPEEEER

danke das funktioniert 
Antworten Top
#5
Hallöchen,

ja, genau, aber vor allem liegt es daran, dass in c nix steht Sad Ansonsten hätte es funktioniert, nur vielleicht nicht dort, wo es erwartet wird Smile Dass das möglicherweise die falsche Zelle ist, wäre eventuell ein Gedanke, der beim Überprüfen von c kommen könnte Smile

Mal für später / weitere Programmierung: Ein anderer Punkt fällt hier nicht ins Gewicht, wenn die Datei nur ein Blatt hat bzw. man beim Ausführen auf dem entsprechenden Blatt mySheet ist und bleibt Smile Wenn nicht, kommt auch in dieser Zeile ein Fehler -

Das
ThisWorkbook.Sheets("myNew").Range("A2", Range("A" & Rows.count).End(xlDown))

könnte man so umsetzen
ThisWorkbook.Sheets("myNew").Range("A2", ThisWorkbook.Sheets("myNew").Range("A" & Rows.count).End(xlDown))

oder so
With ThisWorkbook.Sheets("myNew")
.Range("A2", .Range("A" & Rows.count).End(xlDown))
End With
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Danke dir für den guten Hinweis. Thumps_up Thumps_up

… ich würde ein neues Thema zur "drop down list" mit dynamischen Einträgen erstellen. Den Code habe ich von EN Excel-Forum gefunden (als URL), was sehr hilfreich ist. 

Jedoch:

-Setzt man ihn in einer neuen Excel Dateien, funktioniert die Tabelle einwandfrei.

-Setzt man ihn in einer Excel-Datei mit unterschiedlichen vba reference, scheint zwar zu funktionieren; man kann die Tabelle speichern.
Versucht man die Datei wieder zu öffnen, kommt zur Fehlermeldung und Excel(2019) will die Datei reparieren.

Mehr dazu später.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste