Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten übertragen

Daten übertragen
10.05.2008 16:08:00
Werner
Hallo Excel Freunde,
bisher mache ich folgendes immer per Hand: Aus einer Arbeitsmappe (Anwendung=Arbeitszeiterfassung) heraus öffne ich über den Explorer eine gespeicherte Arbeitsmappe. In diesem Verzeichnis (Archiv) sind Monatskopien der Anwendung. Aus einer dieser Kopie muß ich unterschiedliche Bereiche in meine Arbeitsmappe hineinkopieren, um den gesamten Inhalt wieder herzustellen (Arbeitszeit, Name, Monat usw.). So etwas geht auch mit VBA aber nicht über den Makrorekorder.
Kann mir da einer helfen?
Herzliche Grüße
Werner

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten übertragen
10.05.2008 16:38:00
Daniel
Hi
deine Angaben sind ein bisschen vage, aber schau dir das mal an:
- Vor start des Makros die Zelle selektieren, an der die Daten eingefügt werden sollen
- Makro starten und Datei auswählen
- der im Makro festgelegte Zellbereich wird kopiert und and der Markierten Zelle eingefügt
Gruß, Daniel

Sub Daten_aus_anderer_Datei()
'--- die kopierten Daten werden an der aktuell markierten Zelle eingefügt
Dim ZielZelle As Range
Dim DateiPfad As String
Dim wbQuelle As Workbook
'---Zielbereich festlegen, hier werden die Daten hinkopiert
Set ZielZelle = ActiveCell
'--- Datei auswählen
DateiPfad = Application.GetOpenFilename(, , "Datei auswählen", False)
If DateiPfad  "Falsch" Then                           '--- Prüfen auf abbruch
If Right(DateiPfad, 3) = "xls" Then                 '--- Prüfen, ob Excel-Datei gewählt  _
wurde
Set wbQuelle = Workbooks.Open(DateiPfad)        '--- Datei öffnen
wbQuelle.Sheets("Tabelle1").Range("A1:C3").Copy ' Daten kopieren Zellbereich anpassen
ZielZelle.PasteSpecial xlPasteValues            '--- Daten einfügen
wbQuelle.Close                                  '--- Datei schließen
End If
End If
End Sub


Anzeige
AW: Daten übertragen
10.05.2008 16:44:02
Werner
Herzlichen Dank für die schnelle Antwort! Habe das Makro getestet. Es geht! Kann man es so erweitern, dass mehrer nicht zusammenhängende Bereiche nacheinander kopeit werden? Ich habe fünf verschiedene Bereiche.
Herzlicher Gruß
Werner
PS. Bin erst in ca. 2 Stunden wieder hier!

AW: Daten übertragen
10.05.2008 16:47:00
Daniel
Hi
tu brauchst doch nur die 2 Zeilen mit Copy und Paste entsprechend oft zu kopieren und angepasst wieder einzufügen.
dann musst du halt auch bei PASTE den passenden Zellbereich angeben, damit die Daten nicht überschrieben werden:

Thisworkbook.Sheets("Tabelle1").Range("C49").Pastespecial xlpastevalues


Gruß, Daniel

Anzeige
AW: Daten übertragen
10.05.2008 17:59:36
Werner
Hallo Daniel,
danke für die Antwort. Leider kann ich den Inhalt nicht verstehen und umsetzen. Welche zwei Zeilen sind gemeint? Was ist das für ein Code in deiner Antwort? Wo muß der hin?
Herzlichen Gruß eines Excel VBA Neulings
Werner

AW: Daten übertragen
10.05.2008 18:13:00
Daniel
Hi
du musst einfach die beiden Codezeilen, in denen die Zellen Kopiert und eingefügt werden (das sind die, wo "Copy" und "Pastespecial" drinsteht), mehrfach im code wiederholen (an der gleichen Stelle natürlich) und die Zellbezüge entsprechend anpassen.
das mit der selektierten Zelle geht dann natürlich nicht mehr

Sub Daten_aus_anderer_Datei()
'--- die kopierten Daten werden an der aktuell markierten Zelle eingefügt
Dim ZielZelle As Range
Dim DateiPfad As String
Dim wbQuelle As Workbook
'---Zielbereich festlegen, hier werden die Daten hinkopiert
Set ZielZelle = ActiveCell
'--- Datei auswählen
DateiPfad = Application.GetOpenFilename(, , "Datei auswählen", False)
If DateiPfad  "Falsch" Then                           '--- Prüfen auf abbruch
If Right(DateiPfad, 3) = "xls" Then                 '--- Prüfen, ob Excel-Datei gewählt  _
wurde
Set wbQuelle = Workbooks.Open(DateiPfad)
wbQuelle.Sheets("Tabelle1").Range("A1:C3").Copy
Thisworkbook.Sheets("Tabelle1").range("A1").PasteSpecial xlPasteValues
wbQuelle.Sheets("Tabelle1").Range("g10:H12").Copy
Thisworkbook.Sheets("Tabelle1").range("J1").PasteSpecial xlPasteValues
wbQuelle.Sheets("Tabelle1").Range("r12:t30").Copy '
Thisworkbook.Sheets("Tabelle1").range("d1").PasteSpecial xlPasteValues
....
wbQuelle.Close                                  '--- Datei schließen
End If
End If
End Sub


da ich deine Daten nicht kenne, kann ich dir leider nicht mehr helfen.
THISWORKBOOK steht übrigens immer für die Exceldatei, in der der Code steht.
Gruß, Daniel

Anzeige
AW: Daten übertragen
10.05.2008 18:21:05
Werner
Hallo Daniel,
ich werde es gleich austesten.
Danke erstmal und schöne Feiertage
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige