Anzeige
Archiv - Navigation
1848to1852
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte Prüfen und übertragen

Werte Prüfen und übertragen
22.09.2021 14:48:20
Sarah
Guten Mittag liebe Excel Community.
Ich habe eine sehr lange Liste in dem Tabellenblatt "Import" und brauche nun ein Makro, dass Spalte A und Spalte H durchsucht.
Immer wenn in Spalte A und in Spalte G eine Kombination von Werten vorkommt die es zuvor noch nicht gab, soll dann die Zeile von A-H in das Tabellen Blatt "Ergebnis" übernommen werden.
"
Dim lngRow As Long
Dim c As Range
Dim Suche
Dim Suche1
With Worksheets("Import")
For lngRow = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
Suche = .Cells(lngRow, 1)
Set c = Worksheets("Ergebnis").Range("1:1").Find(Suche, LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then
.Range(.Cells(lngRow, 1), .Cells(lngRow, 8)).Copy
Worksheets("Ergebnis").Cells(1, 1).End(xlToRight).Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
End If
If Not c Is Nothing Then
Suche1 = .Cells(lngRow, 8)
Set i = Worksheets("Ergebnis").Cells(8, c.Column).Find(Suche1, LookIn:=xlValues, LookAt:=xlWhole)
If i Is Nothing Then
.Range(.Cells(lngRow, 1), .Cells(lngRow, 8)).Copy
Worksheets("Ergebnis").Cells(1, 1).End(xlToRight).Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
End If
End If
Next lngRow
End With
"
Ich habe hier ganz kompliziert versucht es selber zu lösen. aber bin leider am Ziel vorbei geschossen und habe nicht wirklich den Zweck damit erfüllt, denn ich haben wollte.
Vielen Dank die Hilfe!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte Prüfen und übertragen
22.09.2021 15:19:47
Rudi
Hallo,
wenn ich das richtig interpretiere:

Sub aaa()
Dim rngC As Range
Application.ScreenUpdating = False
With Tabelle1
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
If WorksheetFunction.CountIfs(Tabelle2.Rows(1), rngC, Tabelle2.Rows(8), rngC.Offset(, 7)) = 0 Then
rngC.Resize(, 8).Copy
Tabelle2.Cells(1, Columns.Count).End(xlToLeft).Offset(, 1).PasteSpecial _
Paste:=xlPasteValues, Transpose:=True
End If
Next rngC
End With
Application.CutCopyMode = False
End Sub
Gruß
Rudi
AW: Werte Prüfen und übertragen
23.09.2021 10:15:07
Sarah
Guten Morgen.
Sorry für die späte Rückmeldung.
Danke für die Hilfe, aber das Makro erfüllt leider nicht ganz den Zweck, denn ich haben wollte.
Ich habe mich gestern wohl in der Eile nicht genau genug ausgedrückt, bzw. nicht genau beschrieben wo das Problem liegt.
Und zwar brauche ich ein Makro dass in der Tabelle "Import" die Werte aus der Spalte A mit den Werten aus dem Tabellenblatt "Ergebnis" in der Zeile 1 vergleicht.
(ich gehe mal davon aus, dass eine Zählschleife hier optimal wäre, die jeden Wert von der Spalte A aus "Import" einmal durch geht)
sollte es keine Übereinstimmung geben, dann soll die 1. bis 8. Zelle aus dem Import Tabellenblatt kopiert werden und in das Ergebnis tabbellenblatt eingefügt werden (hatte das so gemacht):
".Range(.Cells(lngRow, 1), .Cells(lngRow, 8)).Copy
Worksheets("Ergebnis").Cells(1, 1).End(xlToRight).Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True"
sollte es eine Übereinstimmung geben zwischen der spalte A aus dem Import Tabellenblatt und der Zeile 1 aus dem Ergebnis Tabellenblatt,
dann soll die Spalte H der gleichen Zeile aus Import mit der Zeile 8 aus Ergebnis mit der gleichen spalte der Übereinstimmung verglichen werden.
Sollte dies nicht gleich sein, soll wieder Zelle 1-8 nach ergebnis kopiert werden:
".Range(.Cells(lngRow, 1), .Cells(lngRow, 8)).Copy
Worksheets("Ergebnis").Cells(1, 1).End(xlToRight).Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True"
so das also nur die Zeilen übernommen werden, die sich in spalte A und H unterscheiden.
Vielen dank!
Anzeige
AW: Werte Prüfen und übertragen
23.09.2021 10:32:37
Rudi
Hallo,
das macht der Code doch.
Wenn die Kombi aus A & H nicht in Zeile 1 & 8 vorkommt, wird A:H nach 1:8 kopiert. Ansonsten passiert nix.

If WorksheetFunction.CountIfs(Tabelle2.Rows(1), rngC, Tabelle2.Rows(8), rngC.Offset(, 7)) = 0 Then
CountIfs = ZählenwennS()
Gruß
Rudi
AW: Werte Prüfen und übertragen
23.09.2021 13:28:31
Sarah
Ah Tut mir wirklich Leid, ich habe es falsch implementiert.
Das Makro ist ja der Wahnsinn, musste mir erstmal Zeit nehmen zu verstehen wie diese "WorksheetFunction.CountIfs" funktion aufgebaut ist und funktioniert.
Könnten Sie mir nochmal weiterhelfen bei einem anderem Problem?
Ich habe jetzt mit dem Makro gleich nochmal was gebaut:
"With Worksheets("Import")
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
For lngRow = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If WorksheetFunction.CountIfs(Worksheets("Ergebnis").Rows(1), rngC, Worksheets("Ergebnis_ZP").Rows(8), rngC.Offset(, 7)) = 1 Then
For DateRow = 9 To Worksheets("Ergebnis").Cells(.Rows.Count, 1).End(xlUp).Row Step 96
If CDate(.Cells(lngRow, 9).Value) = Worksheets("Ergebnis").Cells(DateRow, 1).Value Then
Range(.Cells(lngRow, 11), .Cells(lngRow, 106)).Copy
Worksheets("Ergebnis").Cells(DateRow, "xxx").PasteSpecial Paste:=xlPasteValues, Transpose:=True
End If
Next DateRow
End If
Next lngRow
Next rngC
End With"
wie definiere ich beim "xxx" die spalte von rngC, die eine übereinstimmung im tabellenblatt ergebnis gefunden hat?
Vielen Dank!
Anzeige
AW: Werte Prüfen und übertragen
23.09.2021 13:58:10
Rudi

If WorksheetFunction.CountIfs(Worksheets("Ergebnis").Rows(1), rngC, Worksheets("Ergebnis_ZP").Rows(8), rngC.Offset(, 7)) = 1 Then
du kannst Zählenwenns() nicht auf verschiedene Blätter anwenden.
geht doch!
23.09.2021 14:10:08
Rudi
zur Frage:
Worksheets("Ergebnis").Cells(DateRow, application.Match(rngC, sheets("ergebnis").rows(1),0)).PasteSpecial Paste:=xlPasteValues, Transpose:=True
AW: geht doch!
23.09.2021 16:11:59
Sarah
"application.Match(rngC, sheets("ergebnis").rows(1),0)" beinhaltet aber leider nicht die 8. zeile.
Ich brauche sowohl eine Prüfung für (1) und (8)
wie oben in der if funktion:
"WorksheetFunction.CountIfs(Worksheets("Ergebnis").Rows(1), rngC, Worksheets("Ergebnis_ZP").Rows(8), rngC.Offset(, 7)"
Vielen dank!
Anzeige
AW: geht doch!
23.09.2021 18:40:12
Rudi
probier mal

Worksheets("Ergebnis").Cells(DateRow, application.Match(rngC & rngC.OffSet(,7), sheets("ergebnis").rows(1) & sheets("ergebnis").rows(8),0)).PasteSpecial Paste:=xlPasteValues, Transpose:=True

AW: geht doch!
24.09.2021 10:24:26
Sarah
klappt leider nicht
Beispielmappe? owT
24.09.2021 10:39:04
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige