lordofremixes
Goto Top

Einfaches Makro (kopiert, sucht und wieder kopiert)

Schreibe gerade mein erstes Makro mit der Makroaufzeichnung. Kann man das Makro nicht so anpassen, dass es in die nächste Zeile wechselt?

Hallo zusammen,


Ich habe eine Tabelle in der die Artikelnummer drin steht (A3 bis A787 ) und noch eine Spalte mit Artikelnummern K3 : K1005
Mein Makro soll A3 kopieren , dann in Spalte K3 : K1005 genau diesen Wert suchen, und bei dem gefunden Wert in der Spalte K (z.B. K5) die Werte von den nächsten 2 Zellen rechts kopieren (z.B. L5 und M5) und diese wiederum in N3 (gleiche Zeile wie A3 ) speichern.

soweit bin ich gekommen.

Range("A3").Select  
    Selection.Copy
    Columns("K:K").Select  
    Selection.Find(What:="257879", After:=ActiveCell, LookIn:=xlFormulas, _  
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    Application.CutCopyMode = False
    Range("L5:M5").Select  
    Selection.Copy
    Range("N3").Select  
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub

Das funktioniert nicht weil da ja nur ein Wert abgearbeitet wird und auch keine Schleife dran hängt, die erst A1 abarbeitet und erledigt und dann A2 usw..

Weiß mir vielleicht jemand einen Rat?
Wäre so froh darüber, sitze da und weiß echt nicht mehr weiter.


Gruß
lordofremixes

Content-ID: 183177

Url: https://administrator.de/forum/einfaches-makro-kopiert-sucht-und-wieder-kopiert-183177.html

Ausgedruckt am: 12.04.2025 um 04:04 Uhr

Xolger
Xolger 05.04.2012 um 18:08:20 Uhr
Goto Top
Hallo lordofremixes,

für die gewünschte Aufgabe benötigst du kein Makro.
Schau dir mal die Hilfe zum Befehl "SVERWEIS" an,
da findest du alles was du brauchst.

(Im Makro kann man Zellen mit Range().Select ansprechen wie in deinem Auszug,
aber ebenso mit Zellinhalt=Cells(1,1) , heißt schreibe in die Variable Zellinhalt
den Wert der Zelle A1)


Gruß Xolger
lordofremixes
lordofremixes 05.04.2012 um 19:37:32 Uhr
Goto Top
Hallo xolger,

den sverweis schau ich mir auf jeden fall demnächst an.... wollte ich schon länger mal..
das problem ist nur, dass mir grad bisschen der arsch brennt, auf die schnelle kann das keiner?
les mir grad schon alte vba makro excel 9bücher durchles..
mein chef will es unbedint als makro, wieso ist mir eig auch nicht klar

Gruß
lordofremixes
bastla
bastla 05.04.2012 um 20:39:44 Uhr
Goto Top
Hallo lordofremixes!

Wenn's denn sein soll (auch ich würde für SVERWEIS() plädieren):
Sub Kopieren()
AbZeile = 3 'Daten werden ab dieser Zeile gelesen  
Spalte = "A" 'Spalte, nach deren Inhalten gesucht wird  
SuchSpalte = "K" 'Spalte, in der die Werte aus Spalte (A) gesucht werden  
QuellSpalte = "L" 'erste Spalte, aus der Daten übernommen werden sollen  
QuellSpaltenAnzahl = 2 'Anzahl der Spalten, aus denen Daten übernommen werden sollen  
ZielSpalte = "N" 'Spalte, ab der Daten eingetragen werden sollen  

Zeile = AbZeile 'in AbZeile beginnen  
Do While Cells(Zeile, Spalte).Value <> "" 'alle Zeilen, die in Spalte (A) einen Wert enthalten, verarbeiten  
    'Wert aus der aktuellen Zeile und Spalte auslesen und in der SuchSpalte suchen  
    Set c = Columns(SuchSpalte).Find(What:=Cells(Zeile, Spalte).Value, LookAt:=xlWhole, MatchCase:=False)
    If Not c Is Nothing Then 'Wenn nicht kein Suchergebnis ;-)  
        QuellZeile = c.Row 'Zeile, in der der Wert gefunden wurde  
        'Zielbereich (per Resize() in der richtigen Größe: 1 Zeile hoch, QuellSpaltenAnzahl Spalten breit) mit Daten aus Quellbereich (ebenfalls per Resize() in der vorgegebenen Größe) befüllen  
        Cells(Zeile, ZielSpalte).Resize(1, QuellSpaltenAnzahl).Value = Cells(QuellZeile, QuellSpalte).Resize(1, QuellSpaltenAnzahl).Value 
    End If
    Zeile = Zeile + 1 'nächste Zeile  
Loop
End Sub
Anmerkung: Es werden so nur jeweils der Inhalt der Zellen, nicht aber deren Formatierung übertragen ...

Grüße
bastla

P.S.: Eine ordentliche Deines geposteten Codes kriegst Du auch nachträglich noch hin ...
lordofremixes
lordofremixes 07.04.2012 um 14:34:02 Uhr
Goto Top
Hallo bastla,

vielen , vielen Dank. Klappt echt perfekt. (konnt leider noch nicht früher antworten).
Also war mein Ansatz schon ganz falsch?
Meinst du , du kannst bei Gelegenheit noch die einzelnen Zeilen kommentieren?

Gruß
lordofremixes
bastla
bastla 07.04.2012 um 15:08:35 Uhr
Goto Top
Hallo lordofremixes!
Meinst du , du kannst bei Gelegenheit noch die einzelnen Zeilen kommentieren?
Besser so?
Also war mein Ansatz schon ganz falsch?
Das nicht (der Makrorekorder ist als Starthilfe oft sehr nützlich, arbeitet aber mit sehr vielen unnötigen "Select / Selection"), aber es fehlte jedenfalls die Schleife drumherum ...

Grüße
bastla
lordofremixes
lordofremixes 07.04.2012 um 15:41:06 Uhr
Goto Top
Hallo Bastla,

Alles klar,

vielen Dank .

Gruß
lordofremixes