Clever-Excel-Forum

Normale Version: Bezug zu geschlossener Datei
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo geschätztes Forum,

ich melde mich mit einem Problem, auf das ich bisher auch beim Suchen im Archiv keine Lösung finden konnte.

Jede Woche erstelle ich eine Liste (siehe Anhang). 
Sie stellt die Kalenderwoche in A3 dar, die ich aus D1 ermitteln lasse und zusätzlich den Montag der darauf folgenden Kalenderwoche.
Die Datei wird dann unter dem Namen mit der entsprechenden Kalenderwoche (ausA3) abgespreichert. Beispiele: "Tableau KW 44", "Tableau KW 45" usw.

Das Problem: Beispielhaft die Kalenderwoche 44 und 45
Ich suche die Möglichkeit, dass die Daten in den Zellen

B3:E32, B33:B36, B37:E43, B44:E47, B52:E59 und B60:AD64

im Tableau der Kalenderwoche 45, den Daten

AD3:AF32, AD33:AD36, AD37:AF43, AD44:AF47, AD52:AF59 und AD60:AD64

aus Kalenderwoche 44 entsprechen.

Am besten wäre es, wenn das automatisch passiert. Also aus der Kalenderwoche im Feld A3
auf den Dateinamen geschlossen wird, aus dem die Daten abgerufen werden sollen.

Ich hoffe ich habe das Problem darstellen können. Bin gespannt ob jemand eine Lösung hat.

Vielen Dank im Voraus schonmal.

Gruß

Thomas
(06.11.2016, 22:03)tmessers schrieb: [ -> ]Jede Woche erstelle ich eine Liste (siehe Anhang). 

Hallo Thomas,

leider kann niemand deinen Anhang finden!
Hi Conny,

[
Bild bitte so als Datei hochladen: Klick mich!
]
Hallo,

dann ist der Anhang aber anscheinend irgendwann der Weg alles Irdischen gegangen - ich sehe aktuell nirgends einen Anhang.
Hallo Conny und Peter,

seht ihr den Anhang jetzt?

Gruß Uwe
Hallo,

ja, jetzt sehe ich den Anhang.
Hallöchen,

nachdem viele den Anhang gesehen haben und noch keine Antwort anhänglich ist, :05: mal ein Hinweis von mir.
Das von Dir gewünschte Ergebnis kannst Du "automatisch" z.B. auf 2 Wegen erreichen.

Mit INDIREKT kannst Du auf eine andere Datei zugreifen, wenn diese geöffnet ist. Kennst Du diese Funktion?

Mit einem Makro kannst Du Daten holen, z.B., wenn Du z.B. die Eingabe der KW änderst und / oder wenn Du die Datei öffnest und / oder ..., allerdings auch wieder mit einer Bedingung - Makros müssen erlaubt sein.

Und mal eine Lösung auf die Schnelle ...
Manuell könntest Du auch im kompletten Blatt oder auch kleineren markierten Bereichen mit Suchen + Ersetzen in Formeln die KW ersetzen. Ist dann auch nur Sekundensache.
Hallo schauan

Danke für die Antwort. 
Der Befehl INDIREKT ist mir bekannt. Das Öffnen der anderen Datei stört mich aber.

Die Makrolösung scheint mir die eleganteste zu sein.

Die "Lösung auf die Schnelle" verstehe ich nicht. ?

Gruß 

Thomas
Hallöchen,

auf die Schnelle:

Wenn Du in der Formel irgendwo die KW hast, kannst Du die doch einfach austauschen, wenn Du die Ergebnisse einer anderen Woche sehen willst.
='KW44.xlsx...
wird dadurch zu
='KW45.xlsx...

Makro schaue ich mir morgen Abend an, falls nicht zwischendurch jemand anders sich der Sache angenommen hat.
Also im Prinzip z.B.
- Datei KW44 öffnen
- Schleife über 6 Bereiche --> wobei man die beiden mittleren zusammenfassen kann.
- Daten kopieren
- Daten in KW45 einfügen
- Ende Schleife über 6 Bereiche
- Datei KW44 schliessen
Wäre nur die Frage, wann das geschehen soll, siehe meine vorige Antwort.
Hallöchen,

ein Code könnte z.B. so aussehen - kommt in das Codemodul vom Tabellenblatt. Ausgeführt wird er dann immer, wenn Du in D1 was änderst.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'- Eingabebereich prüfen und ggf. Makro verlassen. EIngabe in D1, KW in A3
If Target.Address <> "$D$1" Then Exit Sub
'Variablendeklarationen
'Array
Dim arrSource, arrTarget
'Integer
Dim iCnt%
'Arraydaten zuweisen
arrSource = Array("B3:E32", "B33:B36", "B37:E43", "B44:E47", "B52:E59", "B60:AD64")
arrTarget = Array("AD3:AF32", "AD33:AD36", "AD37:AF43", "AD44:AF47", "AD52:AF59", "AD60:AD64")
'- Datei KWxx öffnen. Pfad und Erweiterung ggf. anpassen.
'- Bei Bedarf code erweitern und prüfen, ob Datei vorhanden ist
Workbooks.Open "I:\Test\Tableau KW " & Cells(3, 1).Value & ".xlsx"
'- Schleife über 6 Bereiche --> wobei man die beiden mittleren zusammenfassen kann.
For iCnt = 0 To 5
'- Daten kopieren
   Range(arrSource(iCnt)).Copy
'- Daten in KW45 einfügen
   ThisWorkbook.Sheets("Stärkeübersicht KW").Range(arrTarget(iCnt)).PasteSpecial
'- Ende Schleife über 6 Bereiche
Next
'- Datei KWxx ohne Speichern schliessen
ActiveWorkbook.Close False
End Sub
Seiten: 1 2