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
#21
Hallo Julia

ich sehe an deinem Code das du vielleicht Workbook Namen verwendest. Wenn ja nimm mal ein leeres Blatt und liste mit dem unteren Code alle Workbook Namen auf. Schau mal ob irgendwo in der Referenz ein "#REF" vokommt. Dann ist an der Stelle der Bezug verloren gegangen. Ansonsten hat der Code ja bei Stefan funktioniert. Aber wenn du staendig Fehlermeldungen hast muss es ja irgendwo dran liegen. Prüfe bitte mal die Referenzen nach.  

mfg Gast 123

Code:
'Workbook Namen auflisten
Sub Names_auflisten()
  For i = 1 To ThisWorkbook.Names.Count
     Cells(i + 2, 1) = i
     Cells(i + 2, 2) = ThisWorkbook.Names(i).Name
     Cells(i + 2, 3) = " ' " & ThisWorkbook.Names(i).RefersTo
  Next i
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • o0Julia0o
Antworten Top
#22
(20.03.2017, 18:39)Steffl schrieb: 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?
Zumal ja der Dateiname bei mir richtig in der Messagebox ausgegeben wird. Ich habe die Ereignismakros von Hiereintabelle & von Vonhiertabelle mal herausgenommen. Bzw. bei Vonhiertabelle gab es gar kein Ereignismakro. Der Fehler bleibt bestehen.

Naja, halb so wild - denn dein Makro funktioniert ja & arbeit ja sogar mit geschlossenen Dateien zusammen. Aber wäre halt gut gewesen, für geöffnete eine andere einfache Variante zu haben.

@Gast123
Wenn ich deinen Code ausführe passiert nix.
Antworten Top
#23
Hallo Julia

ich habe noch ein Angebot für dich, indem man die Daten einzeln als For Next Schleife kopiert.  Ist technisch zwar doof, wenn es aber funktioniert spielt das sicher keine Rolle.  Sollte das Programm auch stehen bleiben dann schau bitte mal ob wenigstens einige Daten kopiert wurden, und ab wo Excel aussteigt? Dafür gibt es noch eine Erklaerung:  Könnten in den Daten Formeln vorkommen oder am Text Anfang ein "=" Gleichheitszeichen stehen??  Dann ist klar warum es nicht klappt und Excel abstürzt.  Dafür gibt es auch noch eine Lösung, vor den zu kopierenden Text ein Semikolon setzen, z.B. so:  
  ThisWorkbook.Worksheets("Tabelle1").Cells(j, 1).Value = "'" & _
  Workbooks(ExMappe).Worksheets("Tabelle2").Cells(j, 1).Value

Jetzt warte ich erst mal ab ob du noch etwas heraus findest.

mfg  Gast 123

Code:
Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("Tabelle1").Range("D109").Value
For j = 6 To 40
  ThisWorkbook.Worksheets("Tabelle1").Cells(j, 1).Value = _
  Workbooks(ExMappe).Worksheets("Tabelle2").Cells(j, 1).Value
Next AC
End Sub
Antworten Top
#24
Hallo Gast123,

Code:
For j = 6 To 40
   ThisWorkbook.Worksheets("Tabelle1").Cells(j, 1).Value = _
   Workbooks(ExMappe).Worksheets("Tabelle2").Cells(j, 1).Value
Next AC

hier hast du noch einen kleinen Fehler drin For j und Next AC.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#25
Hallo Stefan

Danke, stimmt, du warst sehr aufmerksam.  Die dummen kleinen Flüchtigkeitsfehler!  Korrekt ist:  Next j

mfg  Gast 123
Antworten Top
#26
Danke!! Ich hatte ThisWorkbooks geschrieben. Jetzt kommt keine Fehlermeldung mehr, aber kopieren tut er auch nix(beide Arbeitsmappen sind geöffnet).
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

Ich erhalte bei Ausführung: "Ungültiger Verweis auf Next-Stuervariable". Dabei wird AC markiert & dann Sub KopieVonExtern() gelb markiert:
Code:
Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("[b]Namentabelle[/b]").Range("D109").Value
MsgBox ExMappe   '** nur zum Testen, danach wieder löschen !!
For j = 6 To 40
   ThisWorkbook.Worksheets("Hiereintabelle").Cells(j, 1).Value = _
   Workbooks(ExMappe).Worksheets("Vonhiertabelle").Cells(j, 1).Value
Next AC
End Sub

Wenn ich aus dem For ein Next mache schreibt er: Erwartet Listentrennzeichen oder Anweisungsende in roter Schrift wird die Zeile dann markiert:
Code:
Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("[b]Namentabelle[/b]").Range("D109").Value
MsgBox ExMappe   '** nur zum Testen, danach wieder löschen !!
Next j = 6 To 40
   ThisWorkbook.Worksheets("Hiereintabelle").Cells(j, 1).Value = _
   Workbooks(ExMappe).Worksheets("Vonhiertabelle").Cells(j, 1).Value
Next AC
End Sub
Antworten Top
#27
Hi Julia,

:20: :20: :20:

Code:
Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("[b]Namentabelle[/b]").Range("D109").Value
MsgBox ExMappe   '** nur zum Testen, danach wieder löschen !!
For j = 6 To 40
   ThisWorkbook.Worksheets("Hiereintabelle").Cells(j, 1).Value = _
   Workbooks(ExMappe).Worksheets("Vonhiertabelle").Cells(j, 1).Value
Next j   'hier muss es geändert werden! Excel hat dir doch das schon angezeigt :-(
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#28
hi Stefan,

danke - also ohne die bold-Dinger:


Code:
Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("Namentabelle").Range("D109").Value
MsgBox ExMappe   'zeigt mir den korrekten Dateinamen an. Diese Datei habe ich ebenfalls geöffnet.
For j = 6 To 40
   ThisWorkbook.Worksheets("Hiereintabelle").Cells(j, 1).Value = _
   Workbooks(ExMappe).Worksheets("Vonhiertabelle").Cells(j, 1).Value
Next j
End Sub
Das ändert aber weiter nichts. Es kommt kein Fehler, aber es wir auch nichts kopiert.
Antworten Top
#29
Hallo Julia

entschuldige die höfliche Frage:  hast du dir den Code genau angesehen??  Wir schreiben manchmal statt der echten Tabellen Namen einen Symbolischen Namen, damit du verstehen sollst welcher Original Name da hingehört. Ich zeige es dir im Zitat:  Ich glaube nicht das deine Original Tabellen  "Hierrenitabelle" und "vonhiertabelle" heissen, oder irre ich mich da??  Diese Namen musst du bitte selbst ergaenzen!!  Stimmt denn der Tabellen Name:  "Namentabelle"??  
"Hierrein" İst die Zieltabelle, "vonhier" die Quelltabelle  Ich hoffe das es nach einer Korrektur endlich klappt.  Die MsgBox habe ich wegelassen!

mfg  Gast 123

Zitat:Sub KopieVonExtern()
ExMappe = ThisWorkbook.Worksheets("Namentabelle").Range("D109").Value
For j = 6 To 40
   ThisWorkbook.Worksheets("Hiereintabelle").Cells(j, 1).Value = _
   Workbooks(ExMappe).Worksheets("Vonhiertabelle").Cells(j, 1).Value
Next j
End Sub
Antworten Top
#30
Hi, danke für die Info. Ich habe die Namen ja so benannt. Damit man sieht, woher die Daten kommen und wohin sie sollen. Die sind natürlich durch den richtigen Tabellennamen ersetzt. Daher kann auch die Datei per MsgBox ja u.a. richtig ausgegeben werden. Also daran liegt es leider nicht.
Antworten Top


Gehe zu:


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