Clever-Excel-Forum

Normale Version: Suchen von gleichen Zellen in zwei Tabellen und kopieren von Daten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
nach langem Selbstversuch bin ich auf Hilfe angewiesen.

zu meinem Anliegen:
Ich habe eine Exceldatei mit zwei Tabellen, in Tabelle 1 stehen in Spalte A Namen, in Tabelle 2 in Spalte A stehen Teilweise die gleichen Namen sowie einige Zellen weiter Daten.
Jetzt soll durch ein Makro Tabelle 1 Spalte A mit Tabelle 2 Spalte A verglichen werden.
Wenn der exakt gleiche Name gefunden wurde sollen die Daten welche in Tabelle 2 in gleicher Spalte wie der gefundene gleiche Namen in Tabelle 1 einige Spalten hinter die Namen ohne Formatierung kopiert werden.

Siehe Beispieldatei

Wie schreibe ich das Makro?!?!
Hallo

Dazu benötigt man kein Makro.
Da reicht:
Code:
=WENNFEHLER(SVERWEIS($A1;Rohdaten!$A$1:$L$32;SPALTE();FALSCH);"")
Danke für die schnelle Antwort.
Die Formel ist soweit ganz gut, aber es darf danach nur der Wert drin stehen und keine Formel, sowie die Excel Dateien welche ich zusammenfügen muss sind unterschiedlich lang, ich denke da werde ich nicht ohne Makro auskommen.
Was noch dazu kommt, es dürfen nur die Zellen kopiert werden und nicht die ganze Spalte, sowie ohne Formatierung weil in Tabelle1 die Zellen für die Daten schon eine Bedingte Formatierung haben
Hi,


hast Du die Formel überhaupt schon mal ausprobiert? Ich denke nicht, sonst hättest Du das nicht geschrieben.

(10.01.2015, 13:43)JimmyJoe schrieb: [ -> ]Die Formel ist soweit ganz gut, aber es darf danach nur der Wert drin stehen und keine Formel, sowie die Excel Dateien welche ich zusammenfügen muss sind unterschiedlich lang, ich denke da werde ich nicht ohne Makro auskommen.
Was noch dazu kommt, es dürfen nur die Zellen kopiert werden und nicht die ganze Spalte, sowie ohne Formatierung weil in Tabelle1 die Zellen für die Daten schon eine Bedingte Formatierung haben

Ich gehe davon aus, daß Du das nur ein Mal machen willst:

Du passt den Bereich der Formel an den belegten Bereich der Quell-Tabelle 2 an und kopierst die Formel so weit runter, wie Deine Daten in der Ziel-Tabelle 1 stehen und so weit nach rechts, wie die Daten in Tabelle 2 stehen. Beachte: kopieren und einfügen "Inhalte einfügen, Formeln".

Nun hast Du alles übertragen in Tabelle 1. Und Du hast es mit der Formatierung der Zielzellen.

Nun alles markieren und in die Zwischenablage kopieren und dann mit "Inhalte einfügen, nur Werte" in denselben Bereich, schon hast Du den Inhalt im Format der Zielzellen.
hi, nein die Formel kannte ich nicht, ist aber fürs erste ganz gut.
Möchte aber ein Makro dazu haben, da ich öfters diese Daten sortieren muss, sowie in unterschiedlicher Größe ( teilweise bis 3000 Zeile )
Hi,

(10.01.2015, 14:50)JimmyJoe schrieb: [ -> ]Möchte aber ein Makro dazu haben, da ich öfters diese Daten sortieren muss, sowie in unterschiedlicher Größe ( teilweise bis 3000 Zeile )

sortieren oder zusammenführen?

Dann starte die Makroaufzeichnung und führe den Vorgang einmal manuell aus. Dann postest Du das erhaltene Makro hier und wir verallgemeinern es gemeinsam.
Hallo,
zusammenführen in Tabelle1.

Anbei das Beispiel mit dem Makro.

Der Vergleich soll so lange in Schleife laufen bis in Spalte A keine Daten mehr gefunden werden.
Hallo,

versuchs mal so

Code:
Sub prcKopieren()
   Dim lngC As Long
   Dim rngSuche As Range
  
   With Worksheets("Tabelle1")
      For lngC = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
         Set rngSuche = Worksheets("Rohdaten").Columns(1).Find(.Cells(lngC, 1).Value, LookIn:=xlValues, lookat:=xlWhole)
         If Not rngSuche Is Nothing Then
            rngSuche.Offset(, 6).Resize(, 10).Copy .Cells(lngC, 7)
         End If
      Next lngC
   End With
End Sub
Oha, ganz gut, nur sollten die Werte ohne Format in Tabelle 1 übertragen werden ( keine Farbe usw )
Kannst du mir den Code aufschlüsseln, das ich sehe was wo passiert?
Hallo,

sollte jetzt funktionieren (hoffe die Kommentare reichen)
Code:
Sub prcKopieren()
   Dim lngC As Long
   Dim rngSuche As Range
  
   With Worksheets("Tabelle1")
      'eine Schleife durch die Spalte A der Tabelle1 bis zum Ende
      For lngC = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
         'der Wert aus der Zelle A... wird in der Tabelle Rohdaten gesucht
         Set rngSuche = Worksheets("Rohdaten").Columns(1).Find(.Cells(lngC, 1).Value, LookIn:=xlValues, lookat:=xlWhole)
         'wenn der Wert in der Tabelle Rohdaten gefunden wird
         If Not rngSuche Is Nothing Then
            'wird die Zeile aus der Tabelle Rohdaten kopiert
            rngSuche.Offset(, 6).Resize(, 10).Copy
            'und in der Tabelle1 eingefügt
            .Cells(lngC, 7).PasteSpecial xlValues
         End If
      Next lngC
      Application.CutCopyMode = False
   End With
End Sub
Seiten: 1 2