Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Rückgabewert in Variable speichern

VBA Rückgabewert in Variable speichern
29.08.2016 10:50:49
snoopjav
Hallo Community,
folgendes Problem macht mich verrückt:
Ich habe ein Programm im File "codeneu" (es ist sehr umständlich geschrieben, ich weiß), das im Grunde nachschaut, ob in der Tabelle Master in gewissen Zellen ein Wert drinsteht (es kommen im Programm weitere Bedingungen dazu) und falls einer drinsteht, dann wird in einer anderen Tabelle das heutige Datum in der dazugehörigen Spalte geschrieben. Das funktioniert soweit.
Nun habe ich ein weiteres Programm geschrieben, das in der Tabelle Master in Betracht kommende Spalten mit ihren Spaltennamen durch das Programm gefunden werden, falls die Spalten in der Tabelle Master, die ich brauche verschoben werden.
Davor habe ich die Zelle, in der nachgeschaut werden soll, genau definiert, also beispielsweise Cells(i,9). Jetzt soll der Column-Wert aber von dem zweiten Programm (File spaltefinden) geliefert werden.
Wenn ich aber in meinem Hauptprogramm folgenden Code schreibe:

Dim spaltenindex as Integer
spaltenindex = spaltefinden(spaltenindex = spaltefinden("Teile-Typ", Range("A8:CT8"))

Dann bekomme ich einen Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler.
Mit der Sub Aufruf in spaltefinden liefert das Programm den richtigen Wert, sobald ich die Funktion spaltefinden jedoch in dem Programm in "codeneu" benutzen möchte, liefert spaltefinden einen falschen Wert.
Kann mir jemand helfen? Vielen Dank!
spaltefinden: https://www.herber.de/bbs/user/107866.txt
codeneu(Hauptprogramm): https://www.herber.de/bbs/user/107867.txt

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Rückgabewert in Variable speichern
29.08.2016 11:06:07
Michael
Hallo!
Nur Schnell drüber geschaut:
Hier
spaltenindex = spaltefinden(spaltenindex = spaltefinden("Teile-Typ", Range("A8:CT8"))
bezieht sich Range("A8:CT8") auf das aktive Blatt - das ist möglicherweise nicht das gewünschte Blatt, je nachdem woher Du das aufrufst. Sicherer wäre hier der Range auch das zugehörige Worksheet mitzugeben...
LG
Michael
AW: VBA Rückgabewert in Variable speichern
29.08.2016 11:16:28
snoopjav
Danke erstmal!
Habe es folgendermaßen ergänzt:

spaltenindex = spaltefinden(spaltenindex = spaltefinden("Teile-Typ", Workbooks(this).Worksheets( _
"Master").Range("A8:CT8")))
Leider kommt trotzdem ein Kompilierfehler: Argument ist nicht optional
Das erste "spaltefinden" im obigen Code ist dabei markiert. Ich komme leider auf keine weitere Idee...
Anzeige
AW: VBA Rückgabewert in Variable speichern
29.08.2016 11:28:14
baschti007
Ich weiß zwar nicht was du suchst aber du du deine Funktion 2 mal dort aufrufst musst du auch 2 Range angeben.
Vielleicht so

With ThisWorkbook.Worksheets("Master")
spaltenindex = spaltefinden(spaltenindex = spaltefinden("Teile-Typ", .Range("A8:CT8")), .Range(" _
A8:CT8"))
End With

AW: VBA Rückgabewert in Variable speichern
29.08.2016 13:56:18
snoopjav
Danke für die Verbesserung...
Syntaktisch ist zwar alles einwandfrei, jedoch wird in die Variable spaltenindex einer falscher Wert gespeichert, woraufhin das ganze Programm fehlschlägt. Die Funktion spaltefinden an sich ist aber richtig, da sie mit der sub Aufruf (siehe File) funktioniert...ich bin ratlos
Anzeige
AW: VBA Rückgabewert in Variable speichern
29.08.2016 14:02:22
snoopjav
Inwiefern kann denn ein Fehler auftauchen, wenn ein Programm einmal den richtigen Wert zurückgibt und ein anderes Programm einen Falschen?
VBA Rückgabewert in Variable speichern
29.08.2016 19:10:02
baschti007
Da ich ja nicht mal deine Datei kenne kann ich dir leider auch nix dazu sagen was du damit bezwecken willst ;)
Gruß Basti
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen