Thema Datum  Von Nutzer Rating
Antwort
Rot Abbruchkriterium leere Zelle bei Loop
30.01.2022 23:43:17 Gast335566
NotSolved
31.01.2022 01:34:45 ralf_b
*****
Solved
31.01.2022 06:49:10 volti
NotSolved
31.01.2022 01:41:33 xlKing
*****
Solved
31.01.2022 01:46:02 xlKing
NotSolved

Ansicht des Beitrags:
Von:
Gast335566
Datum:
30.01.2022 23:43:17
Views:
613
Rating: Antwort:
  Ja
Thema:
Abbruchkriterium leere Zelle bei Loop

Hallo,

ich habe vor ein paar Tagen angefangen mir VBA beizubringen und bin jetzt auf die erste harte Nuss gestoßen, für die ich nicht die passende Lösung finde. Ich habe mir eine relativ primitive Aufgabe ausgedacht:

In Spalte A stehen fiktive Messwerte für Bauteile, deren Solllänge 10 mm betragen soll. Wird in Zelle A1 ein Wert von 10 mm gemessen, erhalte ich ich in B1 ein "Perfekt". Ist der Wert innerhalb der Toleranz von +/- 1 mm, also zwischen 9 und 11 mm, dann ist mein Bauteil in Ordnung (i.O.), liegt der Wert außerhalb ist das Bauteil nicht in Ordnung (n.i.O.). 

Wenn ich das ganze mit einer For...To-Schleife programmiere klappt das wunderbar, allerdings muss ich für eine abweichende Anzahl an Messungen immer meine Anzahl der Wiederholungen ändern. Deshalb möchte ich gerne zu einer do...while- oder do...until-Schleife übergehen. Hiermit habe ich allerdings keinen Erfolg, da VBA mir die Zeile direkt nach der Do-Anweisung als Laufzeitfehler '1004' ankreidet.

Ich hätte gerne, dass das Programm nach dem letzten Messwert endet, also sobald in der Spalte A eine leere Zelle auftritt. Habe ich irgendwie mein Abbruchkriterium nicht klar definiert? Oder muss ich dem programm sagen, wo mein 'n' anfangen soll?

Für Hilfe oder erstmal einen Denkanstoß wäre ich sehr dankbar!

Viele Grüße

Sebastian

 

Sub Toleranz()

'Variablen
Dim Toleranz As Integer
Dim Soll_Wert As Integer
Dim n As Integer

'Wertzuweisung
Toleranz = 1
Soll_Wert = 10


Do

    If Cells(n, 1).Value = Soll_Wert Then
    
    Cells(n, 2).Value = "Perfekt"
     
        ElseIf Cells(n, 1).Value >= Soll_Wert - Toleranz And Cells(n, 1).Value <= Soll_Wert + Toleranz Then
        Cells(n, 2).Value = "i.O."
     
    Else

        Cells(n, 2).Value = "n.i.O."

    End If

Loop Until IsEmpty(Cells(n, 1)) = True

End Sub

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Abbruchkriterium leere Zelle bei Loop
30.01.2022 23:43:17 Gast335566
NotSolved
31.01.2022 01:34:45 ralf_b
*****
Solved
31.01.2022 06:49:10 volti
NotSolved
31.01.2022 01:41:33 xlKing
*****
Solved
31.01.2022 01:46:02 xlKing
NotSolved