Supportnet Computer
Planet of Tech

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

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

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.

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 = False


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.

Antwort 4 von piano

Hallo
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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: