![]() |
Betrifft: ComboBox Wert wird bei If Abfrage nicht erkannt
von: Manuel
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.![]() |
Betrifft: AW: Frage
von: Werner
Geschrieben am: 18.11.2015 19:07:34
Hallo Manuel,
was steht denn in Cells(z, 14) ?
Gruß Werner
![]() |
Betrifft: Mal mit Runden versucht?
von: Luc:-?
![]() |
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
![]() |
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 :-?
![]() |
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
![]() |
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?
![]() |
Betrifft: AW: Warum dann 'CDbl' statt 'CLng'? Und ist das ...
von: fcs
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
![]() |
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 :(
![]() |
Betrifft: Immer wieder d.gleiche VBA-TrivialFehler! :-| owT
von: Luc:-?
Geschrieben am: 19.11.2015 01:41:27
:-?
![]() |