Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1264to1268
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

VBA: gefundenen Wert in Zelle kopieren

VBA: gefundenen Wert in Zelle kopieren
Dani
Hallo xls-Experten,
ich möchte einen Suchbegriff (SKU) aus dem Blatt wksCo in dem Blatt wksM finden und nur bestimmte Spalteneinträge (Spalten N-U) aus wksCO ins wksM kopieren (in die gefundene SKU-zeile).
Dazu habe ich mir mit Hilfe des Archivs den folgenden Code zusammengebsatelt, aber der läuft ständig auf Fehler:
Sub Farben()
Dim sku As Range
Dim wksM As Worksheet, wksCO As Worksheet
Dim LastRow As Long, RowSKU As Long
Set wksM = Worksheets("Master")
Set wksCO = Worksheets("CO")
Application.ScreenUpdating = False
With wksM
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
With wksCO
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
For RowSKU = 1 To RowSKU
If wksCO.Cells(RowSKU, 1)  "" Then
With wksM.Columns(1)
Set sku = .Find(what:=wksCO.Cells(RowSKU, 1), LookIn:=xlValues, _
lookat:=xlWhole)
If Not sku Is Nothing Then
Do
LastRow = LastRow + 1
sku(0, 14).Copy Destination:=wksM.sku(0, 14).Value        'hier kommt ständig die  _
Fehlermeldung
Application.CutCopyMode = False
Set sku = .FindNext(after:=sku)
Loop Until sku Is Nothing
End If
End With
End If
Next RowSKU
Application.ScreenUpdating = True
End Sub

Was ist falsch im Code?
DANKE für Eure Hilfe!
Dani

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA: gefundenen Wert in Zelle kopieren
19.06.2012 16:58:03
Mark
Hallo Dani,
versuchs mal so: sku(0, 14).Copy Destination:=wksM.Range(sku(0, 14)).Value
Der Sinn deines Codes will mir nicht einleuchten!
Besonders wo wird RowSKU beschrieben?
Gruß
Mark
AW: VBA: gefundenen Wert in Zelle kopieren
19.06.2012 19:05:00
Dani
Hallo Mark,
Danke - jetzt erhalte ich zwar keinen Fehler, leider aber auch kein Ergebnis. Der Code läuft durch, aber ich sehe nicht, ob er überhaupt was verändert hat.
Ja der Sinn des Codes ... :-) - ich hatte ihn zusammengestellt aus verschiedenen Archiv-Beiträgen und mich versucht hineinzudenken. Sieht wohl so aus als dass ich zu viel des Guten verwendet habe.
Also, ich habe in 2 sheets in Spalte A meine Suchbegriffe (SKUs) und wenn diese SKU gefunden wurde, sollen in der gefundenen SKU-Zeile im wksM zusätzlich noch die Spalten N-U befüllt werden mit den Angaben aus dem wksCO (da sind in der entsprechenden Zeile des Suchbegriffes die Spalten N-U zu kopieren).
Was muss ich im Code abändern sodass es klappt?
Vielen Dank!
Dani
Anzeige
AW: VBA: gefundenen Wert in Zelle kopieren
19.06.2012 20:43:12
schauan
Hallo,
ich nehme mal an, dass als Ziel ein Bereich und nicht ein Wert stehen sollte.
Sofern sku der Name eines benannten Bereiches ist, müsste es dann so aussehen:
Range("sku").cells(0, 14).Copy Destination:=wksM.Range("sku").cells(0, 14)
Userbild

Hoffe geholfen zu haben
Grüße von André aus Gera - Excel-97-2010

Anzeige
AW: VBA: gefundenen Wert in Zelle kopieren
19.06.2012 21:34:57
Dani
Hallo Andre,
leider klappt auch diese Änderung nicht - Fehlermeldung: Range für Objekt ist fehlgeschlagen.
SKU sollte das Suchkriterium aus dem wksCO sein, das dann im wksM gefunden wird - Bsp. ID-Nr. AA00257. Und wenn diese ID gefunden wurde, dann Werte eintragen und fortsetzen mit der nächsten ID. So hatte ich es zumindest vor ...
Was ist Dein Rat?
Danke & VG
Dani
ERLEDIGT - anderen Code verwendet
19.06.2012 22:51:17
Dani
Hallo Andre,
ich habe jetzt einen anderen Weg gefunden - aber V I E L E N DANK für Deine Hilfe!
Folgender Code funktioniert jetzt:
VG
Dani
Sub Farben_ergänzen()
Dim sku As Range, sku1 As Range
Dim wksM As Worksheet, wksCO As Worksheet
Set wksM = Worksheets("Master")
Set wksCO = Worksheets("CO")
Application.ScreenUpdating = False
With wksM
For Each sku1 In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
Set sku = wksCO.Columns(1).Find(sku1, lookat:=xlWhole)
If Not sku Is Nothing Then
For m = 12 To 20
If sku.Offset(, m)  "" Then sku1.Offset(, m) = sku.Offset(, m)
Next m
End If
Next
End With
Columns("K:L").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
End Sub

Anzeige

370 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige