Zahlensysteme

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Zahlensysteme

    Hallo Leute,
    Ich habe seit 1-2 Wochen mit VBA zu tun und soll jetzt eine UserForm erstellen, in der man die Zahlensysteme Oct,Dec,Hex,Bin umrechnen kann und die Tabelle automatisch für alle Zahlensysteme umwandelt und ausfüllt. Ich habe bis jetzt im Objektkatalog nur gefunden, dass es die Funktionen Hex2Dec, Hex2dim usw gibt aber ich habe keine Ahnung wie man das jetzt am besten nutzt oder aufstellen soll.
    Hat jemand ungefähr eine Ahnung wie ich da herangehen sollte ?
    Liebe Grüße ;)
    @Ljonja

    Solange es kleine Zahlen sind, sollte das mit den Zellenfunktionen funktionieren. Einfach mal das Makro laufen lassen und das in Excel kurz umsetzen, dann sollten alle Infos zu Vba vorhanden sein.

    Was aber noch besser wäre, gleich etwas eigenes machen. Einen sehr einfachen Algo habe ich hier reingestellt.
    vb-paradise.de/index.php/Threa…ner-Basis-in-ein-Anderes/


    Freundliche Grüsse

    exc-jdbi
    Ich habe mal in VB 6.0 einen Umrechner geschrieben, um eine Dezimalzahl in ein beliebiges System umzurechnen. Vielleicht hilft der nachfolgende Code. Du brauchst 1x Textbox "txtEingabe1", 1x Textbox "txtConvert" und 1x Button "cmdCalc". Ich kann aber nicht garantieren, dass alles in VBA funktioniert.

    Visual Basic-Quellcode

    1. Option Explicit ' Erzwingt die Variablendeklaration
    2. Private Sub cmdCalc_Click()
    3. ' Konvertierung
    4. On Error GoTo ErrorHandler
    5. If IsNumeric(txtEingabe1.Text) And IsNumeric(txtConvert.Text) Then
    6. ' Berechnung starten
    7. Dim Zahl As Long
    8. Dim ConvertTo As Long
    9. Dim Ergebnis As String
    10. Dim Zwischenergebnis As String
    11. Dim Letters As Variant
    12. Letters = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
    13. Zahl = CLng(txtEingabe1.Text)
    14. ConvertTo = CLng(txtConvert.Text)
    15. Ergebnis = ""
    16. If ConvertTo < 2 Then
    17. MsgBox "Das Ziel-Zahlensystem muss mindestens 2 sein.", vbApplicationModal + vbDefaultButton1 + vbExclamation + vbMsgBoxSetForeground + vbOKOnly, "Hinweis"
    18. txtConvert.SetFocus
    19. Exit Sub
    20. End If
    21. Do While Zahl > 0
    22. Select Case Zahl Mod ConvertTo
    23. Case Is < 10: Ergebnis = Zahl Mod ConvertTo & Ergebnis
    24. Case Is > 9: Ergebnis = Letters((Zahl Mod ConvertTo) - 10) & Ergebnis
    25. End Select
    26. Zahl = Zahl \ ConvertTo
    27. If Zahl <= 0 Then Exit Do
    28. Loop
    29. ' Ergebnis ausgeben
    30. MsgBox "Die Zahl " & txtEingabe1.Text & " ist im Zahlensystem mit der Basis " & txtConvert.Text & " die Zahl " & Ergebnis & ".", vbApplicationModal + vbDefaultButton1 + vbInformation + vbMsgBoxSetForeground + vbOKOnly, "Berechnung erfolgreich"
    31. Else
    32. ' Berechnung kann nicht gestartet werden
    33. MsgBox "Sie haben nicht alle erforderlichen Eingaben gemacht.", vbApplicationModal + vbDefaultButton1 + vbExclamation + vbMsgBoxSetForeground + vbOKOnly, "Hinweis"
    34. txtEingabe1.SetFocus
    35. End If
    36. Exit Sub
    37. ErrorHandler: ' Fehlerbehandlung
    38. MsgBox Err.Description & ".", vbCritical + vbMsgBoxSetForeground + vbApplicationModal, "Fehler"
    39. End Sub
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum