Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Daten von anderem Workbook kopieren
#11
Hallo Julia

entschuldige bitte meinen dummen kleinen Flüchtigkeitsfehler!  Wenn du etwas mehr VBA erfahrung gesammelt hast siehst du sowas blöödes selbst, an Hand der Fehlermeldung. Es fehlt schlicht und simpel ein "s" am Ende:  Workbooks(ExMappe)   Excel ist das sehr penibel!!

ThisWorkbook.Worksheets("Tabelle1").Range("A6:A40").Value = _
Workbooks(ExMappe).Worksheets("Tabelle2").Range("A6:A40").Value   

mfg Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • o0Julia0o
Antworten Top
#12
o.k., dankeschön. Jetzt erhalte ich einen neuen Fehler. 

Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("Tabelle2").Range("D109").Value
ThisWorkbook.Worksheets("Tabelle1").Range("A6:A40").Value = _
Workbooks(ExMappe).Worksheets("Tabelle2").Range("A6:A40").Value    
End Sub

Selbst wenn ich es so mache:
Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("Tabelle2").Range("D109").Value
ThisWorkbook.Worksheets("Tabelle1").Range("A6:A40").Value = _
Workbooks(ExMappe).Worksheets("Tabelle2").Range("A6:A40").Value    
End Sub

Es werden Zeile 3 und 4 gelb markiert: "Objekt erforderlich". Die Zelle D109 enthält dabei Wb1.xlsm und nicht [Wb1.xlsm]. Wenn ich in D109 [Wb1.xlsm] habe, dann werden ebenfalls Zeile 3 und 4 gelb markiert und folgende Meldung kommt: "Index außerhalb des gütligen Bereichs". Das kommt auch wenn in D109 nichts stehen habe. Ich vermute also Wb1.xlsm ist korrekt. Trotzdem funktioniert es ja nicht -> Objekt erforderlich. Dabei ist es egal, ob ich die Datei Wb1.xlsm geöffnet habe oder nicht. Und auch ob ich dort das Tabellenblatt Tabelle1 angewählt habe oder nicht. Und auch egal ob ich Test in der Hauptdatei(da wo ich den Code ausführe) angewählt habe oder nicht.

Julia :)
Antworten Top
#13
Hallo Julia,

hast Du dir schon mal angeschaut, was dir bei ThisWorkbook.Path zurückgegeben wird? Da fehlt das \.

Code:
Sub prcHoleDaten()
  Dim Pfad            As String
  Dim Dateiname       As String
  Dim Blatt           As String
  Dim Bereich         As String
  Dim Ziel            As Range
  Pfad = ThisWorkbook.Path & "\" 'Die von der zu kopierenden Datei liegt stets im gleichen Verzeichnis, wie die Hauptdatei mit ""
  Dateiname = Worksheets("Tabelle2").Range("D109").Text ' In D109 steht: [Wb1.xlsm]  Die Datei heißt: Wb1.xlsm. Auch mit D108 probiert, wo Wb1.xlsm als Zellinhalt steht.
  Blatt = "Tabelle2"  ' von welcher Tabelle soll er holen?
  Bereich = "A6:A40"   ' aus welchem Bereich soll er holen?
  Set Ziel = Worksheets("Tabelle1").Range("A6")  ' in welchen Bereich soll er kopieren? Genauer gesagt: Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
  If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then
     MsgBox "Daten importiert"
  End If
  'Worksheets("Tabelle1").Range("A6:A40").Value = Workbook("Tabelle2!D109").Worksheets("Tabelle2").Range("A6:A40").Value
End Sub

PS: Die Function GetDataClosedWB mußt natürlich auch in das Modul einfügen.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#14
Hallo Julia

ich habe den Code gerade in einer Test Datei nachgestellt und noch einen dummen Fehler entdeckt.  Prüfe die Richtigkeit der Tabellen bitte selbst noch einmal nach!  In welcher Mappe ist Tabelle1, in welcher Mappe Tabelle2?  Hier der Fehler:  -  Wenn ich in Tabelle1 kopieren will, und dier Datei Name in Zelle D109 steht, sollte man als Worksheet auch Tabelle1 angeben!  Sonst holt man einen Leerwert aus Tabelle2 !! 
Nur zum Prüfen kann man auch eine MsgBox einfügen, dann sieht man sofort welchen Wert "ExMappe" hat.

Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("Tabelle1").Range("D109").Value
MsgBox ExMappe   '** nur zum Testen, danach wieder löschen !!
ThisWorkbook.Worksheets("Tabelle1").Range("A6:A40").Value = _
Workbooks(ExMappe).Worksheets("Tabelle2").Range("A6:A40").Value
End Sub

Prüfe bitte selbst noch einmal ob alle Angaben richtig stimmen, auch Zelle D109!! Was steht da drin??  Würde mich frenen wennn es jetzt klappt. 

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • o0Julia0o
Antworten Top
#15
Dein Code funktioniert jetzt Steffl! :) thx

Dankeschön Gast 123. Bei deinem Code bleibt der Fehler. Das Messagebox-Ergebnis lautet: Wb1.xlsm

Danach werden folgende beiden Zeilen gelb markiert:

Code:
ThisWorkbook.Worksheets("Tabelle1").Range("A6:A40").Value = _

Workbooks(ExMappe).Worksheets("Tabelle2").Range("A6:A40").Value
Fehlermeldung: "Index außerhalb des gütligen Bereichs"

Habe es mal so gemacht zum Test:

Code:
Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("[b]Namentabelle[/b]").Range("D109").Value
MsgBox ExMappe   '** nur zum Testen, danach wieder löschen !!
ThisWorkbook.Worksheets("Hiereintabelle").Range("A6:A40").Value = _
Workbooks(ExMappe).Worksheets("Vonhiertabelle").Range("A6:A40").Value
End Sub
Vonhiertabelle -> von hier sollen die Werte genommen werden.
Hiereintabelle -> hierhin sollen die Werte geschrieben werrden.
Namentabelle -> hier steht der Dateiname wovon die Werte genommen werden sollen

Alle Tabellen sind in beiden Dateien vorhanden.
Antworten Top
#16
Hallo Julia,

bei der Variante von Gast123: Hast du die Datei geöffnet wenn die Fehlermeldung kommt? Wenn nein ist es klar die muss offen sein.

Gruß Stefan
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • o0Julia0o
Antworten Top
#17
oh, hatte ich dann irgendwann vergessen mitzutesten. Dann werden aber ebenfalls die beiden Zeilen(vor End Sub) gelb markiert. Und es kommt stattdesse aber: "'Laufzeitfehler 424' Objekt erforderlich".
Antworten Top
#18
Hallo Julia,

ich habe mal versucht das bei mir nachzubauen. Es hat geklappt. Die Daten wurden übernommen, wenn beide Dateien offen waren. Warum bei dir die Fehlermeldung kommt, kann man ohne die Datei nicht sagen.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • o0Julia0o
Antworten Top
#19
Hast du diesen Code benutzt?


Code:
Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("[b]Namentabelle[/b]").Range("D109").Value
MsgBox ExMappe   '** nur zum Testen, danach wieder löschen !!
ThisWorkbook.Worksheets("Hiereintabelle").Range("A6:A40").Value = _
Workbooks(ExMappe).Worksheets("Vonhiertabelle").Range("A6:A40").Value
End Sub
Antworten Top
#20
Hallo Julia,

genau den habe ich verwendet. (Natürlich ohne das b in den eckigen Klammen). Falscher Tabellennamen kann es nicht sein, da sollte eine anderer Laufzeitfehler kommen. Hast Du in der Makrodatei vielleicht noch Ereignismakros?
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • o0Julia0o
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste