Anzeige
Archiv - Navigation
1592to1596
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

wennfehler...

wennfehler...
20.11.2017 13:47:18
Christian
Hallo Zusammen,
ich habe wirklich versucht, selbst eine Lösung zu finden, hänge aber schon länger fest. Wie bekomme ich denn den Wennfehler in den VBA-Code?
If IsError(WorksheetFunction.VLookup(UserForm7.ComboBox3.Value, Worksheets("Dropdowns Analyse").Range("T7:T1000"), 1, False)) Then
UserForm7.ComboBox3 = ""
UserForm7.ComboBox3.BackColor = vbWhite
UserForm7.ComboBox3.Locked = False
Exit Sub
End If
If WorksheetFunction.VLookup(UserForm7.ComboBox3.Value, Worksheets("Dropdowns Analyse").Range("T7:T1000"), 1, False) = UserForm7.ComboBox3.Value Then
UserForm7.ComboBox3.BackColor = vbWhite
UserForm7.ComboBox3.Locked = False
End If
Vielen Dank und viele Grüße
Christian

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
WorksheetFunction.IsError
20.11.2017 14:03:24
lupo1
AW: WorksheetFunction.IsError
20.11.2017 14:17:04
Christian
Mmh... so ist das sicher zu kurz gedacht, oder?
If WorksheetFunction.IsError(WorksheetFunction.VLookup(UserForm7.ComboBox3.Value, Worksheets("Dropdowns Analyse").Range("T7:T1000"), 2, False)) = True Then
In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 14:29:28
Daniel
Hi
in VBA ist es oft besser, .FIND anstelle von Worksheetfunction.VLookUp zu verwenden (vorallem, wenn du nur feststellen willst, ob der Wert überhaupt vorhanden ist)
If Worksheets("Dropdowns Analyse").Range("T7:T1000").Find(What:=UserForm7.ComboBox3.Value, Lookat:=xlwhole) Is Nothing then
UserForm7.ComboBox3 = ""
UserForm7.ComboBox3.BackColor = vbWhite
UserForm7.ComboBox3.Locked = False
Exit Sub
End If

In VBA verwende ich den VLookUp nur in der Variante mit dem 4. Parameter = TRUE, weil er dann eine schnellere Suchmethode verwendet.
Oder du verwendest nicht WorkSheetfunction.VLookUp, sondern WorksheetFunction.CountIf.
das ergibt bei nichtvorhanden sein des Suchbegriffs keinen Fehler, sondern den Wert 0, was in VBA auch einfacher zu händeln ist.
solltest du beim VLookUp bleiben wollen, dann vielleicht so, beachte dass du hier dann nicht Worksheetfunction.VLookUp verwenden musst, sondern ApplicationVLookUp:
IF VarType(Application.VLookUP(...)) = vbError Then
Gruß Daniel
Anzeige
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 14:37:47
Christian
Hallo Daniel,
vielen Dank - auch wieder für die hilfreichen Erklärungen.
Leider übernimmt er
UserForm7.ComboBox3 = ""
obwohl das Wort "Gesamt" in den Spalte T wiederzufinden ist.
Liegt es möglicherweise daran, dass in der Spalte T keine Werte sondern Formeln stehen?
Viele Grüße
Christian
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 14:46:49
Daniel
Hi
kommt darauf an.
bei .FIND hast du die Option, in Formeln oder in Werten zu suchen.
Dh, du solltest im Parameter LookIn:=xlValues dieses noch angeben.
Lässt du diese Angabe weg, so verwenden die .Find-Funktion die Einstellung, die du beim letzten mal gemacht hast.
Daher sollte man bei .Find die Parameter möglichst vollständig angeben (die weitern Parameter kannst du in der Hilfe nachlesen):
Range(..).Find(what:=..., lookIn:=xlvalues, lookat:=xlwhole, MatchCase:=False)
Gruß Daniel
Anzeige
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 15:01:47
Christian
Hallo nochmal, sorry,
jetzt findet er "angeblich" immer einen Wert.
Seltsamerweise schreibt er, sofern der Wert eigentlich nicht in der Spalte zu finden ist, die oberste Zelle aus T7:T1000 in die COmbobox... ich habe extra eine Messagebox eingebaut,um mitzubekommen, wo er abzweigt:
If Worksheets("Dropdowns Analyse").Range("T7:T1000").Find(What:=UserForm7.ComboBox3.Value, LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=False) Is Nothing Then
UserForm7.ComboBox3 = ""
UserForm7.ComboBox3.BackColor = vbWhite
UserForm7.ComboBox3.Locked = False
Else
MsgBox "!"
UserForm7.ComboBox3 = UserForm7.ComboBox3
UserForm7.ComboBox3.BackColor = vbWhite
UserForm7.ComboBox3.Locked = False
End If
Anzeige
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 15:09:24
Daniel
Hi
ohne die Datei kann ich dir da auch nicht helfen.
btw: welchen tieferen Sinn hat dieser Befehl?
UserForm7.ComboBox3 = UserForm7.ComboBox3
Gruß Daniel
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 15:13:53
Christian
...keinen, habe ich schon gelöscht.
Dann muss ich mir etwas anderes einfallen lassen - trotzdem danke.
Etwas anderes, wenn ich die UserForm7 mit vbModeless aufgerufen habe - wie kann ich verhindern, dass der User andere Tabellenblätter ansteuert. Das Tabellenblatt der UserForm soll allerdings mit bearbeitbar bleiben. Geht das?!
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 15:22:26
Daniel
Nun, du musst nicht .FIND verwenden, ich habe dir ja noch andere alternativen genannt.
zur zweiten Frage:
blende die Blätter einfach aus.
Wenn der Anwender die Blätter wieder bearbeiten darf, blende sie wieder ein.
Gruß Daniel
Anzeige
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 15:23:16
Christian
gute Idee... vielen vielen Dank!
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 16:28:15
Christian
Hallo nochmal,
ich glaube, ich habe herausgefunden, woran es liegt.
In der Zelle T8 steht zum Beispiel eine Formel, die das Ergebnis "Gesamt" auswirft.
Durch die Eingabe in der ComboBox 2 verändert sich das Ergebnis der Formel in T8 in "Einzelsicht" - daraufhin verändert sich der Inhalt der Combobox3 auch in Einzelsicht.
Kann man da etwas machen?
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
20.11.2017 16:40:06
Daniel
Selber nachdenken, was du genau willst und welche Werte zu welchem Zeitpunkt aus den Daten genommen werden müssen. Ggf auch die Werte in Variablen zwischenspeichern, wenn sich die Originalquellen verändern, bis der Wert eingesetzt wird.
Ohne die Kenntnis der Originaldatei und der Aufgabenstellung kann ich dir keine genauere Aussage zu machen.
Anzeige
AW: In VBA ist .FIND die bessere Alternativ zu VLookUP
21.11.2017 07:17:09
Christian
Hallo Daniel,
herzlichen Dank für Deine geduldige Mühe.
Viele Grüße
Christian

84 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige