Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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

Hilfe bei Userform zur Umrechung

Hilfe bei Userform zur Umrechung
06.11.2019 11:48:34
Thomas
Guten Tag,
vor einiger Zeit habe ich hier sehr tolle Hilfe zur Programmierung eines Userforms erhalten.
Dies nutze ich zur Umrechung von Faktoren in einem Dokument, bei Produktwechseln.
Das Ganze Funktioniert auch super im Bereich von ganzen Zahlen größer 1, aber nun macht ein neues Produkt die Anpassung in Format kleiner 1 notwendig.
Sobald ich einen Umrechungsfaktor kleiner 1 (z.B. 0,5) eintrage, schreibt die Programmierung eine 0 in die zelle oder das Ganze stürzt ab.
Wahrscheinlich handelt es sich für erfahrene VBAler um eine simple Kleinigkeit aber ich komme ienfach darauf.
Ich freu emich auf eure Hilfe und schon einmal vielen Dank im Voraus, ich weiß dieses Forum hier sehr zu schätzen!
Hier der Code des userforms:
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), CLng(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 = CLng(Me.TextBox2)
.AutoFilter.Range.Offset(1).Resize(.AutoFilter.Range.Rows.Count - 1).Columns(4)  _
_
.SpecialCells(xlCellTypeVisible).Value = CLng(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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Userform zur Umrechung
06.11.2019 11:54:27
Werner
Hallo,
ändere mal überall im Code CLng um in CDbl
Gruß Werner
AW: Hilfe bei Userform zur Umrechung
06.11.2019 12:01:19
Thomas
So einfach geht das!
Vielen lieben Dank passt und funktioniert perfekt.
Magst du das für meinen persönlichen Lerneffekt noch erklären, damit ich nicht nur kopiere sondern auch etwas mitnehmen kann.
Und nochmal danke für die schnelle und gute Hilfe!
AW: Hilfe bei Userform zur Umrechung
06.11.2019 12:11:13
Werner
Hallo,
CLng = Ganzzahl - Excel rundet
CDbl = Gleitkommazahl
Gruß Werner
AW: Hilfe bei Userform zur Umrechung
06.11.2019 12:18:32
Zwenn
Hallo Thomas,
das Thema heißt Type Casting. Dabei geht es darum einen Wert von einem Datentyp in einen anderen umzuwandeln. Wenn Du z.B. eine Zahl in einer Textbox stehen hast, dann sieht es zwar aus wie eine Zahl, ist aber ein String (Textbox).
Nun gibt es unterschiedliche Möglichkeiten damit umzugehen. Eine Text-Ganzzahl wandelt man mit CLng() in eine Ganzzahl vom Datentyp Long um. Eine Text-Kommazahl wird mit CDbl() in eine Zahl vom Datentyp Double umgewandelt. Wandelt man hingegen eine Kommazahl in eine Ganzzahl um, verfällt der Nachkommaanteil, weil der Datenyp Long kein Komma kennt.
In VBA wird viel automatisch gecastet. Aber hier hast Du eine Übersicht zu den Funktionen, mit denen Du manuell casten kannst:
https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/functions/type-conversion-functions
Viele Grüße,
Zwenn
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige