Office: Mehrere IF Abfragen verknüpfen, Zähler?

Helfe beim Thema Mehrere IF Abfragen verknüpfen, Zähler? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe eine Tabelle in der ich aus Spalte B gewisse Daten in Spalte D kopieren möchte. Um zu prüfen welche Daten kopiert werden müssen muss... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Marius82, 10. Juli 2012.

  1. Marius82 Erfahrener User

    Mehrere IF Abfragen verknüpfen, Zähler?


    Hallo,

    ich habe eine Tabelle in der ich aus Spalte B gewisse Daten in Spalte D kopieren möchte.
    Um zu prüfen welche Daten kopiert werden müssen muss ich mehrere IF Abfragen verknüpfen, die sich eigentlich immer wiederholen. Mein erstellter CODE funktioniert soweit auch, nur ist er glaub ziemlich umständlich programmiert. Siehe:

    Code:
    Sub Makro4()
    Dim lng As Long
    Dim Zeile As Long
    Columns("A:E").EntireColumn.AutoFit
    lng = Cells(1000000, 1).End(xlUp).Row
    For Zeile = 2 To lng Step 1
        If Mid(Cells(Zeile - 1, 2), 8, 1) = "0" Then
            If Mid(Cells(Zeile, 2), 8, 1) <> "0" Then
            Aptext1 = Mid(Cells(Zeile, 2), 9, 255)
                If Mid(Cells(Zeile + 1, 2), 8, 1) <> "0" Then
                APtext2 = Mid(Cells(Zeile + 1, 2), 9, 255)
                    If Mid(Cells(Zeile + 2, 2), 8, 1) <> "0" Then
                    Aptext3 = Mid(Cells(Zeile + 2, 2), 9, 255)
                        If Mid(Cells(Zeile + 3, 2), 8, 1) <> "0" Then
                        APtext4 = Mid(Cells(Zeile + 3, 2), 9, 255)
                            If Mid(Cells(Zeile + 4, 2), 8, 1) <> "0" Then
                            APtext5 = Mid(Cells(Zeile + 4, 2), 9, 255)
                                If Mid(Cells(Zeile + 5, 2), 8, 1) <> "0" Then
                                APtext6 = Mid(Cells(Zeile + 5, 2), 9, 255)
                                    If Mid(Cells(Zeile + 6, 2), 8, 1) <> "0" Then
                                    APtext7 = Mid(Cells(Zeile + 6, 2), 9, 255)
                                        If Mid(Cells(Zeile + 7, 2), 8, 1) <> "0" Then
                                        APtext8 = Mid(Cells(Zeile + 7, 2), 9, 255)
                                            If Mid(Cells(Zeile + 8, 2), 8, 1) <> "0" Then
                                            APtext9 = Mid(Cells(Zeile + 8, 2), 9, 255)
                                            Cells(Zeile - 1, 4) = Aptext1 & APtext2 & Aptext3 & APtext4 & APtext5 & APtext6 & APtext7 & APtext8 & APtext9
                                            Else
                                            Cells(Zeile - 1, 4) = Aptext1 & APtext2 & Aptext3 & APtext4 & APtext5 & APtext6 & APtext7 & APtext8
                                            End If
                                        Else
                                        Cells(Zeile - 1, 4) = Aptext1 & APtext2 & Aptext3 & APtext4 & APtext5 & APtext6 & APtext7
                                        End If
                                    Else
                                    Cells(Zeile - 1, 4) = Aptext1 & APtext2 & Aptext3 & APtext4 & APtext5 & APtext6
                                    End If
                                Else
                                Cells(Zeile - 1, 4) = Aptext1 & APtext2 & Aptext3 & APtext4 & APtext5
                                End If
                            Else
                            Cells(Zeile - 1, 4) = Aptext1 & APtext2 & Aptext3 & APtext4
                            End If
                        Else
                        Cells(Zeile - 1, 4) = Aptext1 & APtext2 & Aptext3
                        End If
                    Else
                    Cells(Zeile - 1, 4) = Aptext1 & APtext2
                    End If
                Else
                Cells(Zeile - 1, 4) = Aptext1
                End If
            Else
            
            End If
        End If
    Next
    End Sub
    
    Meine Frage: Kann ich diese "verschachtelten" IF Abfragen leichter gestalten? Ich hab da vielleicht an einen Zähler oder änliches gedacht...

    Zum testen bzw um zu verstehen was ich meine habe ich die Datei angehangen.

    Ich benutze Excel 2010
     
    Marius82, 10. Juli 2012
    #1
  2. fette Elfe Erfahrener User
    Hallo Marius,

    wenn ich Dein Makro richtig verstanden habe, möchtest Du den Text aus dem Salat herausfiltern und zusammensetzen. Und zwar jeweils immer aus den Zeilen zwischen den langen Nummern.

    Falls richtig würde ich sowas in der Art vorschlagen:
    Code:
    Option Explicit
    
    Dim loLastRow As Long
    Dim loRow As Long
    Dim loCounter As Long
    
    Dim strText As String
    
    
    Public Sub DatenSalatEntwirren()
    
        With ThisWorkbook.Worksheets("Ort File")
        
            loLastRow = IIf(IsEmpty(.Cells(.Rows.Count, 2)), .Cells(.Rows.Count, 2).End(xlUp).Row, .Rows.Count)
            
            For loRow = loLastRow To 1 Step -1
                strText = ""
                If Right(.Cells(loRow, 2), 4) = "N000" Then
                    For loCounter = loRow + 1 To loLastRow
                        strText = strText & " " & Right(.Cells(loCounter, 2), Len(.Cells(loCounter, 2)) - 8)
                    Next loCounter
                    .Cells(loRow, 4) = strText
                    loLastRow = loRow - 1
                End If
            Next loRow
        End With
    End Sub

    Ich hoffe geholfen zu haben.
     
    fette Elfe, 10. Juli 2012
    #2
  3. Kallewirsch Erfahrener User
    Hallo,

    oder auch so:

    Code:
    Sub Text_sammeln()
    Dim loLetzte As Long
    Dim Zeile As Long
    Dim Zeile2 As Long
    Dim Zeile3 As Long
    Dim loEnde As Long
    Dim strTxt As String
    
    Columns("A:E").EntireColumn.AutoFit
    
    loLetzte = Cells(Rows.Count, 2).End(xlUp).Row + 1
    For Zeile = 1 To loLetzte
        If Right(Cells(Zeile, 2), 4) = "N000" Then
            For Zeile2 = Zeile + 1 To loLetzte
                If Right(Cells(Zeile2, 2), 4) = "N000" Or Zeile2 = loLetzte Then
                    loEnde = Zeile2
                    Exit For
                End If
            Next
            For Zeile3 = Zeile + 1 To loEnde - 1
                strTxt = strTxt & " " & Mid(Cells(Zeile3, 2), 9, 255)
            Next
        Cells(Zeile, 4) = strTxt
        strTxt = ""
        End If
    Next
    End Sub
    
    
     
    Zuletzt bearbeitet: 11. Juli 2012
    Kallewirsch, 11. Juli 2012
    #3
  4. Marius82 Erfahrener User

    Mehrere IF Abfragen verknüpfen, Zähler?

    Vielen Dank euch Zwei!

    Ich habe aber nochmal eine Frage zu dem Code von der fetten Elfe:

    Code:
    strText = strText & " " & Right(.Cells(loCounter, 2), Len(.Cells(loCounter, 2)) - 8)
    Die Texte werden verkettet, aber ich verstehe ben Befehl "Len" nicht. Sehe ich das richtig das von rechts in der Zelle alle Zeichen zurück gegeben werden bis zur 8 Stelle der Zelle? Oder liege ich jetzt ganz daneben?

    DANKE!!!
     
    Marius82, 11. Juli 2012
    #4
  5. Exl121150 Erfahrener User
    Hallo!

    Vorgenannte Right- bzw. Len-Funktion hat den gleichen Effekt wie die entsprechenden RECHTS- bzw. LÄNGE-Funktionen im Arbeitsblatt:
    ABC
    1
    2
    3
    4 123456789012345
    5
    6 9012345
    7
    ZelleFormel
    B6=RECHTS(B4;LÄNGE(B4)-8)
    Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
    d.h. es werden in der Zelle "Bereich.Cells(loCounter,2)" die linken 8 Zeichen ignoriert und der Rest der Zeichenkette (also ab dem 9. Zeichen) herangezogen in der Formel.
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
    Exl121150, 11. Juli 2012
    #5
  6. Marius82 Erfahrener User
    Alles klar, vielen Dank!!!
     
    Marius82, 11. Juli 2012
    #6
Thema:

Mehrere IF Abfragen verknüpfen, Zähler?

Die Seite wird geladen...
  1. Mehrere IF Abfragen verknüpfen, Zähler? - Similar Threads - Abfragen verknüpfen Zähler

  2. Abfrage: Anzahl von Kriterium >0

    in Microsoft Access Hilfe
    Abfrage: Anzahl von Kriterium >0: Hallo, [ATTACH] Ich versuche gerade, die Anzahl der belegten Plätze auf einem LKW per Abfrage zu ermitteln. Dabei wäre dann FSPal > 0. Leider zeigt er mir die Anzahl der Plätze an. [ATTACH]...
  3. Erstellen von Abfragen mit äußeren Verknüpfungen

    in Microsoft Access Tutorials
    Erstellen von Abfragen mit äußeren Verknüpfungen: https://wus-streaming-video-rt-microsoft-com.akamaized.net/82633f34-95fc-4d5b-89be-b111fb445f08/a9a5aabd-7e95-437c-aff9-9c19f2a5_1280x720_1590.mp4 Probieren Sie es aus! Manchmal...
  4. Verknüpfung Excel mit Access-Abfrage

    in Microsoft Access Hilfe
    Verknüpfung Excel mit Access-Abfrage: Hallo zusammen, ich habe da ein Problem mit Access. Ich habe in Access eine Auswahlabfrage, die mir einen bestimmten Wert liefert z.B. 250.000 EUR. Verknüpfe ich aber Excel mit dieser Abfrage,...
  5. Verknüpfen von Tabellen und Abfragen

    in Microsoft Access Tutorials
    Verknüpfen von Tabellen und Abfragen: Verknüpfen von Tabellen und Abfragen Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr......
  6. WENN mit zwei weiteren WENN Abfragen verknüpfen

    in Microsoft Excel Hilfe
    WENN mit zwei weiteren WENN Abfragen verknüpfen: Hallo zusammen, mein erster Beitrag hier und ich freue mich auf eure Rückmeldung. Das Problem beschreibe ich euch mal hier wie in EXCEL [Prüfung; Dann Wert; Sonst Wert]: Prüfung: Wenn in G7...
  7. Datenbanken verknüpfen und Abfrage erstellen

    in Microsoft Access Hilfe
    Datenbanken verknüpfen und Abfrage erstellen: Ich möchte meine Sachbücher inhaltlich nach Stichwörtern verwalten. In einer Datenbank sind die Buchtitel enthalten. In einer weiteren Datenbank sind die entsprechenden Stichwörter enthalten, die...
  8. Verknüpfung eines Formulars mit einer Abfrage

    in Microsoft Access Hilfe
    Verknüpfung eines Formulars mit einer Abfrage: Hallo! Folgendes: Ich habe eine Tabelle mit meinen Datensätzen. Zu dieser Tabelle habe ich eine Abfrage erstellt. Zu der Tabelle habe ich auch ein Formular erstellt. In dem Formular möchte...
  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