Office: (Office 2016) VBA wenn Spalte Grün überspringen

Helfe beim Thema VBA wenn Spalte Grün überspringen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, ich hoffe es kann mir noch mal Jemand helfen :-) ich habe diesen Code in meiner Liste eingetragen, funktioniert auch soweit alles... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Strolch, 21. April 2020.

  1. Strolch Erfahrener User

    VBA wenn Spalte Grün überspringen


    Hallo Zusammen,

    ich hoffe es kann mir noch mal Jemand helfen :-)

    ich habe diesen Code in meiner Liste eingetragen, funktioniert auch soweit alles super.

    Code:
    Sub SVERWEIS_aus_Shoppingcart_aus_EVO()
    Debug.Print Now
    
    Dim i As Long, letzteZeile As Long
    Dim Arbeitsmappe As Workbook
    Dim Datenbasis As Worksheet
    Dim Ziel As Worksheet
    Dim Bereich As Range
    Dim ZelleFirma As Range
    Dim WsF As WorksheetFunction
    
    Set Arbeitsmappe = ThisWorkbook
    Set Datenbasis = Arbeitsmappe.Worksheets("Shoppingcart_aus_EVO")
    Set Ziel = Arbeitsmappe.Worksheets("Arbeitsliste")
    
    letzteZeile = Datenbasis.Range("K" & Rows.Count).End(xlUp).Row
    
    Set Bereich = Datenbasis.Range("A1:W" & letzteZeile)
    Set WsF = Application.WorksheetFunction
    
    For i = 2 To Ziel.Range("K" & Rows.Count).End(xlUp).Row
        On Error Resume Next
        Ziel.Range("F" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 2, False)
         Ziel.Range("C" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 23, False)
         Ziel.Range("J" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 10, False)
         Ziel.Range("L" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 5, False)
         Ziel.Range("O" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 20, False)
         Ziel.Range("N" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 4, False)
        Ziel.Range("G" & i).Value = "DG"
        
    Next i
    
    Debug.Print Now
    End Sub
    Nun möchte ich aber das er wenn die Spalte F Grün gefärbt ist, das er die ganze Zeile dann einfach überspringt, da sich dann an den Daten nichts mehr verändern wird. Ist das machbar?

    Vielen Dank und viele Grüße
     
    Zuletzt bearbeitet: 21. April 2020
    Strolch, 21. April 2020
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    wie wird die Zellfärbung ausgelöst - durch bedingte Formatierung oder direkte Zellfärbung?

    Bis später,
    Karin
     
    Beverly, 21. April 2020
    #2
  3. Strolch Erfahrener User
    durch bedingte Formatierung :-)
     
    Strolch, 21. April 2020
    #3
  4. Beverly
    Beverly Erfahrener User

    VBA wenn Spalte Grün überspringen

    Nach diesem Prinzip (ungetestet da Mappe nicht vorliegt):

    Code:
    For i = 2 To Ziel.Range("K" & Rows.Count).End(xlUp).Row
    '    On Error Resume Next
        If Ziel.Range("F" & i).DisplayFormat.Interior.Color <> 1 Then '<== anstelle 1 die Colorfarbe setzen die als erfällte Bedingung gilt
            Ziel.Range("F" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 2, False)
            Ziel.Range("C" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 23, False)
            Ziel.Range("J" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 10, False)
            Ziel.Range("L" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 5, False)
            Ziel.Range("O" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 20, False)
            Ziel.Range("N" & i).Value = WsF.VLookup(Ziel.Range("K" & i).Value, Bereich, 4, False)
            Ziel.Range("G" & i).Value = "DG"
        End If
    Next i
    
    
    Bis später,
    Karin
     
    Beverly, 21. April 2020
    #4
  5. Strolch Erfahrener User
    erst mal tausend Dank, irgendwie geht es nicht :-( ich hänge die Datei mal mit an :-)
     
    Strolch, 21. April 2020
    #5
  6. Beverly
    Beverly Erfahrener User
    Und wo ist die Mappe?

    Bis später,
    Karin
     
    Beverly, 21. April 2020
    #6
  7. Strolch Erfahrener User
    oh nein er hat sie nicht mit angehangen :-( Es sind natürlich nur ein par Testdaten drin, normal sind es mehr Datensätze :-)
     
    Strolch, 22. April 2020
    #7
  8. Beverly
    Beverly Erfahrener User

    VBA wenn Spalte Grün überspringen

    Du hast geschrieben, dass dein Ursprungscode funktioniert, nur dass du ihn modifiziert haben möchtest. Aber - er macht schon erst einmal gar nichts in deiner hochgeladenen Mappe, weil keiner der Werte aus Spalte K der Datenbasis in der Zieltabelle gefunden wird. Außerdem hat Spalte F keine erfüllte Bedingung mit der Farbe Grün, die die Basis für meinen Code bildet.
    Dass mein Code nicht wirkt liegt also nicht am Code selbst sondern daran, dass er in deiner Mappe nichts bewirken kann.

    Übrigens: wenn du eine Mappe für eine VBA-Lösung hochlädst, sollte es schon auch eine Mappe mit deinem Code sein und keine xlsx-Datei...

    Bis später,
    Karin
     
    Beverly, 22. April 2020
    #8
  9. Strolch Erfahrener User
    Guten Morgen,

    du hast Recht durch das kürzen der Daten hatte ich nicht darauf geachtet, daher habe ich nun mal welche angepasst, wo es erkennbar ist das der Code schon arbeitet, aber leider auch weiterhin die bearbeitet die Grün gefärbt sind :-(

    Viele Grüße
     
    Zuletzt von einem Moderator bearbeitet: 30. November 2020
    Strolch, 22. April 2020
    #9
  10. Beverly
    Beverly Erfahrener User
    Hi,

    ich sehe den angepassten Code nicht - die Anmerkung in meinem letzten Beitrag hast du anscheinend nicht gelesen?!

    Entsprechend deinen vorhandenen Daten sind Zeile 2 und Zeile 3 in deiner Auftragsliste zu bearbeiten, da nur diese beiden Nummern in beiden Tabellen vorhanden sind. Lösche einfach mal die Inhalte der Spalte C in deiner Auftragsliste - dann wirst du sehen, dass nur Zeile 3 einen neuen Eintrag erhält, da Zeile 2 die Bedingung Grün erfüllt und somit übersprungen wird.

    Übrigens kann man deinen Code wesentlich einfacher ohne das Konstrukt deiner WorksheetFunction.VLookUp schreiben, da es in VBA die Find-Methode gibt, mit der man Zellinhalte suchen und dann die gefundene Zelle als Ausgang für weitere Zellen nehmen kann:

    Code:
    Sub SVERWEIS_aus_Shoppingcart_aus_EVOFind()
        Debug.Print Now
        Dim i As Long, letzteZeile As Long
        Dim Datenbasis As Worksheet
        Dim Ziel As Worksheet
        Dim Bereich As Range
        Dim rngSuche As Range
        Set Datenbasis = ThisWorkbook.Worksheets("Shoppingcart_aus_EVO")
        Set Ziel = ThisWorkbook.Worksheets("Arbeitsliste")
        letzteZeile = Datenbasis.Range("K" & Rows.Count).End(xlUp).Row
        Set Bereich = Datenbasis.Range("A1:W" & letzteZeile)
        For i = 2 To Ziel.Range("K" & Rows.Count).End(xlUp).Row
            If Ziel.Range("F" & i).DisplayFormat.Interior.Color <> 11854022 Then
                Set rngSuche = Bereich.Columns(1).Find(Ziel.Range("K" & i).Value)
                If Not rngSuche Is Nothing Then
                    Ziel.Range("F" & i).Value = rngSuche.Offset(0, 1)
                    Ziel.Range("C" & i).Value = rngSuche.Offset(0, 22)
                    Ziel.Range("J" & i).Value = rngSuche.Offset(0, 9)
                    Ziel.Range("L" & i).Value = rngSuche.Offset(0, 4)
                    Ziel.Range("O" & i).Value = rngSuche.Offset(0, 19)
                    Ziel.Range("N" & i).Value = rngSuche.Offset(0, 3)
                    Ziel.Range("G" & i).Value = "DG"
                End If
            End If
        Next i
        Debug.Print Now
    End Sub
    
    

    Bis später,
    Karin
     
    Beverly, 22. April 2020
    #10
  11. Strolch Erfahrener User
    Vielen Dank für deine Geduld und das anpassen meines Code nun geht es :-) DANKE :-)
     
    Strolch, 22. April 2020
    #11
