Top-Themen

Aktuelle Themen (A bis Z)

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, 5295 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 ..
Ähnliche Inhalte
Microsoft Office
Excel 2010: Tabellenblatt verknüpfen
gelöst Frage von honeybeeMicrosoft Office3 Kommentare

Hallo, kann ich in Mappe A eine Verknüpfung von einem Tabellenblatt aus Mappe B erstellen? Ich möchte keine Formelverknüpfung, ...

Microsoft Office
Probleme bei Makro in Outlook zum kopieren von Daten aus Mail in Excel
gelöst Frage von fiAScoMicrosoft Office6 Kommentare

Servus beinander Ich habe eine Frage bzw möchte folgendes haben/machen. Ich würde gern ein Makro in Outlook haben, welches ...

Microsoft Office
Excel Makro zum Kopieren von Daten aus Mappe1 in Mappe2
Frage von Alex993Microsoft Office3 Kommentare

Hallo, ich versuche aktuell, ein Makro zu schreiben, mit dem man Werte aus einer bzw. mehreren Arbeitsmappen in eine ...

Microsoft Office
Excel 2010 - Microsoft Excel kann die Daten nicht kopieren
Frage von EDV-OellerkingMicrosoft Office4 Kommentare

Hallo zusammen, wenn wir versuchen Daten von einer Excel 2010 Tabelle in eine andere zu kopieren (2 separat geöffnete ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 14 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 16 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...