Office: Bitte um Hilfe bei Makro-Erstellung

Helfe beim Thema Bitte um Hilfe bei Makro-Erstellung in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Private Function PostLeitZahl(ByVal Nummer As String) As String Hier "String" als Rückgabewert ist eher unglücklich. Wenn Du überprüfen möchtest, ob... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Paffy, 26. November 2010.

  1. miriki Erfahrener User

    Bitte um Hilfe bei Makro-Erstellung


    Code:
    Private Function PostLeitZahl(ByVal Nummer As String) As String
    Hier "String" als Rückgabewert ist eher unglücklich. Wenn Du überprüfen möchtest, ob etwas falsch/richtig ist, wäre "Boolean" als Rückgabe sinnvoller. Im aufrufenden Hauptprogramm kannst Du den dann direkt mit IF... auswerten.
    Code:
    Private Function PostLeitZahl_korrekt(ByVal Postlz As String) As Boolean
    dim korrekt as boolean
    dim n as long
    korrekt = true
    Code:
    Länge = Len(Trim(Replace(Nummer, " ", "")))
    Ist vielleicht auch etwas tricky... Du prüfst die Länge des mit "replace" und "trim" modifizierten Strings, beläßt den String selbst aber in der ursprünglichen Form.
    Code:
    Postlz = Trim(Replace(Postlz, " ", ""))
    Code:
    If (Len(Postlz) = 5) Then
    Eigentlich brauchst Du nur den Fehlerfall abfragen, weil die Hilfsvariable "korrekt" ja schon mit "true" vorbelegt ist. Nur, wenn ein Fehler auftritt, muß diese mit "false" überschrieben werden.
    Code:
    If (Len(Postlz) <> 5) Then
    Code:
        PostLeitZahl = "OK"
    Else
        PostLeitZahl = "Falsche Länge!"
    End If
    End Function
    Bevor das aufrufende Hauptprogramm einen kompletten String abprüfen muß, um zu entscheiden, ob das Ding denn nun korrekt war oder nicht:
    Code:
        korrekt = false
    End If
    PostLeitZahl_korrekt = korrekt
    End Function
    Aber das ist ja nur ein Teil der Tests, wie Du ja schreibst. Als nächstes möchtest Du wissen, ob alle 5 Zeichen auch Ziffern sind. Dazu muß nur eine kleine Schleife eingefügt werden:
    Code:
    for n=1 to len(postlz)
        if (mid$(postlz,n,1)<"0") or (mid$(postlz,n,1)>"9") then
            korrekt = false
        endif
    next n
    Was also letztendlich resultiert in:
    Code:
    Private Function PostLeitZahl_korrekt(ByVal Postlz As String) As Boolean 
    
        dim korrekt as boolean 
        dim n as long 
    
        korrekt = true
        Postlz = Trim(Replace(Postlz, " ", ""))
    
        If (Len(Postlz) <> 5) Then
            korrekt = false 
        End If 
    
        for n=1 to len(postlz) 
            if (mid$(postlz,n,1)<"0") or (mid$(postlz,n,1)>"9") then 
                korrekt = false
            endif 
        next n
    
        PostLeitZahl_korrekt = korrekt 
    
    End Function
    (Müßte eigentlich so klappen, ist aber nicht nachgebaut / ausprobiert...)

    Gruß, Michael
     
  2. Paffy Erfahrener User
    hi miriki,

    super das hat sehr gut geklappt...
    Grußes Dickes Lob zu Dir...
    Dann habe ich es nun doch geschafft mit deiiner/eurer Hilfe..!

    DANKE

    MfG
     
  3. Paffy Erfahrener User
    wie kann ich das nun noch ändern, das er nicht nur C3 einlesen tut,
    sondern die komplette C-Spalte?
     
  4. miriki Erfahrener User

    Bitte um Hilfe bei Makro-Erstellung

    Diese Routine überprüft ja nicht eine Zelle, sondern nur den Wert, der an die Routine übergeben wird. Woher die Werte kommen, die überprüft werden sollen, ist Sache des übergeordneten (Haupt-) Programms.

    Du brauchst also eine Schleife, die der Reihe nach die Zellen abklappert, die überprüft werden sollen. Im einfachsten Fall sowas in der Art:
    Code:
    for y=1 to 65536 'die kpl. spalte durchlaufen
        plz=activesheet.cells(y,3).value 'wert aus zeile y, spalte 3 = c
        if postleitzahl_korrekt(plz) then
            'ja: ...
          else
            'nein: ...
        endif
    next y
    Was jeweils bei ja / nein passieren soll, mußt Du entscheiden. Und normalerweise muß ja auch nicht die kpl. Spalte C durchlaufen werden, sondern man beschränkt sich auf den belegten Bereich. Aber da gibt es zu viele Möglichkeiten, um da jetzt Genaueres sagen zu können.

    Gruß, Michael
     
Thema:

Bitte um Hilfe bei Makro-Erstellung

Die Seite wird geladen...
  1. Bitte um Hilfe bei Makro-Erstellung - Similar Threads - Bitte Hilfe Makro

  2. Bitte um Hilfe bei erstellung eines Makros, chat GPT hängt sich auf

    in Microsoft Excel Hilfe
    Bitte um Hilfe bei erstellung eines Makros, chat GPT hängt sich auf: Hallo Bitte kann mir jemand helfen ich bräuchte ein Makro welches mir eine Liste erstellt aus der Zahlenkombination 0-6. beginnt soll beginnen mit 0 0 0 0 0 0 0 dann 0 0 0 0 0 0 1 aber auch...
  3. BItte um Hilfe bei Makro Programmierung

    in Microsoft Excel Hilfe
    BItte um Hilfe bei Makro Programmierung: Hallo, ich habe da ein Problem. Bei der Berechnung von LOadcases benötige ich ein Makro. Ich habe 2 excel dateien. Datei 1 (Database)) Hier habe ich alle Loadcases und Ergebnisse. Datei2...
  4. Makro? VBA? Sortieren geht nicht, brauche bitte Hilfe bei der Lösung

    in Microsoft Excel Hilfe
    Makro? VBA? Sortieren geht nicht, brauche bitte Hilfe bei der Lösung: Einen wunderschönen "Guten Tag", nachdem letzte Saison mein Problem ungelöst blieb muss es dieses Jahr was werden ... Ich habe eine Excel 2003 Tabelle mit mehreren, identischen...
  5. Bitte um Hilfe bei Makro - Datenbank

    in Microsoft Excel Hilfe
    Bitte um Hilfe bei Makro - Datenbank: Hallo Excel-Profis, an der Hochschule müssen wir ein Portfoliomanagementsystem erstellen. So ein Portfolio besteht aus mehreren Gewerbeimmobilien. Wir sind alles Excel-Anfänger und haben mit...
  6. noch keine Antwort - Makro Bilddoku - bitte um Hilfe!

    in Microsoft Word Hilfe
    noch keine Antwort - Makro Bilddoku - bitte um Hilfe!: Hallo, ich hatte vor einiger Zeit schon mal gepostet bzgl. eines Word-Makros für Bilddokumentationen. Ich habe mittlerweile ein Makro für einige Teile, aber das klappt nicht so gut (Bei...
  7. EXCEL 2003 Makro!! brauche Hilfe bitte....

    in Microsoft Excel Hilfe
    EXCEL 2003 Makro!! brauche Hilfe bitte....: Guten Tag.... ich habe ein Problem mit Excel und zwar möchte ich ein Makro schreiben das in ein Tabellenblatt nach rechts geht etwas kopiert und wieder nach links auf das eine Tabellenblatt und...
  8. bräuchte bitte MAKRO-hilfe

    in Microsoft Word Hilfe
    bräuchte bitte MAKRO-hilfe: hallo leute! ich möchte für unsere systemdokumentationen etc. [alles, was der kunde eben so an doks kriegen soll] eine vorlage für das deckblatt machen, bei dem alles fix vorgegeben ist - also...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden