ComboBox Wert wird bei If Abfrage nicht erkannt

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
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

Beiträge aus den Excel-Beispielen zum Thema "ComboBox Wert wird bei If Abfrage nicht erkannt"