Supportnet / Forum / Tabellenkalkulation
Workbook aktivieren über (variable) Pfadangabe in einem Textfeld
Frage
Hi Leute,
habe schon wieder ein Problem:
Ich möchte ein Workbook aktivieren (nicht öffnen, da es schon geöffnet ist!) über die komplette Pfadangabe in einem Textfeld.
...
Application.Workbooks.Open (TextBox1.Value)
Worksheets("x1").Select
ActiveSheet.Range("C86:N95").Copy
Workbooks("y").Activate
Worksheets("y1").Select
ActiveSheet.Range("F26:Q35").PasteSpecial (xlPasteValues)
...
es sollen Daten aus einem Workbook kopiert und in ein anderes eingefügt werden. Beim Öffnen der Datei funktioniert der Bezug zur TextBox1. Das zweite Workbook hatte zuerst einen bestimmten Namen ("y") (siehe oben), soll nun aber auch variabel über den Pfad in einem Textfeld aktiviert werden.
Wie krieg´ ich das hin?
Schonmal vielen Dank für Eure Mühen und Tipps!
Gruß,
Richie
Antwort 1 von JoeKe
Hallo Richie,
zunächst erstmal auf "Select" und "Activate" kann in den meisten Fällen versichtet werden.
Option Explicit
Sub Textbox()
Dim Zieldatei As String, Quelldatei As String
Quelldatei = ActiveSheet.TextBox1.Value
Zieldatei = ActiveSheet.TextBox2.Value
Application.Workbooks.Open (Quelldatei)
Worksheets("x1").Range("C86:N95").Copy
Workbooks(Zieldatei).Worksheets("y1").Range("F26:Q35").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
MfG
JöKe
zunächst erstmal auf "Select" und "Activate" kann in den meisten Fällen versichtet werden.
Option Explicit
Sub Textbox()
Dim Zieldatei As String, Quelldatei As String
Quelldatei = ActiveSheet.TextBox1.Value
Zieldatei = ActiveSheet.TextBox2.Value
Application.Workbooks.Open (Quelldatei)
Worksheets("x1").Range("C86:N95").Copy
Workbooks(Zieldatei).Worksheets("y1").Range("F26:Q35").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
MfG
JöKe
Antwort 2 von nighty
hi all :)
liesse sich leicht auf eine zeile reduzieren da die bereiche gleichgross sind,einfacher waere hier a=b
gruss nighty
liesse sich leicht auf eine zeile reduzieren da die bereiche gleichgross sind,einfacher waere hier a=b
gruss nighty
Antwort 3 von JoeKe
stimmt!!
Aber da Richie nicht den kompletten Code gepostet hat, weiß ich nicht was da noch geschieht. ;-)
gruß
JöKe
Aber da Richie nicht den kompletten Code gepostet hat, weiß ich nicht was da noch geschieht. ;-)
gruß
JöKe
Antwort 4 von Richie20...
Hi leute,
Ich hab´s nun mit folgendem Code probiert; scheint mir auch eigentlich logisch zu sein (auch wenn ich nicht viel Ahnung von VBA habe ;-)):
Dim Zieldatei As String
Dim Quelldatei As String
Quelldatei = ActiveSheet.TextBox2.Value
Zieldatei = ActiveSheet.TextBox3.Value
Application.Workbooks.Open (Quelldatei)
Worksheets("x").Range("C73:N82").Copy
Workbooks(Zieldatei).Worksheets("y").Range("T10:AE19").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
...allerdings bekomme ich nun in der fetten Zeile (s.o) eine Fehlermeldung (Laufzeitfehler ´9´).
Ich kann mir nicht erklären, warum!
Wäre sehr dankbar, wenn Ihr noch nen Tipp für mich hättet!
Viele Grüße,
Richie
Ich hab´s nun mit folgendem Code probiert; scheint mir auch eigentlich logisch zu sein (auch wenn ich nicht viel Ahnung von VBA habe ;-)):
Dim Zieldatei As String
Dim Quelldatei As String
Quelldatei = ActiveSheet.TextBox2.Value
Zieldatei = ActiveSheet.TextBox3.Value
Application.Workbooks.Open (Quelldatei)
Worksheets("x").Range("C73:N82").Copy
Workbooks(Zieldatei).Worksheets("y").Range("T10:AE19").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
...allerdings bekomme ich nun in der fetten Zeile (s.o) eine Fehlermeldung (Laufzeitfehler ´9´).
Ich kann mir nicht erklären, warum!
Wäre sehr dankbar, wenn Ihr noch nen Tipp für mich hättet!
Viele Grüße,
Richie
Antwort 5 von Richie20...
...fette Zeile soll eigentlich erst bei "Workbooks(Zieldatei)" beginnen...;-)
Antwort 6 von JoeKe
Hallo Richie,
was steht denn in der Fehlermeldung noch ausser der Laufzeitfehler 9 ?
Gruß
was steht denn in der Fehlermeldung noch ausser der Laufzeitfehler 9 ?
Gruß
Antwort 7 von Richie20...
..."Index außerhalb des gültigen Bereichs"...
Viele Grüße
Viele Grüße
Antwort 8 von JoeKe
Hallo Richie,
das deutet daraufhin das du entweder den Dateinamen in der Textbox falsch eingegeben hast oder im Code der Blattname falsch ist (im ersten Post hieß das Blatt z.B. x1 und y1) bzw. eins von beiden nicht vorhanden ist.
Überprüf alles danach nochmal.
Gruß
JöKe
das deutet daraufhin das du entweder den Dateinamen in der Textbox falsch eingegeben hast oder im Code der Blattname falsch ist (im ersten Post hieß das Blatt z.B. x1 und y1) bzw. eins von beiden nicht vorhanden ist.
Überprüf alles danach nochmal.
Gruß
JöKe
Antwort 9 von nighty
hi all :)
etwas in der art dacht ich :)
gruss nighty
Sub Textbox()
Workbooks(Workbooks(1).Sheets(1).TextBox2.Value).Worksheets(2).Range("F26:Q35") = Worksheets(1).Range("C86:N95")
End Sub
etwas in der art dacht ich :)
gruss nighty
Sub Textbox()
Workbooks(Workbooks(1).Sheets(1).TextBox2.Value).Worksheets(2).Range("F26:Q35") = Worksheets(1).Range("C86:N95")
End Sub
Antwort 10 von Richie20...
Hi Leute,
Problem ist wahrscheinlich, dass in meiner Textbox3 (Zieldatei) nicht nur der Dateiname (Bsp. X.xls) drinsteht, sondern der komplette Pfad! ...ich habe den Verdacht, dass sich das nicht mit "Workbooks(Zieldatei)" verträgt. Wenn ich nämlich manuell nur den Dateiname (X.xls) ohne Pfad in die Textbox eintrage, übernimmt mir Excel die Daten, wie ich´s will.
Wobei ich dann auf´s nächste Problem gestoßen bin:
Ich muss nicht nur einen Bereich der Quelldatei übernehmen, sondern mehrere; und schon bei der zweiten Übernahme bekomme ich dann mit oben beschriebener Methode auch wieder ne Fehlermeldung an gleicher Stelle.
...wahrscheinlich ist mir nicht mehr zu helfen ;-)
(habe leider keine Vorkenntnisse in VBA und hangele mich jetzt von Problemchen zu Problemchen; aber ich werd´s noch irgendwie hinkriegen :-)!)
Trotzdem bis hierhin schonmal vielen Dank!!! Ihr habt mir auf jeden Fall weitergeholfen!
Viele Grüße,
Richie
Problem ist wahrscheinlich, dass in meiner Textbox3 (Zieldatei) nicht nur der Dateiname (Bsp. X.xls) drinsteht, sondern der komplette Pfad! ...ich habe den Verdacht, dass sich das nicht mit "Workbooks(Zieldatei)" verträgt. Wenn ich nämlich manuell nur den Dateiname (X.xls) ohne Pfad in die Textbox eintrage, übernimmt mir Excel die Daten, wie ich´s will.
Wobei ich dann auf´s nächste Problem gestoßen bin:
Ich muss nicht nur einen Bereich der Quelldatei übernehmen, sondern mehrere; und schon bei der zweiten Übernahme bekomme ich dann mit oben beschriebener Methode auch wieder ne Fehlermeldung an gleicher Stelle.
...wahrscheinlich ist mir nicht mehr zu helfen ;-)
(habe leider keine Vorkenntnisse in VBA und hangele mich jetzt von Problemchen zu Problemchen; aber ich werd´s noch irgendwie hinkriegen :-)!)
Trotzdem bis hierhin schonmal vielen Dank!!! Ihr habt mir auf jeden Fall weitergeholfen!
Viele Grüße,
Richie
Antwort 11 von Richie20...
...Kommando zurück!!! Habe den Fehler gefunden!!!
Funktioniert jetzt einwandfrei!!!
Vielen Dank!!!
Gruß,
Richie
Funktioniert jetzt einwandfrei!!!
Vielen Dank!!!
Gruß,
Richie

