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-Key: 183177

Url: https://administrator.de/contentid/183177

Printed on: April 19, 2024 at 15:04 o'clock

Member: Xolger
Xolger Apr 05, 2012 at 16:08:20 (UTC)
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
Member: lordofremixes
lordofremixes Apr 05, 2012 at 17:37:32 (UTC)
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
Member: bastla
bastla Apr 05, 2012 at 18:39:44 (UTC)
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 ...
Member: lordofremixes
lordofremixes Apr 07, 2012 at 12:34:02 (UTC)
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
Member: bastla
bastla Apr 07, 2012 at 13:08:35 (UTC)
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
Member: lordofremixes
lordofremixes Apr 07, 2012 at 13:41:06 (UTC)
Goto Top
Hallo Bastla,

Alles klar,

vielen Dank .

Gruß
lordofremixes