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

Excel 2010 Makro: Intelligentes Kopieren von Daten in 2 Tabellenblättern

Frage Entwicklung VB for Applications

Mitglied: Jensson

Jensson (Level 1) - Jetzt verbinden

12.08.2014, aktualisiert 14:01 Uhr, 4706 Aufrufe, 7 Kommentare

Hallo
Ich bin Einsteiger in VBA, beziehungsweise möchte lernen, Makros zu schreiben und habe dafür eine Testaufgabe bekommen. Ich habe 2 Tabellenblatter. In diesen ist jeweils eine Tabelle mit teilweise unterschiedlichen Inhalten. Das Makro soll in der Kopfzeile von Tabelle2 gucken, ob es die Überschriften der Spalten auch uin Tabelle1 gibt und wenn ja, die Werte aus Tabelle1 die unter dieser Überschrift stehen in die entsprechende Spalte in Tabelle2 kopieren. Dabei soll es aber auch schauen ob die Zeile an dieser Stelle überhaupt frei ist, und wenn nicht, eine Zeile weiter runtergehen (oder eben so weit wie nötig). Bilder der Tabellen sind angehängt.
Es wäre super wenn man das Skript noch erklären könnte, bzw. Kommentare unter die Befehle schreiben könnte, damit ich das verstehen und lernen kann.
Vielen Dank im Vorraus

38d0516e968b8620033472c9f24ac0b2 - Klicke auf das Bild, um es zu vergrößern


c319416525423b00d0756e4f8c6b0423 - Klicke auf das Bild, um es zu vergrößern
Mitglied: keine-ahnung
12.08.2014 um 12:51 Uhr
Moin,
Inteligentes Kopieren
ooops !
Bilder der Tabellen sind angehängt.
Doppeloops

LG, Thomas
Bitte warten ..
Mitglied: colinardo
LÖSUNG 12.08.2014, aktualisiert um 14:32 Uhr
Hallo Jenson, Willkommen auf Administrator.de!
Deine Bilder hast du leider nicht richtig hochgeladen, hier aber trotzdem ein Beispiel-Sheet nach deiner Beschreibung: CompareAndCopy_246283.xlsm. Kommentare befinden sich im Code.

01.
Sub SearchAndCopy() 
02.
    Dim ws1 As Worksheet, ws2 As Worksheet, f As Range, cell As Range, rngWert As Range, currentTarget As Range, rngContent As Range 
03.
    'Tabellenblätter referenzieren 
04.
    Set ws1 = Worksheets(1) 
05.
    Set ws2 = Worksheets(2) 
06.
    ' Für jede Überschrift in Tabelle2 
07.
    For Each cell In ws2.Range("A1", ws2.Cells(1, Columns.Count).End(xlToLeft)) 
08.
        ' Für jede Überschrift im Bereich der Überschriften in Tabelle1 
09.
        With ws1.Range("A1", ws1.Cells(1, Columns.Count).End(xlToLeft)) 
10.
            'Suche die aktuelle Überschrift in Tabelle2 im Bereich von Tabelle1 
11.
            Set f = .Find(cell.Value, LookIn:=xlValues, LookAt:=xlWhole) 
12.
            'Nur wenn die Überschrift gefunden wurde ... 
13.
            If Not f Is Nothing Then 
14.
                ' belegten Bereich unter der jeweiligen Überschrift ermitteln 
15.
                Set rngContent = ws1.Range(f.Offset(1, 0), ws1.Cells(Rows.Count, f.Column).End(xlUp)) 
16.
                ' für jede Zelle im belegten Bereich ... 
17.
                For Each rngWert In rngContent 
18.
                    ' Bereich in Tabelle2 eine Zeile nach unten verschieben 
19.
                    Set currentTarget = cell.Offset(1, 0) 
20.
                    ' Bereich solange nach unten verschieben bis eine nicht leere Zelle kommt 
21.
                    While currentTarget.Value <> "" 
22.
                        Set currentTarget = currentTarget.Offset(1, 0) 
23.
                    Wend 
24.
                    'Schreibe den Inhalt in die Zielzelle 
25.
                    currentTarget.Value = rngWert.Value 
26.
                Next 
27.
            End If 
28.
        End With 
29.
    Next 
30.
End Sub
Grüße Uwe

So fügt man Bilder zum Beitrag hinzu:
1. Im Ursprungsbeitrag(Frage) auf Bearbeiten klicken
2. Auf den Tab Bilder wechseln und mit Bild hinzufügen ein Bild hinzufügen
dd734be15ff48f33bc796357a8bdbedd - Klicke auf das Bild, um es zu vergrößern
3. Den angezeigten Bildcode kopieren und in deine Kommentar/Beitrag einfügen
32bd385f49561db36766b75506800d13 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: Jensson
12.08.2014 um 14:07 Uhr
Hi Uwe,

die Bilder sind jetzt richtig hochgeladen.Ich habe das Makro mal in dem Excel Dokument eingefügt und mit dem Skript ausprobiert, jedoch passiert nichts. Ich wüsste jetzt aber auch nicht was ich da anpassen müsste :I Hättest du nochmal die Güte einem kleinen Anfänger wie mir zu helfen?
Vielen Dank
Bitte warten ..
Mitglied: colinardo
LÖSUNG 12.08.2014, aktualisiert um 14:48 Uhr
Zitat von Jensson:
die Bilder sind jetzt richtig hochgeladen.Ich habe das Makro mal in dem Excel Dokument eingefügt und mit dem Skript
ausprobiert, jedoch passiert nichts.
Mein Beispiel-Sheet läuft, läuft es bei dir? wenn nicht, ist bei Dir dir Ausführung von Makros im Sicherheitscenter von Excel überhaupt aktiviert ?
Bitte warten ..
Mitglied: Jensson
12.08.2014 um 14:28 Uhr
Ah, Okay.
Das Problem hat sich soeben erledigt
Vielen Vielen Dank!
Bitte warten ..
Mitglied: Ronniedinho2
23.10.2015 um 13:27 Uhr
Hallo,

gibt es hierbei auch die Möglichkeit benutzerdefinierte Abfragen zu starten? Habe das kopieren und einfügen per Makro hinbekommen. Müsste aber in meiner Tabelle nach Kriterien suchen lassen. Hat jemand einen Tipp für mich?

Besten Dank
Bitte warten ..
Mitglied: 122990
23.10.2015 um 14:01 Uhr
Zitat von Ronniedinho2:
gibt es hierbei auch die Möglichkeit benutzerdefinierte Abfragen zu starten? Habe das kopieren und einfügen per Makro hinbekommen. Müsste aber in meiner Tabelle nach Kriterien suchen lassen. Hat jemand einen Tipp für mich?

Neue Frage neuer Thread ...!
Danke.

Gruß grexit
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
Excel 2010 - Microsoft Excel kann die Daten nicht kopieren (4)

Frage von EDV-Oellerking zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...