VBA Script zum vergleichen meherer Spalten in einer zeile über ein Worksheet

Deficiency

Grünschnabel
Hallo Leute!

Ich hab mal probiert ein VBA-Script zu schreiben, hab gedacht wenn ich Java, C++ kann, wird das ja nicht so schwer sein aber ich bekomm es nicht hin!

Ich hab folgendes Problem.

Ich hab Spalten A,B,C,D
Ich muss jetzt überprüfen ob es mehrer einträge (Strings) im Worksheet gibt für die Spalte C. Wenn ich eine Spalte C doppelt finde muss ich überprüfen ob in der gefunden Zeile in Spalte D "TC" drinnen steht wenn ja muss ich den Text aus der Spalte A der gefundenen Zeile in die Spalte B der Such zeile schreiben.

Ich hab es versucht mit zwei innerander laufenden For Each schleifen aber irgendwie geht da nix vorwärts. Ich weiß nicht wie ich innerhalb einer Zeile navigieren soll?

Dass ist das was ich bisher geschafft habe, weiß nicht ob ihr damit was anfangen könnt:

Code:
Sub doYourWork()
    Dim rng As Range, rngCell As Range
    Dim rng2 As Range, rngCell2 As Range
    Dim iRow As Integer
    Dim counterForSearch As Integer
     Dim counterForFind As Integer
    Set rng = Range("C1")
    Set rng2 = Range("C1")
   
    For Each rngCell In rng.Cells
    
    For Each rngCell2 In rng.Cells
    
        If rngCell.Value = rngCell2.Value Then
            If (Range("D" + counterForSearch ).Value = "TC") Then
                Range("B" + iRow).Text = Range("A" + counterForFind )
                               
            End If
        End If
        
  
        counterForFind = counterForFind + 1
        Next rngCell2
        counterForSearch = counterForSearch + 1
    Next rngCell
End Sub
 
Zuletzt bearbeitet:
Habe eine Lösung falls jemand sowas ähnliches braucht

Code:
Sub doYourWork()
    Dim rng As Range, rngCell As Range
    Dim rng2 As Range, rngCell2 As Range
    Dim iRow As Long
    Dim counterForSearch As Long
     Dim counterForFind As Long
    Set rng = Range("I:I")
    Set rng2 = Range("I:I")
    counterForFind = 1
    counterForSearch = 1
    
    
   
    For Each rngCell In rng.Cells
    If (Worksheets("Tabelle1").UsedRange.Rows.Count < counterForSearch) Then
    
        Exit For
    End If
       
    For Each rngCell2 In rng2.Cells
    
        If (Worksheets("Tabelle1").UsedRange.Rows.Count < counterForFind) Then
            counterForFind = 1
            Exit For
        End If
           
    
        If rngCell.Value = rngCell2.Value Then
            If (Excel.Cells(counterForFind, 12).Value = "TC") Then
                Excel.Cells(counterForSearch, 4).Value = Excel.Cells(counterForFind, 2).Value
                                               
            End If
        End If
        
  
        counterForFind = counterForFind + 1
        Next rngCell2
        counterForSearch = counterForSearch + 1
    Next rngCell
End Sub
 

Neue Beiträge

Zurück