Hilfe für ein kleines VBA Projekt

verenabrauchthilfe

Grünschnabel
Hallo, ich bin VB- Neuling und brauch dringend Hilfe! Ich muss bis zum 3.11. ein Projekt machen und unser Lehrer in der Berufsschule hat kaum was erklärt. Außerdem habe ich Schwierigkeiten die richtige Literatur zu finden. Folgendes: Ich muss ein kleines Programm in einem Formular machen, mit welchem man eine IP- Adresse eingibt und diese dann in Dualzahlen (0 und 1) ausgegeben wird. Das Prinzip der Dualzahlen kann ich. Ich darf keine Funktion benutzen und weiß wirklich nicht wie ich das am Besten programmiere. Ich wollte Wenn, dann... sonst - Funktionen machen und natürlich eine Schleife für die anderen Zahlen nach jedem Punkt. Aber kann mir jemand bitte helfen? Wie fange ich an?
Gruß, Verena
 
Was genau soll man unter "Ich darf keine Funktion benutzen" verstehen? So ganz habe ich diesen Satz nämlich nicht verstanden.
 
Was genau soll man unter "Ich darf keine Funktion benutzen" verstehen? So ganz habe ich diesen Satz nämlich nicht verstanden.

Das habe ich so verstanden, dass die Umrechnung nicht mit z.B. irgendwelchen Excel-eigenen Funktionen erfolgen soll, sondern selbst codiert.

Sowie ich Dich, Verena, verstehe, weißt Du noch nicht, wie Du überhaupt anfängst. Vielleicht solltest Du erstmal VBA öffnen, Dir einen Command-Button auf eine Benutzerformziehen. Dann klickst Du auf den Button, dadurch entsteht eine neue leere Prozedur, in die der Code für die Umrechnung kommt. Das wäre schon mal ein Anfang. Oder habe ich Dich falsch verstanden?

Grüsse
ronaldh
 
OK, wenn man mal von Bordeigenen VBA-Mitteln ausgeht (und du diese benutzen darfst):

Visual Basic:
Dim ipString As String
Dim IP() As String
Dim Dual(0 To 3) As String
Dim Gültig As Boolean
Dim i As Integer

    Do
    
        Gültig = True
    
        ipString = InputBox("Bitte geben Sie eine IP-Adresse ein")
        
        If ipString = "" Then Exit Sub    'Oder Exit Function je nachdem wie man es aufbaut
        
        IP = Split(ipString, ".")
        
        If UBound(IP) <> 3 Then
            
            Gültig = False
        
        Else
        
            If CInt(IP(0)) > 255 Or CInt(IP(1)) > 255 Or CInt(IP(2)) > 255 Or CInt(IP(3)) > 255 Then Gültig = False
            
        End If
        
        If Not Gültig Then MsgBox "Ungültige IP-Adresse"
        
    Loop Until Gültig

    For i=0 to 3

           'Hier die Umwandlung in Dual-Zahl
           Dual(i)=WandleInDualUm(IP(i))

    Next
 
Merci! Ich weiß schon wie man anfängt...... ich bin nur echt unwissend wie ich das machen soll. Also man gibt die IP-Adresse in dem Format ein: 123.234.2.2 Dann muss diese Zahl wohl ausgelesen werden mit einer MID- FKT. Damit man 123 und 234 und 2 und 2 einzeln umwandeln kann. Das habe ich mit der modular Fkt versucht, aber ich glaube damit mache ich es mir zu einfach, außerdem klappt das nicht richtig :-(. Danach möchte ich die Ergebnisse z.B. 11100001 in ein Listenfeld ausgeben. So dass die einzelnen Dualzahlen- "Module" untereinander stehen. Ich danke aber schon einmal für den Code, den schau ich mir mal näher an! Gruß, Verena
 
Kurze Erklärung zu meinem Code:

In der Do-Loop-Schleife wird der User aufgefordert eine IP-Adresse im Format XXX.YYY.ZZZ.AAA einzugeben.
Innerhalb der Schleife wird geprüft, ob die IP-Adresse gültig sein kann (besteht sie aus 4 Bytes, ist jedes Byte kleiner/gleich 255 - theoretisch müsste man sogar ne Prüfung auf negative Zahlen machen). Gleichzeitig wird mit der Split-Funktion der String (weil das ist das, was InputBox zurückgibt) aufgeteilt, und zwar als Trennzeichen der Punkt ".". Falls die IP-Adresse gültig ist, hast du damit automatisch alle 4 Bytes schon aufgeteilt.
Falls die IP-Adresse ungültig ist, wird der User rüde daran erinnert, und zu nochmaliger Eingabe aufgefordert - Abbruch per Cancel, und damit Ausstieg aus der Funktion.

In der zweiten Schleife findet dann nur noch die Umwandlung von Dezimal in Dual statt
 
Zurück