Thema Datum  Von Nutzer Rating
Antwort
29.11.2011 09:28:45 Sino
Solved
29.11.2011 10:05:18 Till
NotSolved
29.11.2011 11:04:24 Gast27334
NotSolved
29.11.2011 14:42:38 Sino
NotSolved
29.11.2011 19:23:08 Dekor
NotSolved
29.11.2011 20:31:10 Till
NotSolved
29.11.2011 20:36:47 Till
NotSolved
30.11.2011 08:54:39 Sino
NotSolved
30.11.2011 11:14:15 Till
NotSolved
30.11.2011 11:27:20 Sino
NotSolved
30.11.2011 11:57:22 Till
NotSolved
30.11.2011 13:02:36 Gast71196
NotSolved
30.11.2011 13:11:03 Sino
NotSolved
30.11.2011 18:17:17 Till
NotSolved
Rot Problem innerhalb einer Schleife
01.12.2011 09:18:42 Sino
NotSolved
01.12.2011 15:46:01 Sino
NotSolved
01.12.2011 16:02:20 TIll
NotSolved
01.12.2011 16:31:38 Sino
NotSolved
02.12.2011 09:13:20 Sino
NotSolved
02.12.2011 16:57:31 Till
NotSolved
02.12.2011 17:03:54 Till
NotSolved

Ansicht des Beitrags:
Von:
Sino
Datum:
01.12.2011 09:18:42
Views:
1236
Rating: Antwort:
  Ja
Thema:
Problem innerhalb einer Schleife

Hallo Till,

zunächst einmal vielen Dank für deine Mühe ;)...

Wie gesagt, bei Ausführung wird nur die letzte Bedingung beachtet (Also FREMD und L9.5 oder L9.6). Hier mal mein gesamter Code:

Option Explicit
 

Private Sub CommandButton1_Click()

Dim intRow As Integer, intLastRow As Integer
Dim ASH As Worksheet, gesamt As Worksheet, unbetrachtet As Worksheet
Dim x As Long, y As Long, lngZeilen As Long
Dim rngZelle As Range
Dim lngAnz As Long
Dim V1, V2, V3
Dim NWB As Workbook 'neues workbook


    'Zuweisung der Tabellen zu den Variablen
        With ThisWorkbook
        Set ASH = .ActiveSheet
        Set gesamt = .Worksheets("Gesamtauszug")
        End With
         
    'Formeln werden entfernt
        For Each rngZelle In ThisWorkbook.ActiveSheet.UsedRange
            'prüfen ob Zelle eine Formel enthält
                If rngZelle.HasFormula = True Then
                    rngZelle.Rows.Delete
                    lngAnz = lngAnz + 1
                End If
        Next rngZelle
     
    'hier wird die länge der Quelltabelle ermittelt und in die Zieltabelle eingef?gt
        lngZeilen = gesamt.Cells(gesamt.Rows.Count, 2).End(xlUp).Row
        x = 1
     
    '*********************
    '*Workbook hinzufügen*
    '*********************
        Set NWB = Workbooks.Add
        With NWB
            Set unbetrachtet = .Sheets(1)
            .Sheets(1).Name = "nicht_betrachtete Datensätze"
            Application.DisplayAlerts = False
            .Sheets(2).Delete
            .Sheets(2).Delete
            Application.DisplayAlerts = True
        End With
              
    'Schleife die die Quelltabelle durchsucht und bei bestimmter Bedingung wird die Aktion copy-paste gestartet
        For y = 3 To lngZeilen
            'Bedingungen
                With gesamt
                    V1 = .Cells(y, 11).Value
                    V2 = .Cells(y, 4).Value
                    V3 = .Cells(y, 3).Value
                End With
                
           If Not V1 Like "W*" _
           And V1 <> "" Then

           If V2 Like "ROTES*" _
           Or V2 Like "TANKK*" _
           Or V2 Like "FREMD*" And V3 Like "L9.5" _
           Or V3 Like "L9.6" Then

'           Or V2 Like "EZW*"
            gesamt.Rows(y).Copy unbetrachtet.Rows(x)
            x = x + 1
                 
        End If
        End If
        Next y
        
 
    '************************************
    '*neues Workbook speichern/schließen*
    '************************************
       
        
        With NWB
            .SaveAs Environ("UserProfile") & "\Desktop\Nicht betrachtete Datensätze.xls"
            '.Close (False)
        End With
         
    'hier werden die leeren Zeilen entfernt
        With ASH
            intLastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
            For intRow = intLastRow To 1 Step -1
                If Application.CountA(.Rows(intRow)) = 0 Then
                    intLastRow = intLastRow - 1
                Else
                    Exit For
                End If
            Next intRow
            For intRow = intLastRow To 1 Step -1
                If IsEmpty(.Cells(intRow, 11)) Then
                    ASH.Rows(intRow).Delete
                End If
            Next intRow
        End With
End Sub

 

Ich habe natürlich mehr Spalten (40) und mehr DS (ca. 25000)...aber die zu betrachtenden Spalten wären nur die 3.

 

Quelltabelle:

Leasingart                                        VC.Mode                                             FahrzeugID

      L9.1                                             970120_x                                          DATENLEICHE

      L9.2                                             940120_x                                                W12345

                                                 ROTES KENNZEICHEN              

      L9.0                                            EZW_DUMMY                                       LÖSCHEN

      L9.0                                            EZW_DUMMY                                       DOPPELT

      L9.0                                            EZW_DUMMY                                         W43210

      L9.5                                                FREMD                                                W00000                                             

      L9.5                                                FREMD                                               DOPPELT

      L9.3                                                FREMD                                               DOPPELT

      L9.3                                                FREMD                                                W98765

 

Anforderungsbeschreibung: ausschneiden/kopieren....

1.) Wenn in Spalte FahrzeugID Werte enthalten sind die nicht mit W* anfangen und nicht Leer sind.

2.) Wenn in Spalte VCMode Werte enthalten sind mit ROTES*, TANK* und FREMD

3) Datensätze mir FREMD sollen allerdings nur ausgeschnitten/kopiert werden, wenn die Leasingart gleich L9.5 oder L9.6  enthalten. Allerdings auch die L9.3 mit FREMD, die in FahrzeugID kein W* besitzen (z. B. DOPPELT).     

 

Gruß Sino                                    

 

 


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
29.11.2011 09:28:45 Sino
Solved
29.11.2011 10:05:18 Till
NotSolved
29.11.2011 11:04:24 Gast27334
NotSolved
29.11.2011 14:42:38 Sino
NotSolved
29.11.2011 19:23:08 Dekor
NotSolved
29.11.2011 20:31:10 Till
NotSolved
29.11.2011 20:36:47 Till
NotSolved
30.11.2011 08:54:39 Sino
NotSolved
30.11.2011 11:14:15 Till
NotSolved
30.11.2011 11:27:20 Sino
NotSolved
30.11.2011 11:57:22 Till
NotSolved
30.11.2011 13:02:36 Gast71196
NotSolved
30.11.2011 13:11:03 Sino
NotSolved
30.11.2011 18:17:17 Till
NotSolved
Rot Problem innerhalb einer Schleife
01.12.2011 09:18:42 Sino
NotSolved
01.12.2011 15:46:01 Sino
NotSolved
01.12.2011 16:02:20 TIll
NotSolved
01.12.2011 16:31:38 Sino
NotSolved
02.12.2011 09:13:20 Sino
NotSolved
02.12.2011 16:57:31 Till
NotSolved
02.12.2011 17:03:54 Till
NotSolved