Per VBA IDs suchen und wenn gefunden kopierte Zellen einfügen
#1
Hallo zusammen,
 
ich bin neu hier, leider noch Anfänger bei VBA und an folgendem Vorhaben am verzweifeln: 

Tabelle2 listet in Spalte B IDs auf. Eine Spalte in Tabelle1 soll nach diesen IDs durchsucht werden und, wenn gefunden, soll Tabelle1 mit Werten aus Tabelle2 aktualisiert werden (d.h. ein bestimmter Zellbereich (G:AH) aus Tabelle2 soll in Tabelle1 (L:AM) geschrieben werden.) Alles andere in Tabelle 1 soll bleiben wie es ist; alle IDs aus Tabelle 2 sollten auch in Tabelle 1 enthalten sein/gefunden werden.
Tabelle2 wird regelmäßig per Makro aktualisiert, weshalb ich mit einfachen Excelformeln nicht weiter komme.
 
Daher habe ich mich nun sehr stark in VBA eingearbeitet und mir vieles bereits angeeignet (Werte suchen, Zellbereiche kopieren, etc.); allerdings merke ich, dass mein Vorhaben für mich noch viel zu komplex ist (verschachteln von kopieren, wenn gefunden, auswählen eines anderen Zellbereiches, einfügen, etc.)
Außerdem fehlt mir momentan leider irgendwie ein grundlegende Ansatz, um weiter zu kommen: Z.B. was ggf. als Variable definieren und was nicht oder ggf. von gefundener Ausgangsposition aus weiter navigieren… etc.
 
Ich habe ein Beispiel angehangen und habe sehr vieles versucht, aber ich befürchte, mein bisheriger Code ist eher armselig und ein grundlegender Ansatz fehlt nach meinen vielen Versuchen auch.
 
Kann jemand helfen bitte?
 
Viele Grüße & einen schönen Freitag allen!


Angehängte Dateien
.xlsm   Mappe2.xlsm (Größe: 519,96 KB / Downloads: 3)
Top
#2
(21.06.2019, 09:26)Newby schrieb: Tabelle2 wird regelmäßig per Makro aktualisiert
Wenn du von VBA auf PQ änderst dann könntest du Rest auch mit PQ erledigen.
Grüsse
Detlef

Bitte keine PN!
Seit Nikolaus 2012 mit Excel 2010. Seit Ostern 2015 mit Office 365
Top
#3
Hallo Detlef,

vielen Dank für Deine Rückmeldung!

"Pq" Huh  =Formel?

Dass der Input für Tabelle2 per Makro kommt, passt so schon gut -> das Auslesen/Akutalisieren der Daten in Tabelle 1 kann dann bei Bedarf/auf Knopfdruck erfolgen.

Daher die Vorgehensweise, dass die Daten aus Tabelle2 ausgelesen werden sollen und in Tabelle1 ergänzt werden.

Hilfe hier wäre sehr, sehr großartig.

Viele Grüße
Nina
Top
#4
PQ = Power Query aka Daten abrufen und transformieren
Grüsse
Detlef

Bitte keine PN!
Seit Nikolaus 2012 mit Excel 2010. Seit Ostern 2015 mit Office 365
Top
#5
Hallo Detlef,

leider ist PQ völlig neu und ich bin mir daher nicht sicher, ob tatsächlich einfacher für mich.

VBA aus Deiner Sicht zu kompliziert mein Beispiel?
Top
#6
Für VBA müssen die VBA-Spezialisten ran.
Grüsse
Detlef

Bitte keine PN!
Seit Nikolaus 2012 mit Excel 2010. Seit Ostern 2015 mit Office 365
Top
#7
Danke dir Detlef dennoch!

@VBA-Spezialisten - anyone here? Kann jemand helfen bitte?

...das wäre wirklich super :22:
Top
#8
Hallo,

ungetestet

Code:
Sub prcX()
   Dim rngTreffer As Range
   Dim lngC As Long
   Dim strAdresse As String
  
   With Worksheets("Tabelle2")
      For lngC = 8 To .Cells(.Rows.Count, 2).End(xlUp).Row
         Set rngTreffer = Worksheets("Tabelle1").Columns(1).Find(.Cells(lngC, 2).Value, LookIn:=xlValues, lookat:=xlWhole)
         If Not rngTreffer Is Nothing Then
            strAdresse = rngTreffer.Address
            Do
               .Cells(lngC, 7).Resize(, 28).Copy rngTreffer.Offset(, 12)
            Set rngTreffer = Worksheets("Tabelle1").Columns(1).FindNext(rngTreffer)
            Loop While rngTreffer.Address <> strAdresse
         End If
      Next lngC
   End With

End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Newby
Top
#9
Stefan  - vielen herzlichen Dank Dir!

Musste nur noch die Spaltennummer von 12 auf 11 setzen, da es um 1 verschoben rüberkopiert wurde, aber nun läuft es - und ich tanze auf dem Tisch :)

Im Leben hätte ich das in absehbarer Zeit so nicht zusammen bekommen - vielen Dank Dir & ein schönes Wochenende!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste