Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
736to740
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
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

mit binär Zahlen arbeiten

mit binär Zahlen arbeiten
25.02.2006 20:40:45
michael
Hallo,
kann ich in Excel auch direkt mit binär Zahlen arbeiten?
Für mich wäre leichter die Pins am LPT1 direkt per 0 und 1 anzusprechen als daraus vorher eine Dezimalzahl auszurechnen.
Bei 01000001 sehe ich gleich dass pin 1 und 7 geschalten ist, bei 65 nicht.
Ich habe einen Code der hex-Zahlen für die Adressierung des LPT-Port enthält.
Diese haben &H vor der hex-Zahl stehen, deklariert wird die zugehörige Variable As Integer. Weil sie gleich in dezimal umgewandelt wird??
Ich hoffe das stimmt auch so - der Code läuft nicht und ich suche noch den Fehler...
Kann ich dann auch direkt mit binär Zahlen arbeiten? Welche(s) Zeichen muss ich der Binärzahl vorstellen? Ist die Variable dann auch Integer? Im gegensatz zu Hex finde ich bei der Variablendeklaration ein "As Byte".
Danke und viele Grüße
Michael

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit binär Zahlen arbeiten-nur Tip
25.02.2006 20:53:14
et999
Hi Michael,
ich habe gerade mal im Formelassistenten gewühlt (also in der Tabellenansicht auf das Gleichheitszeichen geklickt). Wenn Du da bei Funktionskategorie "Technisch" auswählst hast Du alle möglichen Umrechnungen zur Verfügung zwischen Bin, Oct, Dez, und Hex. Ich denke darauf kann man auch in VBA zurückgreifen.
Vielleicht hilft Dir das ein bisschen. Sonst haben unsere Profis bestimmt auch ein paar Tips.
Gruß
Uwe
(:o)
AW: mit binär Zahlen arbeiten-nur Tip
25.02.2006 21:20:09
michael
...danke,
ja mit Umwandeln löse ich z.Zt. das Problem. Wobei ich es bisher etwas komplizierter gelöst habe. Die genannten Funktionen hatte ich noch nicht zur Verfüung, erst als ich im Add-Ins-Manager Analyse-Funktionen aktivierte... Das mit den Add-Ins habe ich bei meiner Suche nach binär in der Recherche aufgeschnappt...
Gruß
Michael
Anzeige
AW: mit binär Zahlen arbeiten
25.02.2006 21:21:22
Nepumuk
Hallo Michael,
Dazu musst du das Addin Analyse-Funktionen laden.
AW: mit binär Zahlen arbeiten
25.02.2006 22:20:12
michael
Danke Nepumuk,
ja, das mit dem Umwandeln in der Tabelle funktioniert.
Kann ich aber die 01000001 direkt im VBA-Code statt der umgewandelten 65 eingeben?
Dim Wert As ???
Wert = 01000001
statt
Dim Wert As Integer
Wert = 65
Muss vor der Binärzahl eine Zeichenfolge zum Erkennen der Binärzahl stehen?
Viele Grüße
Michael
AW: mit binär Zahlen arbeiten
25.02.2006 23:21:46
Nepumuk
Hallo Michael,
als String. Kleines Beispiel:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub test()
    Dim strBin1 As String, strBin2 As String
    strBin1 = "1010"
    strBin2 = "0100"
    MsgBox DecToBin(BinToDec(strBin1) + BinToDec(strBin2), 8)
End Sub

Function DecToBin(ByVal lngNumber As Long, Optional intPlaces As Integer) As String
    Dim intNegativ As Integer
    intNegativ = lngNumber < 0
    lngNumber = Abs(lngNumber) + intNegativ
    Do
        DecToBin = (lngNumber - intNegativ) Mod 2 & DecToBin
        lngNumber = lngNumber \ 2
    Loop While lngNumber > 0
    If intPlaces < Len(DecToBin) Then intPlaces = Len(DecToBin)
    intPlaces = intPlaces - (intPlaces - 1) Mod 8 + 7
    DecToBin = String$(intPlaces - Len(DecToBin), CStr(Cint(-intNegativ))) & DecToBin
    If intNegativ Then DecToBin = "11" & DecToBin
End Function

Function BinToDec(ByVal strBinString As String) As Long
    Dim intNegativ As Integer, intIndex As Integer, intCount As Integer
    Dim lngTemp As Long
    intCount = Len(strBinString)
    intNegativ = intCount > 8 And intCount Mod 8 = 2
    If intNegativ Then
        strBinString = Mid(strBinString, 3)
        intCount = intCount - 2
    End If
    For intIndex = 0 To intCount - 1
        If Mid(strBinString, intCount - intIndex, 1) <> Cint(-intNegativ) Then
            lngTemp = lngTemp + 2 ^ intIndex
        End If
    Next
    BinToDec = (intNegativ - Not intNegativ) * lngTemp + intNegativ
End Function

Gruß
Nepumuk

Anzeige
... ganz schön viel Code ....
26.02.2006 02:25:40
michael
zu erst einmal VIELEN DANK Nepumuk!
...für die Eingabe eines einzelnen Binärwertes. Hätte gehofft, dass es eine ähnliche Syntax wie für Hex-Zahlen gibt.
Dim Wert As Integer
Wert = &H378
Nun ja, ich kann es ja in Modul1a und 1b aufteilen, dann bleibt die Eingabe und mein ursprünglicher Code unter 1a übersichtlicher...
nochmal Danke und viele Grüße
Michael
gibt es keine Worksheetfunction...
26.02.2006 03:14:42
michael
oder so?
ich habs mit mit
wert = application.worksheetfunction.bin2dec("00000101")
versucht. Jedoch fehler 438 - objekt unterstützt eigenschaft od Methode nicht...
auch BinInDez geht nicht...
Oder mach nur was falsch? das wäre halt kürzer als der o.g. code
Danke
Michael
Anzeige
AW: gibt es keine Worksheetfunction...
26.02.2006 03:52:28
Nepumuk
Hallo Michael,
dazu musst du aber das Addin Analyse-Funktionen - VBA laden. Garantiert kein Gewinn im Vergleich zu den paar Zeilen, denn in diesem Addin befinden sich über 400 Zeilen Code.
Wenn du einen Verweis auf das Addin setzt, dann kannst du es ohne Run - Methode aufrufen und musst es nicht über den Addins-Manager laden.
Public Sub test()
    MsgBox Application.Run("atpvbaen.xla!Dec2Bin", 42, 8)
    MsgBox Application.Run("atpvbaen.xla!Bin2Dec", 101010)
End Sub

Gruß
Nepumuk

Anzeige
AW: gibt es keine Worksheetfunction...
26.02.2006 04:24:54
Luc:-?
Hallo Michael,
wenn du das MS-AddIn geladen hast, findest du die entsprechenden Fktt (in 2 Varianten) im fx-Assi unter Technisch. Für Nepumuks (und weitere) Fktt legst du dir am besten ein eigenes AddIn an, das du dann genau da speicherst, wo die MS-AddIns zu xl auch sind - im Ordner ...\Office\Makro. Dann kannst du auch auf einen Verweis verzichten, wenn du das AddIn mit dem Manager 1malig lädst. Den Verweis brauchst du aber, wenn du in einem anderen Projekt VBA-Code schreibst, in den du diese Fktt einbinden willst, es sei denn, alles ist im selben AddIn.
Gruß Luc :-?
Anzeige
...legst du dir am besten ein eigenes AddIn an...
26.02.2006 10:55:53
michael
Danke Luc,
du hast mich Neugierig gemacht - wie mach ich das?
Ein Add-In hat die erweiterung .xla. In Excel mit speichern unter zu realisieren? Dann hab ich leere Tabellenblätter und Code in einem Modul oder wo anderst? Ich hab mal versucht eine xla im VBA-Editor zu öffnen, die sind aber passwort geschützt. Ich hab überhaupt keine Vorstellung wie so was aussehen könnte und was du meinst was da genau drinstehen sollte.
Kannst du mir dabei helfen?
Viele Grüße
Michael
AW: ...legst du dir am besten ein eigenes AddIn an...
26.02.2006 11:31:36
Nepumuk
Hallo Micha,
die Aussagen von Luc kommen mir sehr wirr vor. Ich kann ihnen nicht folgen. Und ich arbeite viel mit Addins.
Gruß
Nepumuk

Anzeige
Meinst du nicht, dass es einen Unterschied...
26.02.2006 12:46:28
Luc:-?
...machen könnte, Nepumuk,
mit AddIns zu arbeiten oder welche anzulegen? Was soll daran sehr wirr sein? Liegt wohl eher an Nachfolgen "karnevalierter"(?) Nächte des Lesers! ;|
Helau wahlweise Alaaf!
Luc :-?
AW: ...legst du dir am besten ein eigenes AddIn an
26.02.2006 12:40:21
Luc:-?
Hallo Michael,
wenn das nicht ausführlich genug war, ich hab das schon des öfteren hier und woanders geschrieben, dann lies mal hier nach. Ich habe meine benutzerdefinierten Fktt (udF) alle in AddIns. So stehen sie mir stets zur Verfügung, weil, wenn 1x im Manager ausgewählt, das betreffende AddIn immer unsichtbar mit xl startet (auch ohne Verweis). Nur wenn ich sie in andere VBA-Projekte einbinden will, muss ich i.d.R. darauf verweisen (sonst gibt's keine maussensitive Hilfe und der Fktname wird nicht erkannt).
Gruß Luc :-?
Anzeige
AW: gibt es keine Worksheetfunction...
26.02.2006 10:41:54
michael
Danke Nepumuk,
hmm ganz schön naiv von mir zu glauben, wenn ich eine Zeile mit Verweis habe, dass das ganze dann einfacher wird... Nunja, oberflächlich betrachtet muss ich nur eine Zeile schreiben und somit die Chnace einen Fehler zu machen, für mich somit geringer wird...
Zum Glück hab ich aber dein Beispiel-Code!
Viele Grüße
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige