uliegger
Goto Top

externen Bezug variabel gestalten

Hallo zusammen,

ich habe ein Problem mit einem externen Bezug in Excel.

Ich möchte einen möglichst weitgehend automatischen Pausenplan für meine Mitarbeiter erstellen. In diesem Plan sollen die Anfangszeiten und Endzeiten inkl. der entsprechenden Pausenzeiten erfasst werden. Das Ganze wird im Moment automatisch aus der eigentlichen Einsatzplanung, die auch mit Excel erstellt wird, übernommen.

Die eigentlichen Bezüge zu den extrenen Daten habe ich gelöst. Um den Plan für die nächste Woche vorzubereiten nutze ich im Moment die Suchen/Ersetzen-Funktion.
Nun möchte ich aber diesen Plan möglichst nur mit Eintragen der entsprechenden Kalenderwoche in eine Zelle automatisieren.

Der momentane Zellbezug sieht wie folgt aus:

='D:\Testpep\[MW1.xls]Eingabe Personalplanung'!C32

Nun soll, wenn möglich, der Teil "MW1" durch den Eintrag in der Zelle "Pausenplan!F25" (z.B. KW45) ersetzt werden, bzw. variabel gehalten werden.

Ich hoffe, dass ich die Fragestellung deutlich genug beschrieben habe.

Vielen Dank schon mal

Uli

Content-ID: 100818

Url: https://administrator.de/contentid/100818

Ausgedruckt am: 15.11.2024 um 21:11 Uhr

bastla
bastla 02.11.2008 um 17:08:11 Uhr
Goto Top
Hallo uliegger und willkommen im Forum!

Sollte sich etwa so machen lassen:
=INDIREKT("'D:\Testpep\[" & Pausenplan!F25 & ".xls]Eingabe Personalplanung'!C32")
Grüße
bastla
uliegger
uliegger 02.11.2008 um 22:16:29 Uhr
Goto Top
Hallo bastla,

vielen Dank für das Wilkommen und auch danke für die direkte Antwort.

Die Formel funktioniert soweit, aber leider muss ich dazu ja wohl immer die Ursprungsdatei offen haben, oder?!?
Geht das auch für nicht geöffnete Dateien?

Gruß Uli
bastla
bastla 03.11.2008 um 10:41:58 Uhr
Goto Top
Hallo uliegger!

Die Formel funktioniert soweit, aber leider muss ich dazu ja wohl immer die Ursprungsdatei offen haben, oder?!?
Scheint so face-sad

Einen Test mit geschlossener Zieldatei hatte ich leider nicht durchgeführt ...

Grüße
bastla
uliegger
uliegger 03.11.2008 um 19:59:23 Uhr
Goto Top
Hallo bastla,

gibt es denn irgendwie die Möglichkeit, dass ich die aktuelle Kalenderwoche in eine Zelle eintrage und dann vielleicht per Button die Änderungen übernommen werden. Ich habe leider kein Makro hinbekommen, welches die Funktion "Ersetzen" mit einer Zelle verknüpft.
Etwa so...

Sub Ersetzen()
'  
' Ersetzen Makro  
'  
    Cells.Select
    Cells.Replace What:="MW1", Replacement:="KW34", LookAt:=xlPart, _  
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    
End Sub

Idee ist, dass ich in einer Zelle die KW eintrage, für die der Pausenplan erstellt werden soll. Dann ein Klick und die Daten sind für die eingegebene KW aktualisiert. In diesem Fall sollte dann KW34 durch den entsprechenden Eintrag der Zelle ersetzt werden. Geht das?

Ansonsten wäre auch noch dies denkbar: ein Klick und die benötigte Datei öffnet sich automatisch, so dass die Daten auch wieder stimmen.

Im Moment steht halt leider mit dieser Formel einfach nur ##### in der entsprechenden Zelle. Die Daten werden erst eingetragen, wenn ich die Datei, auf die zugeriffen werden soll, öffne.

Vielleicht gibt es ja doch noch eine Lösung für mein Problem, gerne auch mit Makro.

Bin für alle Hinweise und Hilfen dankbar.

Gruß Uli
uliegger
uliegger 07.11.2008 um 22:38:17 Uhr
Goto Top
Hallo zusammen,

kann mir irgendwer hier helfen? Ich habe die Hoffnung noch nicht ganz aufgegeben!

Vielen Dank
Gruß Uli
bastla
bastla 07.11.2008 um 23:24:16 Uhr
Goto Top
Hallo uliegger!

Sorry - Dein letzter Post war mir irgendwie entgangen ... face-sad

Die Idee mit der Ersetzung sollte klappen, müsste aber noch etwas ergänzt werden - der Suchbegriff ändert sich ja bei jedem Durchlauf, und muss daher zwischengespeichert werden. Im folgenden Script verwende ich dafür die benannte Zelle "Aktuell" - diese kann in einer beliebigen Tabelle der aktuellen Mappe liegen (und muss zB mit "MW1" vorbelegt werden). Alternativ zur Verwendung eines Namens kann auch Tabelle und Zelle angegeben werden (siehe Zuweisung zu "KWneu" in Zeile 3).
Sub Ersetzen()
KWalt = Range("Aktuell").Value  
KWneu = Worksheets("Pausenplan").Range("F25").Value  
Cells.Replace What:=KWalt & ".xls", Replacement:=KWneu & ".xls", LookAt:=xlPart, MatchCase:=False  
Range("Aktuell").Value = KWneu  
End Sub
Aufzurufen wäre das Makro aus der Tabelle, in welcher die Verknüpfungen geändert werden sollen, oder, besser, diese Tabelle wird in der Schreibweise
Worksheets("Tabellenname").
am Anfang der Zeile 4 vor "Cells" festgelegt.

Grüße
bastla
uliegger
uliegger 08.11.2008 um 10:28:14 Uhr
Goto Top
Hallo bastla,

vielen Dank erstmal, ich werde das nachher mal testen und dann heute abend wieder berichten.

Gruß
Uli
uliegger
uliegger 09.11.2008 um 18:26:55 Uhr
Goto Top
Hallo bastla,

hat jetzt mit der Rückmeldung leider etwas länger gedauert, aber es funktioniert, SUPER!!!

Vielen Dank für die Hilfe
Gruß
Uli