Supportnet / Forum / Tabellenkalkulation
Makro, das zwischen zwei Dateien wechselt?
Frage
Hi Leute,
mein Problem ist wie folgt:
Ich habe ein Makro, das Daten aus einem standardisiertem Formular in immer die gleiche Datei kopiert. Wenn sich jetzt aber der Dateiname des Formulars ändert (jeder speichert es unter einem anderen Namen), funktioniert mein Makro nich mehr!
Frage: Kann ich das aktuell geöffnete Excel als Variable gestalten, sodass das Makro wieder zum Ausgangspunkt zurück findet?
Ich hoffe es ist alles klar!
Vielen Dank für Eure Unterstützung,
sic
yours Goalie
Antwort 1 von rainberg
Hallo,
ich bin zwar kein VBA-Fachman, aber ohne deinen Code hier zu posten, wird dir auch kein Spezialist helfen können und wollen.
Gruß
Rainer
ich bin zwar kein VBA-Fachman, aber ohne deinen Code hier zu posten, wird dir auch kein Spezialist helfen können und wollen.
Gruß
Rainer
Antwort 2 von Portiere
Hallo!
Gut, daran soll es nicht scheitern!
Also ich habs versucht mit:
Workbooks.Open Filename:= _
"F:\Daten\Alle\Meldung\\Konditionsmeldung_Data.xls"
ActiveSheet.Unprotect "test"
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Windows("Konditionsmeldung_Makro.xls").Activate
Range("G7").Select
Selection.Copy
Windows("Konditionsmeldung_Data.xls").Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveCell.Offset(0, 1).Select
Windows("Konditionsmeldung_Makro.xls").Activate
Application.CutCopyMode = False
Da das "Konditionsmeldung_Makro.xls" aber nicht immer gleich heißt, brauche ich das als variablen Teil!
Vielen Dank,
liebe Grüße
Goalie
Gut, daran soll es nicht scheitern!
Also ich habs versucht mit:
Workbooks.Open Filename:= _
"F:\Daten\Alle\Meldung\\Konditionsmeldung_Data.xls"
ActiveSheet.Unprotect "test"
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Windows("Konditionsmeldung_Makro.xls").Activate
Range("G7").Select
Selection.Copy
Windows("Konditionsmeldung_Data.xls").Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveCell.Offset(0, 1).Select
Windows("Konditionsmeldung_Makro.xls").Activate
Application.CutCopyMode = False
Da das "Konditionsmeldung_Makro.xls" aber nicht immer gleich heißt, brauche ich das als variablen Teil!
Vielen Dank,
liebe Grüße
Goalie
Antwort 3 von coros
HiGoalie,
so ganz verstehe ich das nicht. Wenn Du durch die Zeile
Workbooks.Open Filename:= _
"F:\Daten\Alle\Meldung\\Konditionsmeldung_Data.xls"
die Datei "Konditionsmeldung_Data.xls" öffnest, heißt die geöffnete und aktuelle Datei doch "Konditionsmeldung_Data.xls"? Warum dann den Dateinamen variabel halten? Aber egal, Du wirst schon wissen, warum das nicht so sein soll. Versuch es mal mit nachfolgendem Code. Dort muss der Dateiname in einer Inputbox vorher eingegeben werden. Eventuell hilft Dir das ja schon mal weiter.
Bei Fragen oder Problemen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
so ganz verstehe ich das nicht. Wenn Du durch die Zeile
Workbooks.Open Filename:= _
"F:\Daten\Alle\Meldung\\Konditionsmeldung_Data.xls"
die Datei "Konditionsmeldung_Data.xls" öffnest, heißt die geöffnete und aktuelle Datei doch "Konditionsmeldung_Data.xls"? Warum dann den Dateinamen variabel halten? Aber egal, Du wirst schon wissen, warum das nicht so sein soll. Versuch es mal mit nachfolgendem Code. Dort muss der Dateiname in einer Inputbox vorher eingegeben werden. Eventuell hilft Dir das ja schon mal weiter.
Dim Dateiname As String
Dateiname = InputBox("Bitte Dateinamen eingeben")
If Dateiname = "" Then Exit Sub
Workbooks.Open Filename:= _
"F:\Daten\Alle\Meldung\" & Dateiname & ".xls"
ActiveSheet.Unprotect "test"
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Windows(Dateiname).Activate
Range("G7").Select
Selection.Copy
Windows(Dateiname).Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveCell.Offset(0, 1).Select
Windows(Dateiname).Activate
Application.CutCopyMode = FalseBei Fragen oder Problemen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von piano
Hallo
Versuch es mit "Inputbox"!
Mit mehr Angaben ginge es vielleicht noch eleganter!
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -
Versuch es mit "Inputbox"!
Workbooks.Open Filename:= _
"F:\Daten\Alle\Meldung\\Konditionsmeldung_Data.xls"
ActiveSheet.Unprotect "test"
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
KName = InputBox("Geben Sie den Dateinamen ein!", , "Konditionsmeldung_Makro.xls")
Windows(KName).Activate
Range("G7").Select
Selection.Copy
Windows("Konditionsmeldung_Data.xls").Activate
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveCell.Offset(0, 1).Select
Windows(KName).Activate
Application.CutCopyMode = False
Mit mehr Angaben ginge es vielleicht noch eleganter!
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -
Antwort 5 von Portiere
Hi,
danke Piano - so gehts perfekt! Ich hab anstatt einer Input-Box einfach den Wert einer Zelle verwendet, in die ich die Formel Zelle("Dateiname") eingeben lasse!
Mit der Variable funktioniert das prächtig!
Oliver, auch dir vielen Dank!
Gruß an alle,
yours Goalie
danke Piano - so gehts perfekt! Ich hab anstatt einer Input-Box einfach den Wert einer Zelle verwendet, in die ich die Formel Zelle("Dateiname") eingeben lasse!
Mit der Variable funktioniert das prächtig!
Oliver, auch dir vielen Dank!
Gruß an alle,
yours Goalie

