Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

"Do While" Schleife
#1
Hallo liebe Community,

ich habe folgende Frage an euch: Wie kann ich bei der If-Anweisung und der Do While Schleife, mehrere Werte angeben?

Dim x As String
x = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
If Range("B35").Value <> "Birne" Then
With Range("B35:B" & x)
  .Columns(2).FormulaLocal = "=Zufallszahl()"
    With ActiveWorkbook.Worksheets("Matching").Sort
        .SetRange Range("B35:C" & x)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    .Columns(2).ClearContents
End With
End If

Do While Range("B35").Value = "Birne"
With Range("B35:B" & x)
  .Columns(2).FormulaLocal = "=Zufallszahl()"
    With ActiveWorkbook.Worksheets("Matching").Sort
        .SetRange Range("B35:C" & x)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    .Columns(2).ClearContents
End With
Loop


An sich funktioniert es nach meinen Wünschen, nur möchte ich jetzt z. B. auf mehrere Werte als "Birne" vergleichen, quasi "Birne, Apfel, Kirsche" usw.. Auch bei der Range würde ich gerne mehrere Bereiche angeben können z. B. "Do While Range("B35, B36, B37").Value = "Birne, Apfel, Kirsche" ".
Könntet Ihr mir freundlicherweise weiterhelfen, in dem Ihr mir sagt, wie ich das richtig zu deklarieren habe? Huh

Liebe Grüße
Mitness 43  
Mit freundlichen Grüßen

Mitness 43
Antworten Top
#2
Hallo,

vielleicht so?

Code:
Sub prcMitness()

   Dim vntArray As Variant
   Dim rngZelle As Range
   Dim lngC As Long
  
   vntArray = Array("Birne", "Apfel", "Kirsche")
  
   For Each rngZelle In Range("B35:B37").Cells
      For lngC = 0 To UBound(vntArray)
         If rngZelle.Value = vntArray(lngC) Then
            With Range("B35:B" & x)
              .Columns(2).FormulaLocal = "=Zufallszahl()"
                With ActiveWorkbook.Worksheets("Matching").Sort
                    .SetRange Range("B35:C" & x)
                    .Header = xlNo
                    .MatchCase = False
                    .Orientation = xlTopToBottom
                    .SortMethod = xlPinYin
                    .Apply
                End With
                .Columns(2).ClearContents
            End With
         End If
      Next lngC
   Next rngZelle
End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Mitness
Antworten Top
#3
Vielen Dank! Hat funktioniert für mich. 15
Mit freundlichen Grüßen

Mitness 43
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste