Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1568to1572
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA VLookUp Zielmatrix mit Cells falsch

VBA VLookUp Zielmatrix mit Cells falsch
21.07.2017 16:13:55
Johannes
Hallo Forum,
nach jahrelangem mitlesen muss ich mich nun selbst fragestellend an euch wenden.
Innerhalb einer Funktion tritt beim SVerweis/VLookUp ein seltsamer Fehler auf, dessen Herkunft _
mir völlig schleierhaft ist. Läuft die

Function das erste mal durch, geht alles problemlos. Bei einem weiteren mal wird ein  _
Laufzeitfehler 1004 ausgeworfen "Anwendungs- oder objektdefinierter Fehler", sofern der Wert in  _
der letzten Zelle der Suchmatrix gleich dem Wert beim vorherigen Durchlauf ist. Ändert man den Wert in der letzten Zelle der Suchmatrix, so gibt es keine Fehlermeldung.
Ursache der Fehlermeldung ist offenbar die Ermittlung des Wertes der letzten Zelle der  _
Suchmatrix. Fährt man mit dem Cursor im Code über die Variablen, so erscheinen alle Werte  _
korrekt. In der Suchmatrix (im Code Beispiel Fett hinterlegt) bei "Cells" wird jedoch bei der zweiten Cell nicht der in der Zelle hinterlegte Wert der Zelle angezeigt, sondern "-31".
Zunächst konnte ich den Fehler durch das Einfügen folgenden Codes umgehen, das funktioniert  _
aber aus welchem Grund auch immer nicht mehr:
For i1 = s1 To e1
Sheets(start_sheet1).Cells(lr1, c1) = Sheets(start_sheet1).Cells(lr1, c1)
Next i1
Werte der Variablen:
start_sheet1 = 9
ziel_sheet1 = 3
start_spalte = "Abgleich2"
ziel_spalte = "Plan Beginn Projekt"
e1 = 7
s1 = 3
j1 = Juni
k1 = 2017
o1 = Juni2017
a1 = 8
b1 = 8
c1 = 24
d1 = 25
i1 = 4
lr1 = 7

Function Sverweis(start_sheet1 As Integer, ziel_sheet1 As Integer, start_spalte As String,  _
ziel_spalte As String)
Dim e1, s1, j1, k1, o1 As String, a1, b1, c1, d1, i1, lr1 As Integer
j1 = Format(Date + DateDiff("d", Date, Date - Day(Date)) - 1, "MMMM") 'Vormonat
k1 = Format(Date + DateDiff("d", Date, Date - Day(Date)) - 1, "YYYY") 'zugehöriges Jahr
o1 = j1 & k1
a1 = Sheets(start_sheet1).Rows(1).Find(start_spalte).Column
b1 = Sheets(ziel_sheet1).Rows(1).Find(start_spalte).Column
c1 = Sheets(start_sheet1).Rows(1).Find(ziel_spalte).Column
d1 = Sheets(ziel_sheet1).Rows(1).Find(ziel_spalte).Column
s1 = Sheets(ziel_sheet1).Columns(a1).Find(o1).Row
e1 = Sheets(ziel_sheet1).Columns(b1).Find(What:=o1, SearchDirection:=xlPrevious).Row
lr1 = Sheets(start_sheet1).Columns(c1).End(xlDown).Row
For i1 = s1 To e1                                                                  ' _
Errorhandler für willkürlichen -31 Fehler
Sheets(start_sheet1).Cells(lr1, c1) = Sheets(start_sheet1).Cells(lr1, c1)
Next i1
On Error GoTo Weiter
For i1 = s1 To e1
Sheets(ziel_sheet1).Cells(i1, d1) = Application.WorksheetFunction.VLookup(Sheets(ziel_sheet1).  _
_
Cells(i1, b1), Sheets(start_sheet1).Range(Cells(1, a1), Cells(lr1, c1)), (c1 - a1 + 1),  _
False)
Weiter:
Next i1
End Function

Sub main()
Sverweis 9, 3, "Abgleich2", "Plan Beginn Projekt"
End Sub
Ich hoffe ich konnte das am Freitag Nachmittag einigermaßen verständlich und detailliert ausdrücken.
Beste Grüße
Johannes

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA VLookUp Zielmatrix mit Cells falsch
21.07.2017 17:14:25
onur
Ich bin irritiert.
ist das vba oder vb? (sub main?)
Sheets(ziel_sheet1).Cells(i1, d1) = Application.WorksheetFunction.VLookup(Sheets(ziel_sheet1). _
_
Cells(i1, b1), Sheets(start_sheet1).Range(Cells(1, a1), Cells(lr1, c1)), (c1 - a1 + 1), _
False)
eine funktion kann doch keine zellen ändern, nur einen wert ausgeben.
Wundert mich dass hier überhaupt irgendwas läuft (oder ich stehe selber irgendwie auf dem schlauch).
Ja, denn das gilt nur für UDFs in ZellFmln, ...
21.07.2017 17:45:53
Luc:-?
onur;
allerdings würde ich eine Fkt niemals auf diese Weise benutzen, denn das ist nicht ihr üblicher Zweck. Hier hätte auch nur eine SubProzedur völlig ausgereicht, es sei denn, man wollte die Fkt mehrfach in unterschiedlichen Pgmm verwenden. Aber das sieht hier nicht so aus und ein UPgm, also eine SubProzedur, die man ebenfalls parametriert aufrufen kann (was Johannes nicht zu wissen scheint), anstelle einer Fkt hätte hier völlig ausgereicht.
Kleiner Tipp, Johannes:
Verwende niemals die beiden Bezeichner für Fkts- und SubProzedur im Original und freistehend in einem normalen Text fürs Forum. Die Forumssoftware wertet das als Beginn einer solchen Prozedur und formiert den nachfolgenden Text automatisch als solche. Das irritierende Ergebnis siehst du ja!
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Ja, denn das gilt nur für UDFs in ZellFmln, ...
21.07.2017 18:24:25
onur
Gut zu wissen, Luc.
War bis jetzt noch nie auf die Idee gekommen, durch normale UDFs Zellen zu manipulieren - wozu denn auch?
Dafür gibt es ja schliesslich Subs.
Gruß
Onur
AW: VBA VLookUp Zielmatrix mit Cells falsch
21.07.2017 21:08:11
Werner
Hallo Johannes,
also ich habe mich jetzt nicht genauer mit deinem Code beschäftigt.
Was mir aber aufgefallen ist:
Bei deiner Codezeile mit dem VLookup stimmt deine Referenzierung auf das entsprechende Tabellenblatt nicht. Da müsste vor jedes Range-Objekt (Range, Cells) das entsprechende Tabellenblatt geschrieben werden.
Das würde ich so schreiben (das Dim raBereich as Range natürlich in den Makrokopf zu den anderen Dim)
Dim raBereich As Range
With Sheets(start_sheet1)
Set raBereich = .Range(.Cells(1, a1), .Cells(lr1, c1))
End With
With Sheets(ziel_sheet1)
.Cells(i1, d1) = Application.WorksheetFunction.VLookup(.Cells(i1, b1), raBereich, (c1 - a1 + 1)  _
_
, False)
End With
'...am Ende des Makros dann noch
Set raBereich = Nothing
Zeilenumbrüche bitte raus machen, die macht die Forensoftware rein.
Gruß Werner
Anzeige
...Umbrüche; deshalb steht in der Anleitung, ...
22.07.2017 00:25:14
Luc:-?
…dass man die Pgmm gleich so anlegen soll (also auch mit Fortsetzungszeilen langer Zeilen), dass keine falschen Umbrüche hineingeraten, Werner;
die Software kontrolliert nämlich nicht alles, schon gar nicht auf Text im Pgm.
Gruß & schöWE, Luc :-?
AW: VBA VLookUp Zielmatrix mit Cells falsch
25.07.2017 11:48:48
Johannes
Vielen Dank Werner, da lag wohl der Fehler. Genial einfach die Lösung.
Auch an alle anderen ein Dankeschön. Das Hier ist ein Teil eines relativ umfangreichen Projektes im Rahmen meiner Abschlussarbeit. Da ist jeder Tipp doppelt hilfreich.
Thread kann geschlossen werden.
BG
Johannes
Gerne u. Danke für die Rückmeldung. o.w.T.
25.07.2017 12:00:15
Werner

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige