Herbers Excel-Forum - das Archiv

ComboBox Wert wird bei If Abfrage nicht erkannt

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: ComboBox Wert wird bei If Abfrage nicht erkannt
von: Manuel

Geschrieben am: 18.11.2015 18:58:26

Guten Abend!
Mittels Makro wollte ich verschiedene Zellen miteinander addieren/subtrahieren. Dies soll nur mit Zellen passieren, die mit dem Suchkriterium in der ComboBox übereinstimmen.
Jedoch wird der Wert in der ComboBox nicht richtig erkannt?! Gebe ich als Suchkriterium bspw. 2013 an werden alle Zellen addiert. Steht in der ComboBox der Wert 2013 drin passiert nichts. Könnt ihr mal schauen wo mein Fehler liegt?

Sub ComboBox()
Dim lnglast As Long
lnglast = Sheets("Upload_Inventory_Hilfstabelle_p").Cells(Rows.Count, 14).End(xlUp).Row
Suchkred = CDbl(Sheets("Graphic_Inventory").ComboBox3.Value)
For z = 2 To lnglast
With Sheets("Upload_Inventory_Hilfstabelle_p")
If Cells(z, 14).Value = Suchkred Then
wert = (.Cells(1, 19) + .Cells(z, 15) - Sheets("Upload_Inventory_Hilfstabelle_n").Cells(z, 15))  _
/ 2
End If
End With
Next z
MsgBox wert
'Sheets("Graphic_Inventory").Cells(1,1).Value = wert
End Sub
Ich habe es auch schon ohne das CDbl versucht, auch ohne Erfolg. Gefüllt habe ich die Combobox einmal mit Additem und einmal mit einem Array um zu überprüfen ob es vielleicht daran liegt. Auch das blieb allerdings ohne Erfolg.
Vielen Dank!

Bild

Betrifft: AW: Frage
von: Werner
Geschrieben am: 18.11.2015 19:07:34
Hallo Manuel,
was steht denn in Cells(z, 14) ?
Gruß Werner

Bild

Betrifft: Mal mit Runden versucht?
von: Luc:-?

Geschrieben am: 18.11.2015 19:14:43
Hallo, Manuel;
If Round(Cells(z, 14).Value, n) = Round(Suchkred, n) Then für n = relevante Dezimalen­Anzahl.
Gruß, Luc :-?
Besser informiert mit …

Bild

Betrifft: AW: ComboBox Wert wird bei If Abfrage nicht erkannt
von: Manuel
Geschrieben am: 18.11.2015 19:37:39
Hallo ihr beiden,
danke für die Antwort.
Runden sollte keine Option sein, da es sich nur um Jahreszahlen handelt.
In der Zelle Z,14 Steht demnach das erste Jahr.
Grüße,
Manuel

Bild

Betrifft: Warum dann 'CDbl' statt 'CLng'? Und ist das ...
von: Luc:-?
Geschrieben am: 18.11.2015 19:43:05
…Jahr in der Zelle auch 'ne Zahl und nicht etwa Text?!
Luc :-?

Bild

Betrifft: AW: Warum dann 'CDbl' statt 'CLng'? Und ist das ...
von: Werner
Geschrieben am: 18.11.2015 19:45:43
..Jahr in der Zelle vielleicht ein Datum?
Werner

Bild

Betrifft: AW: Warum dann 'CDbl' statt 'CLng'? Und ist das ...
von: Manuel
Geschrieben am: 18.11.2015 20:00:15
Nein, die Zelle z, 14 ist als Standard formatiert. Ich habe es auch schonmal als Zahl formatiert gehabt, was allerdings auch nicht geholfen hat.
Mit Clng habe ich es probiert, funktioniert leider auch nicht. Habt ihr noch andere Ideen?

Bild

Betrifft: AW: Warum dann 'CDbl' statt 'CLng'? Und ist das ...
von: fcs

Geschrieben am: 18.11.2015 21:08:23
Hallo Manuel,
evtl. hast du nur einen entscheidenden Punkt vergessen.
Ansonsten solltest du immer alle verwendeten Variablen deklarieren. Möglichst so, dass ihr Type den erwarteten Ergebnissen entspricht.
Gruß
Franz
Sub ComboBox()
Dim lnglast As Long
Dim Suchkred As Long 'für Jahrezahl
Dim Z As Long 'für Zeilenzähler
Dim wert As Double 'für ZRechenergebnis
lnglast = Sheets("Upload_Inventory_Hilfstabelle_p").Cells(Rows.Count, 14).End(xlUp).Row
Suchkred = CDbl(Sheets("Graphic_Inventory").ComboBox3.Value)
For Z = 2 To lnglast
With Sheets("Upload_Inventory_Hilfstabelle_p")
If .Cells(Z, 14).Value = Suchkred Then              'Punkt vor Cells vergessen?
wert = (.Cells(1, 19) + .Cells(Z, 15) - _
Sheets("Upload_Inventory_Hilfstabelle_n").Cells(Z, 15)) / 2
End If
End With
Next Z
MsgBox Format(wert, "#,##0.00")
'Sheets("Graphic_Inventory").Cells(1,1).Value = wert
End Sub

Bild

Betrifft: AW: Warum dann 'CDbl' statt 'CLng'? Und ist das ...
von: Manuel
Geschrieben am: 18.11.2015 21:47:28
Perfekt Franz und ihre anderen vielen Dank...es war dieser eine kleine Punkt :(

Bild

Betrifft: Immer wieder d.gleiche VBA-TrivialFehler! :-| owT
von: Luc:-?
Geschrieben am: 19.11.2015 01:41:27
:-?

 Bild
Excel-Beispiele zum Thema "ComboBox Wert wird bei If Abfrage nicht erkannt"
ComboBox als Symbol Alle ComboBoxes auf Position 1
Werte in eine ComboBox einer UserForm übernehmen ComboBox in Abhängigkeit einer 2. ComboBox ein-/ausblenden
ComboBox mit Monatsnamen füllen Mehrspaltige ComboBox
ComboBox2 in Abhängigkeit von ComboBox1 bestücken Nur Zellen mit Inhalt in ComboBox listen
Neue UserForm bedingt nach ComboBox-Auswahl aufrufen Neues Element in ComboBox
Bewerten Sie hier bitte das Excel-Portal