Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
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

Abgleich von Daten und dann kopieren

Abgleich von Daten und dann kopieren
03.01.2018 17:07:47
Daten
Hallo Liebes Forum,
ich beiße mir nun schon seit einiger Zeit an einem VBA Problem die Zähne aus und konnte diesbezüglich noch keine Lösung im Netz finden, weshalb ich mich nun entschied mein Anliegen in dieses Forum zu posten. Es geht um folgendes:
Ich möchte gerne per VBA
Die Werte in Zeile 12 aus diesem Workbook
Userbild
mit den Werten aus Zeile 15 in diesem Workbook abgleichen lassen
Userbild
und wenn die Werte in Zeile 12 und 15 übereinstimmen, sollen die Werte aus Zeile 16 der ersten Tabelle in Zeile 31 der Zweiten kopiert werden.
Man sieht es leider auf den Bildern schlecht, aber die Tabellen gehen nach rechts noch ein ganzes Stück weiter. Wichtig ist zudem auch, dass die Spalten der beiden Tabellen nicht übereinstimmen.
Mein bisheriger Ansatz sah folgendermaßen aus und ging leider komplett schief:
Option Explicit
Sub Reserve()
Dim Path, Filename, Filetype As String
Dim Row, Column As Integer
Dim Menu, SheetSource, SheetDestination As Worksheet
Path = Sheets("Menu").Cells(2, 3)
Filename = Sheets("Menu").Cells(3, 3)
Filetype = Sheets("Menu").Cells(4, 3)
Set SheetSource = Workbooks.Open(Path & Filename & Filetype).Sheets("Reserves")
Set SheetDestination = ThisWorkbook.Sheets("Reserves_2017_Q4_IST")
For Column = 8 To 40
If SheetSource.Cells(12, Column).Value = SheetDestination.Cells(15, Column).Value Then
SheetSource.Cells(16, Column).Copy
SheetDestination.Cells(31, Column).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End If
Next Column
ActiveWorkbook.Close
End Sub

Ich hoffe ich habe alle relevanten Information zur Verfügung gestellt und bin für jede Hilfe dankbar :).

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

Betreff
Datum
Anwender
Anzeige
Nein, hast du nicht
03.01.2018 19:25:13
Werner
Hallo Felix,
mach mal eine Beispielmappe. Ein Tabellenblatt mit deinen Quelldaten, ein Tabellenblatt mit deinen Zieldaten. Die Mappe dann hier hochladen.
Spalten von bis des Quellblatt mit Spalten von bis Zielblatt soll verglichen werden?
Soll geprüft werden, ob jeder Wert aus den verschiedenen Spalten vom Quellblatt mindestens einmal im Spaltenversatz vom Zielblatt vorhanden ist? Und wenn ja, dann kopieren?
Gruß Werner
AW: Nein, hast du nicht
03.01.2018 20:35:44
Fabby
Hallo Werner,
erst einmal vielen Dank für deine schnelle Antwort. Kurz zu deinen Fragen.
Spalten von bis des Quellblatt mit Spalten von bis Zielblatt soll verglichen werden?
Spalten "K:AY" Quellblatt sollen verglichen werden mit Spalten "Q:AY" Zielblatt
Soll geprüft werden, ob jeder Wert aus den verschiedenen Spalten vom Quellblatt mindestens einmal im Spaltenversatz vom Zielblatt vorhanden ist? Und wenn ja, dann kopieren?
Also geprüft werden soll ob der Begriff in Zeile 12 des Quellblattes mit dem in Zeile 15 des Zielblattes übereinstimmt. Sobald dies der Fall ist soll Excel den Wert aus Zeile 16 im Quellblatt in Zeile 31 des Zieblattes kopieren
Ein Beispiel: Im Quellblatt steht in Zelle(12, “AD“) der Begriff Surety und darunter in Zelle(16, “AD“) der Wert „-7060,10909“
Sobald nun im Zielbaltt in Zeile 15 der Begriff Surety auch auftaucht, in diesem Fall Zelle(15, “AM“) soll der Wert „-7060,10909“ vom Quellblatt in die Zelle(31, “AM“) im Zielblatt kopiert werden und nur dann.
Anbei die Beispielmappe: https://www.herber.de/bbs/user/118661.xlsx
Ich hoffe, ich konnte mich diesmal verständlicher ausdrücken.
Viele Grüße und danke für die Hilfe
Anzeige
AW: Nein, hast du nicht
03.01.2018 21:39:34
Werner
Hallo Felix,
und das ganze Prozedere soll für sämtliche Spalten -Spalten "K:AY" des Quellblattes passieren richtig.
Das wird heute aber nichts mehr. Ich setz mich morgen mal dran.
Gruß Werner
AW: Nein, hast du nicht
03.01.2018 22:15:22
Fabby
Hallo Werner,
ja, genau. Vielen dank für deine Unterstützung.
Viele Grüße
Felix
AW: Nein, hast du nicht
04.01.2018 09:40:02
Werner
Hallo Felix,
in deiner Beispieltabelle kommen im Quellblatt in Zeile 12 mehrere Begriffe mehrfach vor. Im Zielblatt in Zeile 15 sind die aber alle nur einfach vorhanden. Was soll passieren? Welcher Wert soll ins Zielblatt? Sollen die Werte im Zielblatt addiert werden?
Gruß Werner
AW: Nein, hast du nicht
04.01.2018 10:02:05
Felix
Hallo Werner,
ja, genau. Bei Mehrfachnennung sollen die Werte im Zielblatt addiert werden. Entschuldige, dass hatte ich vergessen dazu zu schreiben.
Viele Grüße
Felix
Anzeige
AW: Nein, hast du nicht
04.01.2018 10:08:28
Werner
Hallo Felix,
dann teste mal. Siehe auch Kommentar im Code.
Sub Reserve()
Dim Path As String, Filename As String, Filetype As String, strSuchbegriff As String
Dim i As Long, raFund As Range
Dim SheetSource As Worksheet, SheetDestination As Worksheet
Path = Sheets("Menu").Cells(2, 3)
Filename = Sheets("Menu").Cells(3, 3)
Filetype = Sheets("Menu").Cells(4, 3)
Set SheetSource = Workbooks.Open(Path & Filename & Filetype).Sheets("Reserves")
Set SheetDestination = ThisWorkbook.Sheets("Reserves_2017_Q4_IST")
Application.ScreenUpdating = False
'hier werden die Daten in Zeile 31 des Zielblattes zunächst
'gelöscht. Wenn du die Daten immer wieder in diese Zeile
'eintragen und aufaddieren willst, dann diese Codezeile
'einfach löschen
SheetDestination.Range("Q31:AY31").ClearContents
With SheetSource
For i = 11 To 51
strSuchbegriff = .Cells(12, i)
Set raFund = SheetDestination.Rows(15).Find(strSuchbegriff _
, lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not raFund Is Nothing Then
SheetDestination.Cells(31, raFund.Column) _
= SheetDestination.Cells(31, raFund.Column) + .Cells(16, i)
End If
Next i
End With
Set SheetSource = Nothing: SheetDestination = Nothing: raFund = Nothing
Application.ScreenUpdating = True
ActiveWorkbook.Close
End Sub

Anzeige
Korrektur
04.01.2018 11:02:37
Werner
Hallo Felix,
bei meinem Code hat sich noch ein kleiner Fehler eingeschlichen. Diese Codezeile
Set SheetSource = Nothing: SheetDestination = Nothing: raFund = Nothing

muss richtig so sein
Set SheetSource = Nothing: Set SheetDestination = Nothing: Set raFund = Nothing
Gruß Werner
AW: Korrektur
04.01.2018 13:42:24
Felix
Hallo Werner,
vielen vielen Dank für deine schnelle & kompetente Hilfe. Dein Code funktioniert genau wie gewünscht, du hast mir damit sehr viel Arbeit erspart.
Viele Grüße
Felix
Gerne u. Danke für die Rückmeldung. o.w.T.
04.01.2018 13:55:09
Werner

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige