Microsoft Excel

Herbers Excel/VBA-Archiv

Werte suchen gefunden in spalte C x einfügen


Betrifft: Werte suchen gefunden in spalte C x einfügen
von: Peter
Geschrieben am: 02.12.2018 09:22:08

Guten Morgen ihr Excelspezialisten,

ich suche folgende Lösung.

In Tabelle1 stehen in Spalte A Werte. In der Tabelle2 stehen ebenfalls in Spalte A Werte.

Es sollen alle Werte aus Tabelle2 in Tabelle1 gesucht werden und wenn der Wert in Tabelle1 gefunden wird, soll in Spalte C ein "x" eingefügt werden.

Könnt ihr mir bitte bei der Lösung behilflich sein. Bitte per VBA nicht mit Formel.

Besten Dank für eure Hilfe.

Gruss
Peter

  

Betrifft: AW: Werte suchen gefunden in spalte C x einfügen
von: Sepp
Geschrieben am: 02.12.2018 09:31:03

Hallo Peter,

Sub compareAndMark()
Dim varA As Variant, varB As Variant, varRet() As Variant
Dim lngIndex As Long

With Sheets("Tabelle2")
  varA = .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
End With

With Sheets("Tabelle1")
  varB = .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
  Redim varRet(1 To Ubound(varB), 1 To 1)
  For lngIndex = 1 To Ubound(varA, 1)
    If IsNumeric(Application.Match(varA(lngIndex, 1), varB, 0)) Then
      varRet(lngIndex, 1) = "x"
    End If
  Next
  .Range("C2").Resize(Ubound(varB, 1), 1) = varRet
End With

End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: Werte suchen gefunden in spalte C x einfügen
von: Peter
Geschrieben am: 02.12.2018 09:37:13

Hallo Sepp,

vielen Dank für Deine Hilfe. Funktioniert aber leider nicht. Eine solche Lösung habe ich auch bereits im Archiv gefunden. Das Problem ist, dass die beiden gesuchten Werte der Tabelle2 stehen in A2 und A3 die gesuchten Werte aber in Tabelle1 in Zellen A7 und A8.

Kannst Du Dir die Sache bitte nochmals ansehen. Besten Dank

Gruss
Peter


  

Betrifft: AW: Werte suchen gefunden in spalte C x einfügen
von: Sepp
Geschrieben am: 02.12.2018 09:46:35

Hallo Peter,

"Kannst Du Dir die Sache bitte nochmals ansehen."

Lade deine Datei hoch in der es nicht funktioniert!


 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: AW: Sache erledigt
von: Peter
Geschrieben am: 02.12.2018 09:48:43

Hallo Sepp,

besten Dank für Deine Hilfe.

Die Lösung von Franz passt einwandfrei.

Wünsche Dir noch einen schönen Sonntag.

Gruss
Peter


  

Betrifft: Such doch einmal in der RECHERCHE-owT
von: robert
Geschrieben am: 02.12.2018 09:31:32

Spalten vergleichen-oder Tabellenvergleich- oder ähnliches

Sei nicht so bequem und lass dich immer bedienen-unternimm mal etwas!

Gruß
robert


  

Betrifft: AW: Such doch einmal in der RECHERCHE-owT
von: Peter
Geschrieben am: 02.12.2018 09:34:40

Hallo Robert,

auf Deinen Kommentar bin ich nicht scharf.

Ich suche seit zwei Stunden und finde keine Lösung.

Gruss
Peter


  

Betrifft: ...dann kannst Du nicht mal suchen!!!!!
von: robert
Geschrieben am: 02.12.2018 10:27:11




  

Betrifft: AW: Werte suchen gefunden in spalte C x einfügen
von: fcs
Geschrieben am: 02.12.2018 09:38:46

Hallo Peter,

Sub Suche_Werte_aus_Tab2_in_Tab1()
    Dim Zeile As Long
    Dim varWert As Variant
    Dim rngFound As Range
    Dim wks_1 As Worksheet, wks_2 As Worksheet
    
    Set wks_1 = ActiveWorkbook.Worksheets("Tabelle1")
    Set wks_2 = ActiveWorkbook.Worksheets("Tabelle2")
    
    With wks_2
        For Zeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
            If .Cells(Zeile, 1).Text <> "" Then
                varWert = .Cells(Zeile, 1).Value
                Set rngFound = wks_1.Range("A:A").Find(what:=varWert, LookIn:=xlValues, lookat:= _
xlWhole)
                If rngFound Is Nothing Then
                    .Cells(Zeile, 3).ClearContents
                Else
                    .Cells(Zeile, 3).Value = "x"
                End If
            End If
        Next
    End With
    
End Sub
LG from China

Franz


  

Betrifft: AW: Sache erledigt
von: Peter
Geschrieben am: 02.12.2018 09:44:47

Hallo Franz,

besten Dank für Deine Hilfe.

Es sind zwar kleine Fehler enthalten - diese habe ich aber wie folgt korrigieret:

Sub Suche_Werte_aus_Tab2_in_Tab1_02()
    Dim Zeile As Long
    Dim varWert As Variant
    Dim rngFound As Range
    Dim wks_1 As Worksheet, wks_2 As Worksheet
    
    Set wks_1 = ActiveWorkbook.Worksheets("Tabelle1")
    Set wks_2 = ActiveWorkbook.Worksheets("Tabelle2")
    
'    With wks_2
    With wks_1
        For Zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
            If .Cells(Zeile, 1).Text <> "" Then
                varWert = .Cells(Zeile, 1).Value
                Set rngFound = wks_2.Range("A:A").Find(what:=varWert, LookIn:=xlValues, lookat:= _
 _
xlWhole)
                If rngFound Is Nothing Then
                    .Cells(Zeile, 3).ClearContents
                Else
                    .Cells(Zeile, 3).Value = "x"
                End If
            End If
        Next
    End With
    
End Sub
Mit diesen kleinen Änderungen funktioniert es einwandfrei.

Wünsche noch einen schönen Sonntag.

Gruss
Peter