Clever-Excel-Forum

Normale Version: Excel Skript zum Vergleichen zweier Mappen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich habe folgendes Anliegen:

Ich möchte gerne zwei Mappen mit Namen vergleichen und in Mappe 2 die Namen markieren, welche in Mappe 1 aufgelistet sind.

Beispiel:

Mappe 1 Spalte A1-A5 stehen 5 verschiedene Namen.
Mappe 2 Spalte A1-A50 stehen 50 verschiedene Namen.

Das Skript soll in Mappe 2 die in Mappe 1 stehenden 5 Namen markieren.
Mit einem Namen klappt das soweit gut, nur unterschiedliche bin ich zu dämlich.

Danke im Voraus :)
moin,

dann zeig doch schon mal dein Skript welches bei einem Namen funktioniert

mfg Tom
Und wie lautet die Frage?
Hallo

ich glaube nicht das der Frager einen fertigen Code hat. Mit dem kann er sich seinen eigenen Code zusammenbasteln.
Geändert werden müssen ggf. die Mappen Namen, Tabellen Namen und der Farbcode. Dann sollte das Makro laufen.

mfg Gast 123

Code:
Sub Namen_vergleichen()
Dim AC As Range, AJ As Range
Dim Sht1 As Worksheet  'in Mappe1
Set Sht1 = Workbooks("Mappe1").Sheets("Tabelle1")
With ThisWorkbook.Sheets("Tabelle1")   'Mappe2
     .Range("A1:A50").Interior:ColorIndex = xlNone  
     Farbe = 22  'Innenfarbe festlegen
     For Each AC In Sht1.Range("A1:A5")
     For Each AJ In .Range("A1:A50")
         If AC.Value = AJ.Value Then
            AC.Interior.ColorIndex = Farbe
            Exit For
         End If
     Next AJ
     Next AC
End With
End Sub
Danke erstmal allen.

Mein Skript sieht bisher so aus:

Code:
Sub MarkiereNamen()
    Dim QuellBereich As Range
    Dim ZielBereich As Range
    Dim Zelle As Range
   
   
    Set QuellBereich = Worksheets("Mappe1").Range("A1:A5")
 
    Set ZielBereich = Worksheets("Mappe2").Range("A1:A100")
   
    For Each Zelle In QuellBereich
     
        If Zelle.Value = "GesuchterName" Then
           
            ZielBereich.Cells(Zelle.Row, 1).Interior.Color = RGB(255, 0, 0)
        End If
    Next Zelle
End Sub


Nur klappt das eben nur mit dem einen spezifischen Namen und nicht mit unterschiedlichen.
ich würde es so lösen

zu starten aus deinem Worksheet("Mappe1")

Code:
Sub MarkiereNamen()
    Dim i As Integer
    Dim strName As String
    Dim c As Range
    For i = 1 To 5
        strName = Cells(i, 1).Value
        With Worksheets("Mappe2")
            Set c = .Columns(1).Find(strName, LookIn:=xlValues, lookat:=xlWhole)
            If Not c Is Nothing Then
                .Cells(c.Row, 1).Interior.Color = RGB(255, 0, 0)
            End If
        End With
    Next
End Sub

heißen deine Worksheets tatsächlich Mappe1 & Mappe2?

mfg Tom
Hallo P4tt3x,

Zitat:Ich möchte gerne zwei Mappen mit Namen vergleichen und in Mappe 2 die Namen markieren, welche in Mappe 1 aufgelistet sind.
Das geht auch ganz ohne VBA, mit der bedingten Formatierung.

Arbeitsblatt mit dem Namen 'Tabelle1'
ABC
1Mappe 1Mappe 2
2Name 1Name 5
3Name 2Name 8
4Name 3Name 2
5Name 1
6Name 4
7Name 9
8Name 3
9Name 7
10Name 10
11Name 6
Verwendete Systemkomponenten: [Windows (64-bit) NT 10.00] / MS Excel 2021
Diese Tabelle wurde mit Tab2Html (v2.7.1) erstellt. ©Gerd alias Bamberg

Formel für bedingte Formatierung für den Datenbereich in "Mappe2":
=ZÄHLENWENN($A$2:$A$4;C2)
[attachment=50379]

Das funktioniert natürlich auch, wenn die Daten auf unterschiedlichen Tabellenblättern stehen.
(Wenn sich die Daten allerdings in unterschiedlichen Arbeitsmappen befinden, wohl eher nicht)

Gruß
Fred