Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Einfaches Makro (kopiert, sucht und wieder kopiert)

Frage Microsoft Microsoft Office

Mitglied: lordofremixes

lordofremixes (Level 1) - Jetzt verbinden

05.04.2012, aktualisiert 07.04.2012, 3779 Aufrufe, 6 Kommentare

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.

01.
Range("A3").Select 
02.
    Selection.Copy 
03.
    Columns("K:K").Select 
04.
    Selection.Find(What:="257879", After:=ActiveCell, LookIn:=xlFormulas, _ 
05.
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
06.
        MatchCase:=False, SearchFormat:=False).Activate 
07.
    Application.CutCopyMode = False 
08.
    Range("L5:M5").Select 
09.
    Selection.Copy 
10.
    Range("N3").Select 
11.
    ActiveSheet.Paste 
12.
    Application.CutCopyMode = False 
13.
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
Mitglied: Xolger
05.04.2012 um 18:08 Uhr
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
Bitte warten ..
Mitglied: lordofremixes
05.04.2012 um 19:37 Uhr
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
Bitte warten ..
Mitglied: bastla
05.04.2012 um 20:39 Uhr
Hallo lordofremixes!

Wenn's denn sein soll (auch ich würde für SVERWEIS() plädieren):
01.
Sub Kopieren() 
02.
AbZeile = 3 'Daten werden ab dieser Zeile gelesen 
03.
Spalte = "A" 'Spalte, nach deren Inhalten gesucht wird 
04.
SuchSpalte = "K" 'Spalte, in der die Werte aus Spalte (A) gesucht werden 
05.
QuellSpalte = "L" 'erste Spalte, aus der Daten übernommen werden sollen 
06.
QuellSpaltenAnzahl = 2 'Anzahl der Spalten, aus denen Daten übernommen werden sollen 
07.
ZielSpalte = "N" 'Spalte, ab der Daten eingetragen werden sollen 
08.
 
09.
Zeile = AbZeile 'in AbZeile beginnen 
10.
Do While Cells(Zeile, Spalte).Value <> "" 'alle Zeilen, die in Spalte (A) einen Wert enthalten, verarbeiten 
11.
    'Wert aus der aktuellen Zeile und Spalte auslesen und in der SuchSpalte suchen 
12.
    Set c = Columns(SuchSpalte).Find(What:=Cells(Zeile, Spalte).Value, LookAt:=xlWhole, MatchCase:=False) 
13.
    If Not c Is Nothing Then 'Wenn nicht kein Suchergebnis ;-) 
14.
        QuellZeile = c.Row 'Zeile, in der der Wert gefunden wurde 
15.
        '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 
16.
        Cells(Zeile, ZielSpalte).Resize(1, QuellSpaltenAnzahl).Value = Cells(QuellZeile, QuellSpalte).Resize(1, QuellSpaltenAnzahl).Value  
17.
    End If 
18.
    Zeile = Zeile + 1 'nächste Zeile 
19.
Loop 
20.
End Sub
Anmerkung: Es werden so nur jeweils der Inhalt der Zellen, nicht aber deren Formatierung übertragen ...

Grüße
bastla

P.S.: Eine ordentliche Formatierung Deines geposteten Codes kriegst Du auch nachträglich noch hin ...
Bitte warten ..
Mitglied: lordofremixes
07.04.2012 um 14:34 Uhr
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
Bitte warten ..
Mitglied: bastla
07.04.2012 um 15:08 Uhr
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
Bitte warten ..
Mitglied: lordofremixes
07.04.2012 um 15:41 Uhr
Hallo Bastla,

Alles klar,

vielen Dank .

Gruß
lordofremixes
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Gruppierung von Zeilen mit einer bestimmten Farbe mit Makro (5)

Frage von Mimindt zum Thema VB for Applications ...

Erkennung und -Abwehr
Makro in manipuliertem Word-Dokument will Schadsoftware am Mac verbreiten

Link von VGem-e zum Thema Erkennung und -Abwehr ...

Batch & Shell
gelöst BeagleBoard mit Touchscreen - einfaches Program mit GUI erstellen? (7)

Frage von laster zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
gelöst Nicht Admins erlauben Verknüpfungen zu löschen (17)

Frage von WinLiCLI zum Thema Windows Userverwaltung ...

Windows Update
gelöst WSUS Produkte weiter einschränken (11)

Frage von thaefliger zum Thema Windows Update ...