Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Einen Platzhalter einsetzen.

Einen Platzhalter einsetzen.
17.01.2013 22:14:38
Golem
Hallo Excel-Fachleute,
ich benötige wieder Eure Hilfe.
Ich habe ein Verzeichnis aus dem Jahr 2011 kopiert. Darin ist eine Datei "Zahlungen ET 2011_Masterdatei.xlsm"
und 48 weitere Dateien mit den Namen "Zahlungen ET 2011_Wgn 01 bis Whn 48".
Der Name diese Masterdatei wird mit der neuen Jahreszahl 2012 versehen. Weiterhin werden in dieser Masterdatei mehrere verschiedene Änderungen in Zellen
vorgenommen ( alles numerische Werte ). Diese Werte werden in den anderen Dateien benötigt.
Danach wird die Datei Zahlungen ET 2011_Wgn 01 mit der Jahreszahl 2012 umbenannt, geöffnet und es werden mit folgenden Code die Werte aus
der geschlossenen Masterdatei in das Tabellenblatt Funktionskalender übernommen ( vor der Wertübernahme wird noch durch eine MsgBox eine Abfrage
vorgenommen ):
Private Sub CommandButton1_Click()
' Werte aus geschlossenen Dateien einlesen
Dim strVerzeichnis1 As String
Dim strVerzeichnis2 As String
Dim strDatei1 As String
Dim strDatei2 As String
Dim strTabellenblatt As String
Dim strBereich1 As String
'Wenn das Jahr Dateiname und das Jahr "Zahlung des ET....." gleich, dann Werte einlesen
If MsgBox(" Sollen Werte aus Dateien eingelesen werden ?" & vbCr _
& vbCr & "Wenn das Jahr Dateiname und das Jahr Zahlung des ET..... gleich," & vbCr _
& vbCr & " dann Ja, sonst Nein!", vbYesNo + vbQuestion) = vbYes Then
Hier ein Beispiel für den Jahreswert 2012, der in die Zelle D3 kopiert werden soll.
strVerzeichnis1 = "='C:\Dokumente und Einstellungen\Werner\Desktop\"
strVerzeichnis2 = "Zahlungen ET_" & Range("G6").Value
strDatei1 = "\[Zahlungen ET " & Range("G6").Value
strDatei2 = "_Masterdatei]"
strTabellenblatt = "Funktionskalender'!"
strBereich1 = ("D3")
'Datum in Zielzelle "Funktionskalender" schreiben
With ActiveWorkbook.Worksheets("Funktionskalender").Range("D3")
'Adresse der auszulesenden Zelle
.Formula = strVerzeichnis1 & strVerzeichnis2 & strDatei1 & strDatei2 & strTabellenblatt & strBereich1
.Value = .Value
Hier der Gesamtpfad:
='C:\Dokumente und Einstellungen\Werner\Desktop\Zahlungen ET_2012\[Zahlungen ET 2012_Masterdatei.xlsm]Funktionskalender'!$D$3
Die Jahreszahlen in Range("G6") wurde eingegeben.
Wenn die Jahreszahl nicht mit der Jahreszahl im Pfad übereinstimmt, dann können keine Werte übernommen werden
Wie kann die Jahreszahl in Range("G6") durch einen sogenannten Platzhalter ausgetauscht werden kann? Ich habe es mit Range("*") oder Range(?)
versucht, aber es funktioniert nicht.
Wenn die Jahreszahlen durch Platzhalter ausgetauscht worden sind, besteht dir Gefahr, dass, wenn die Jahreszahlen Datei Zahlungen ET 2011_Wgn 01 noch nicht
geändert worden ist, in diese Datei die Werte aus der Masterdatei übernommen werden und andere Werte in dieser Datei noch für 2011 gültig sind.
Darf nicht passieren!
Ich habe versucht durch eine Sicherheitsabfrage dieses zu verhindern:
'Wenn das Jahr Dateiname und das Jahr "Zahlung des ET....." gleich, dann Werte einlesen
If MsgBox(" Sollen Werte aus Dateien eingelesen werden ?" & vbCr _
& vbCr & "Wenn das Jahr Dateiname und das Jahr Zahlung des ET..... gleich," & vbCr _
& vbCr & " dann Ja, sonst Nein!", vbYesNo + vbQuestion) = vbYes Then
If ActiveWorkbook.Worksheets("Zahlungen ET 2011_Wgn 01).Range("D6") = strVerzeichnis1 & strVerzeichnis2 & strDatei1 & strDatei2 & strTabellenblatt & strBereich1 Then
MsgBox("Jahreszahl ist in Ordnung", vbYesNo + vbQuestion) = vbYes Then
Code ausführen.
If ActiveWorkbook.Worksheets("Zahlungen ET 2011_Wgn 01).Range("D6") strVerzeichnis1 & strVerzeichnis2 & strDatei1 & strDatei2 & strTabellenblatt & strBereich1 Then
MsgBox("Jahreszahl ist nicht in Ordnung", vbYesNo + vbQuestion) = vbNo Then
Exit Sub
Diese Sicherheitsabfrage bekomme ich aber nicht erstellt.
Für evtl. Tipps oder Anregungen schon mal besten Dank!
Golem

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
unübersichtlich ....
18.01.2013 09:27:52
Klaus
Hallo "Golem",
viele (nicht alle) hier im Forum bevorzugen es, sich mit Realnamen oder zumindest Vornamen anzusprechen. Damit erhöhst du deine Chancen, eine schnelle und kompetente Antwort zu bekommen. Falls du tatsächlich Golem heisst (gibt ja vieles), entschuldige ich mich hiermit.
Dein Beitrag ist kaum lesbar. Es kommt Code, Text, Code, Text ... sei doch bitte so gut und formatiere die Codefetzen mit ~f~ Code ~f~ und/oder setze ' vor deine Kommentare im Code, damit man ihn sich eben ins eigene Excel kopieren kann ohne groß rumzuändern.
in deinem Code fehlt ein " nach _Wgn_01
If ActiveWorkbook.Worksheets("Zahlungen ET 2011_Wgn 01).Range("D6") = strVerzeichnis1 &  _
strVerzeichnis2 & strDatei1 & strDatei2 & strTabellenblatt & strBereich1 Then
MsgBox("Jahreszahl ist in Ordnung", vbYesNo + vbQuestion) = vbYes Then
Desweiteren verstehe ich die Frage schlicht nicht, dass kann am unübersichtlichen Beitrag liegen. Was meinst du mit "Platzhalter"?
habe es mit Range("*") oder Range(?)
Also, in Range G6 steht irgendwas (eine Jahreszahl). Was soll da durch einen Platzhalter getauscht werden und warum? dass range("*") und range(?) nicht gehen ist klar, range(hallo_welt) wird ebensowenig funktionieren. wie es RICHTIG geht kann ich dir leider nicht sagen, da ich keinen schimmer habe was du erreichen willst.
Offensichtlich braucht es irgendwoher eine Jahreszahl. Woher kommt die (=woher kommt der Platzhalter), wenn nicht aus G6?
Grüße,
Klaus M.vdT.

Anzeige
AW: unübersichtlich ....
18.01.2013 13:09:48
Golem
Hallo Klaus M.vdT.,
mein Name ist Werner Golembiewski.
Sicherlich kann ich auch meinen Vornamen verwenden ( werde ich auch in Zukunft so handhaben ). Der Name "Golem" kommt daher,
dass mich seit fast 60 Jahren größtenteils meine Freunde, Bekannten, Arbeitskollegen usw. "Golem" nennen ( Abkürzung von Golembieswki ). Meine Frau wird größtenteils von ihren Arbeitskolleginnen "Golli" genannt und unser Sohn auch wieder größtenteils "Golem". Ist von uns nicht so ausgesucht worden.
Ich habe versucht, durch eine aufwendigere Beschreibung auch die Möglichkeit zu geben ( wenn evtl. mein Weg so nicht gelöst
werden kann ), einen evtl. anderen Lösungsvorschlag zu ermöglichen.
Meine Frage geht dahin, ob dieser Pfad auch funktionieren könnte ( um aus der Zelle $D$3 den Wert zu bekommen ) :
='C:\Dokumente und Einstellungen\Werner\Desktop\Zahlungen ET_2012\[Zahlungen ET 2012_Masterdatei.xlsm]Funktionskalender'!$D$3
wenn die Jahreszahl 2012 durch z.B. "*" ( oder auch evtl. andere Zeichen ) ersetzt werden könnte. Es geht darum, die Jahreszahl in dem Pfad
evtl. wegzulassen, oder durch eine neutrale Bezeichnung zu ergänzen, um trotzdem auf die Zelle $D$3 zugreifen zu können.
Diese jetzige Jahreszahl wird bisher händisch über eine Zelle G6 in den Pfad eingegeben
so:
.strVerzeichnis1 = "='C:\Dokumente und Einstellungen\Werner\Desktop\"
strVerzeichnis2 = "Zahlungen ET_" & Range("G6").Value
strDatei1 = "\[Zahlungen ET " & Range("G6").Value
strDatei2 = "_Masterdatei]"
strTabellenblatt = "Funktionskalender'!"
strBereich1 = ("D3")
In der Vergangenheit ist es schon vorgekommen, dass es vergessen worden ist, die Jahreszahl anzupassen.
Schöne Grüße
Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige