Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
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:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28
• o0Julia0o
Registriert seit: 08.07.2016
Version(en): 2016
20.03.2017, 23:29
(Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2017, 23:29 von o0Julia0o.)
(20.03.2017, 19: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.
Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
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).ValueJetzt 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
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
Hallo Stefan
Danke, stimmt, du warst sehr aufmerksam. Die dummen kleinen Flüchtigkeitsfehler! Korrekt ist: Next j
mfg Gast 123
Registriert seit: 08.07.2016
Version(en): 2016
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
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 08.07.2016
Version(en): 2016
23.03.2017, 18:47
(Dieser Beitrag wurde zuletzt bearbeitet: 23.03.2017, 18:47 von o0Julia0o.)
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.
Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
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
Registriert seit: 08.07.2016
Version(en): 2016
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.
|