Thema:

VBA wenn Spalte Grün überspringen

Die Seite wird geladen...
  1. VBA wenn Spalte Grün überspringen - Similar Threads - VBA Spalte Grün

  2. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  3. Excel VBA Spalten mit Ordnerinhalt vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Spalten mit Ordnerinhalt vergleichen: Hallo, Bin ehr Excel VBA Neuling, Würde aber gerne in einer bestehender Tabelle die Auflistung der Ordner mit dem eigentlichen Stand in den besagten Ordner kontrollieren. Also in der Spalte Q10...
  4. VBA - letzte nicht-leere Spalte

    in Microsoft Excel Hilfe
    VBA - letzte nicht-leere Spalte: Moin, liebe VBA-Spezis, mit Cells(99, Columns.Count).End(xlToLeft).Column bestimme ich die Spaltenzahl der letzten benutzten Zelle in Zeile 99. Soweit, so klar. Nun habe ich aber Formeln in...
  5. Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.)

    in Microsoft Excel Hilfe
    Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.): Hallo, ich benötige Hilfe für ein Problem, welches ich leider selbst schwerlich als Anfänger nicht lösen kann: Ich möchte von dem Tabellenblatt "Tabelle1" aus den Zellen B8:B14, K8:K14, B18:B25,...
  6. VBA - Wenn Eintrag in Spalte vorhanden dann aktualisieren, sonst neue Zeile

    in Microsoft Excel Hilfe
    VBA - Wenn Eintrag in Spalte vorhanden dann aktualisieren, sonst neue Zeile: Hallo an Alle, ich habe ein Problem und finde keine Lösung in den Foren. Ich hoffe, dass mir jemand hier helfen kann. Ich habe in einer Datei zwei Blätter - eins "TC_Template" ist optisch wie...
  7. Filter: Spalten statt Zeilen

    in Microsoft Excel Hilfe
    Filter: Spalten statt Zeilen: Hallo zusammen, die Filterfunktion ist mir bekannt. Ich habe in der Überschrift die Möglichkeit nach Kriterien zu filtern. Soweit OK. Es geht um den Tarifdschungel der schweizer Bundenbahn...
  8. einzelne Spalten in neue Dateien kopieren

    in Microsoft Excel Hilfe
    einzelne Spalten in neue Dateien kopieren: Hallo zusammen, ich brauche ein wenig Hilfestellung: Ich habe eine Tabelle (exemplarisch) Titel A Titel B Spalte A Spalte B...
  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