CDbl Faktor <1 wird nicht übernommen

Betrifft: CDbl Faktor <1 wird nicht übernommen
von: Thomas Herzlieb
Geschrieben am: 08.09.2020 10:30:53
Guten Tag,
ich habe ein kleines Problem was wahrscheinlich der VBA Profi und 2 sec löst.
Ich habe ein User Form das Eingabe von 2 Artikelnnummern und einem Umrechnungsfaktor vorgibt.
Mein Problem bei Zahlen <1 beim Umrechnungsfaktor will das Ganze nicht laufen. Ich vermute an einer Zahlenvariablen (CDbl) icht würde beim Rechnen auch Zahlen <1 benötigen bspw. 0,5.
Bitte um Lösungen, Danke.
Hier noch der CODE:
Option Explicit
Private Sub CommandButton1_Click()
Dim loLetzte As Long, ws As Worksheet
Application.ScreenUpdating = False
If Me.TextBox1 <> "" And Me.TextBox2 <> "" And Me.TextBox3 <> "" Then
For Each ws In ActiveWorkbook.Worksheets
If WorksheetFunction.CountIf(ws.Columns(3), CDbl(Me.TextBox1)) = 0 Then
Else
With ws
loLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range("C1:F" & loLetzte).AutoFilter Field:=1, Criteria1:=Me.TextBox1
.AutoFilter.Range.Offset(1).Resize(.AutoFilter.Range.Rows.Count - 1).Columns(1) _
_
_
_
_
_
_
.SpecialCells(xlCellTypeVisible).Value = CDbl(Me.TextBox2)
.AutoFilter.Range.Offset(1).Resize(.AutoFilter.Range.Rows.Count - 1).Columns(4) _
_
_
_
_
_
_
.SpecialCells(xlCellTypeVisible).Value = CDbl(Me.TextBox3)
.AutoFilterMode = False
End With
End If
Next ws
Unload Me
Else
MsgBox "Es sind nicht alle Eingabefleder befüllt."
Me.TextBox1.SetFocus
End If
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Click()
End Sub
Schon mal Danke vorab

Betrifft: AW: CDbl Faktor <1 wird nicht übernommen
von: Werner
Geschrieben am: 08.09.2020 10:54:19
Hallo,
und wir sollen jetzt wissen, wo genau im Code es jetzt "klemmt"?
Und welche Fehlermeldung wird dir denn ausgegeben.
Ich denke mal, dass das ohne eine(deine) Mappe mit ein paar Datensätzen eher nichts wird.
Gruß Werner

Betrifft: AW: CDbl Faktor <1 wird nicht übernommen
von: Thomas Herzlieb
Geschrieben am: 08.09.2020 12:36:32
Fehler ist "Laufzeitfehler 1004"
Private Sub CommandButton1_Click()
Dim loLetzte As Long, ws As Worksheet
Application.ScreenUpdating = False
If Me.TextBox1 <> "" And Me.TextBox2 <> "" And Me.TextBox3 <> "" Then
For Each ws In ActiveWorkbook.Worksheets
If WorksheetFunction.CountIf(ws.Columns(3), CDbl(Me.TextBox1)) = 0 Then
Else
With ws
loLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range("C1:F" & loLetzte).AutoFilter Field:=1, Criteria1:=Me.TextBox1
.AutoFilter.Range.Offset(1).Resize(.AutoFilter.Range.Rows.Count - 1).Columns(1) _
_
.SpecialCells(xlCellTypeVisible).Value = CDbl(Me.TextBox2)
.AutoFilter.Range.Offset(1).Resize(.AutoFilter.Range.Rows.Count - 1).Columns( _
4) _
.SpecialCells(xlCellTypeVisible).Value = CDbl(Me.TextBox3)
.AutoFilterMode = False
End With
End If
Next ws
Unload Me
Else
MsgBox "Es sind nicht alle Eingabefleder befüllt."
Me.TextBox1.SetFocus
End If
End Sub
Das fett gedruckte wird beim debuggen gelb markiert.
Schöne Grüße
Thomas

Betrifft: AW: CDbl Faktor <1 wird nicht übernommen
von: Werner
Geschrieben am: 08.09.2020 12:57:55
Hallo,
und deine Datei ist jetzt wo?
Da ich keine Ahnung habe, wo du welche Werte hast jetzt überall mit CDbl
Private Sub CommandButton1_Click()
Dim loLetzte As Long, ws As Worksheet
Application.ScreenUpdating = False
If Me.TextBox1 <> "" And Me.TextBox2 <> "" And Me.TextBox3 <> "" Then
For Each ws In ActiveWorkbook.Worksheets
With ws
If WorksheetFunction.CountIf(.Columns(3), CDbl(Me.TextBox1)) > 0 Then
loLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
.Range("C1:F" & loLetzte).AutoFilter Field:=1, Criteria1:=CDbl(Me.TextBox1)
With .AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).Columns(1) = CDbl(Me.TextBox2)
.Offset(1).Resize(.Rows.Count - 1).Columns(4) = CDbl(Me.TextBox3)
End With
.AutoFilterMode = False
End If
End With
Next ws
Unload Me
Else
MsgBox "Es sind nicht alle Eingabefleder befüllt."
Me.TextBox1.SetFocus
End If
End Sub
Gruß Werner

Betrifft: AW: CDbl Faktor <1 wird nicht übernommen
von: Thomas Herzlieb
Geschrieben am: 08.09.2020 14:26:29
Guten Tag noch mal,
hier noch die Datei
https://www.herber.de/bbs/user/140127.xlsm
Es geht wie gesagt darum verschiedene Artikel in einer Kalkulation zu ersetzen und der Faktor rechnet verschiedene Einheiten um, damit nachher alles als Basis KG hat.
Es funktioniert auch prima mit allen Zahlen größer 1
danke noch mal bis hierhin

Betrifft: Beispielmappe ohne Daten, sehr sinnvoll. oT
von: Werner
Geschrieben am: 08.09.2020 14:45:26

Betrifft: AW: CDbl Faktor <1 wird nicht übernommen
von: Daniel
Geschrieben am: 08.09.2020 11:04:05
Hi
Bei einem Textbox1.Value fehlt noch das CDBl.
Ich vermute mal, dass es daran hakt.
Du könntest auch auf das CdBl verzichten, müsstest dann aber das Komma durch den Punkt ersetzen.
Bei den SpecialCells fehlt noch der Ausgangszellbereich davor.
Momentan bezieht du das auf das Worksheet WS.
Gruß Daniel
Beiträge aus dem Excel-Forum zum Thema "CDbl Faktor <1 wird nicht übernommen"