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, 3770 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Microsoft Office
gelöst Makro wird beim öffnen Vorlage nicht ausgeführt (8)

Frage von Sunny89 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...