ForSchleife,Zeile wird kopiert obw.nicht erfüllt

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: ForSchleife,Zeile wird kopiert obw.nicht erfüllt
von: karin
Geschrieben am: 16.09.2015 11:49:32


Sub T()
Sheets(1).Select
    Sheets.Add After:=Sheets(1)
        Sheets(2).Name = "BSP"
Sheets(1).Select
    Rows("1:2").Select
    Selection.Copy
Sheets(2).Select
    Range("A1").Select
    ActiveSheet.Paste
Sheets(1).Select
startzeile = 2
Spalte = 3
grenzwert = 2
startzeile2 = 2
Spalte2 = 2
Spalte3 = 4
grenzwert2 = "AB"
grenzwert3 = "C"
grenzwert5 = ""
Sheets(1).Select
Letzte_Zeile = Range(Cells(65536, Spalte), Cells(65536, Spalte)).End(xlUp).Row
For i = startzeile To Letzte_Zeile
On Error Resume Next
     If Sheets(1).Cells(i, Spalte) > grenzwert And Sheets(1).Cells(i, Spalte2) = grenzwert2 And  _
Sheets(1).Cells(i, Spalte3) = grenzwert3 Or Sheets(1).Cells(i, Spalte) > grenzwert And Sheets(1).Cells(i, Spalte2) = grenzwert5 And Sheets(1).Cells(i, Spalte3) = grenzwert3 Then
        'hier copieren der Zellinhalte
        Sheets(1).Rows(i & ":" & i).Copy
        Sheets(2).Select
        Cells(startzeile2, 1).Select
        ActiveSheet.Paste
        startzeile2 = startzeile2 + 1
        
     Else
     End If
Next
End Sub
Guten Tag,
ich habe folgenden Code, der auch super funktioniert. Das Problem ist, wenn keiner der Bedingungen (Grenzwerte) gilt, dann kopiert mir das Makro einfach die ersten zwei Zeilen in das neue Tabellenblatt. Die erste Zeile ist in Ordnung, da dies die Überschriften sind.
Aber die zweite sollte nicht da sein, wenn die Bedingungen nicht gelten. Wie kann man das verhindern?
VIelen Dank

Bild

Betrifft: Zeile wird kopiert obw.nicht erfüllt
von: Rudi Maintaire
Geschrieben am: 16.09.2015 12:38:36
Hallo,
dann kopiert mir das Makro einfach die ersten zwei Zeilen
das mach ja auch schon, bevor du prüfst.

    Rows("1:2").Select
    Selection.Copy
Gruß
Rudi

Bild

Betrifft: AW: Zeile wird kopiert obw.nicht erfüllt
von: karin
Geschrieben am: 16.09.2015 16:18:45
Stimmt, da bin ich jetzt garnicht selbst draufgekommen.
Gibt es denn eine Möglichkeit, keine der Bedingungen gilt (ich also ein leeres Sheet außer Row 1 habe)
in eine bestimmte Zelle schreiben zu lassen: Bedingung nicht erfüllt (keine Msgbox)
Vielen Dank!

Bild

Betrifft: AW: Zeile wird kopiert obw.nicht erfüllt
von: Rudi Maintaire
Geschrieben am: 16.09.2015 16:36:27
Hallo,

Sub T()
  Dim StartZeile As Long, StartZeile2 As Long, Letzte_Zeile As Long, i As Long
  Dim Spalte As Long, Spalte2 As Long, Spalte3 As Long
  Dim GrenzWert, GrenzWert2, GrenzWert3, GrenzWert5
  Dim blnFound As Boolean
  
  StartZeile = 2
  Spalte = 3
  GrenzWert = 2
  StartZeile2 = 2
  Spalte2 = 2
  Spalte3 = 4
  GrenzWert2 = "AB"
  GrenzWert3 = "C"
  GrenzWert5 = ""
  
  Worksheets.Add After:=Sheets(1)
  ActiveSheet.Name = "BSP"
  Sheets(1).Rows(1).Copy Sheets(2).Range("A1")
  
  
  With Sheets(1)
    Letzte_Zeile = .Cells(Rows.Count, Spalte).End(xlUp).Row
    For i = StartZeile To Letzte_Zeile
      If .Cells(i, Spalte) > GrenzWert And .Cells(i, Spalte2) = GrenzWert2 And _
        .Cells(i, Spalte3) = GrenzWert3 Or .Cells(i, Spalte) > GrenzWert And _
        .Cells(i, Spalte2) = GrenzWert5 And .Cells(i, Spalte3) = GrenzWert3 Then
        
        'hier copieren der Zellinhalte
        Sheets(1).Rows(i).Copy Sheets(2).Cells(StartZeile2, 1)
        StartZeile2 = StartZeile2 + 1
        blnFound = True
      End If
    Next i
  End With
  If Not blnFound Then Sheets(2).Cells(2, 1) = "Keine Werte gefunden!"
End Sub

Gruß
Rudi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "ForSchleife,Zeile wird kopiert obw.nicht erfüllt"