Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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

Ordnerpfad variabel

Ordnerpfad variabel
08.06.2016 20:22:07
Finitivus
Hallo, bin neu hier im Forum und hoffe auf Hilfe.
Habe folgendes vor:
Habe ein Ordnerverzeichnis von "Saison 16" "Saison 17" .... bis "Saison 66" angelegt.
In diesen Ordnern befindet sich immer die selbe Datei: "Name.xlsm"
Aus einer externen Datei habe ich folgenden Pfad als Formel angegeben:
='C:\Users\Benutzer\Documents\Saisons\Saison 16\[Name.xlsm]Tagesauflistung'!A1
Diese Formel ist natürlich mehrfach in der externen Datei enthalten und soll dort immer Bezug auf die angegebene Zelle in der jeweiligen Saison nehmen. Also
Tagesauflistung A2 A3 usw...
Das haut auch soweit gut hin, aber nur solange ich bei jeder Formel die Neue Saison per Hand eingebe, eben Saison 17 Saison 18 usw....
Da der Pfad ja immer bis auf die Saison gleich bleibt, hätte ich gerne die Saison 16 Saison 17... usw. variabel, am liebsten über einen Zellbezug, der die jeweilige Saison angibt und in den Pfad übernimmt.
VBA Kenntnise sind bei mir nur sehr dürftig vorhanden..
Bin um jede Anregung dankbar.. Bekomm das einfach nicht hin!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordnerpfad variabel
08.06.2016 20:32:40
Fennek
Hallo,
ohne es ausprobiert zu haben, würde ich es mit "suchen/ersetzen" (in Formeln) versuchen.
Die "Könner" würden vermutlich ein Konstruktion mit "Indirekt" vorschlagen.
mfg
PS: macht es wirklich Sinn so viele Unterordner zu schaffen? Alles in ein Sheet und z.B. mit Pivot auszuwerten ist -typischerweise- sinnvoller.

AW: Ordnerpfad variabel
08.06.2016 20:49:22
Christoph
Hallo,
über Indirekt gäbe es das Problem, dass deine Dateien aber immer offen sein müssten.
Gruß
Christoph

AW: Ordnerpfad variabel
08.06.2016 20:58:50
Finitivus
Danke für die Antworten.. Was ich nicht verstehe ist, das wenn ich bei der Formel per Hand irgendeine andere Saison eingebe, funzt das doch auch, ohne dass die betreffende Datei geöffnet ist..
Dachte mir, so was geht über vba...
Leider hab ich davon so gut wie null Ahnung....

Anzeige
AW: Ordnerpfad variabel
09.06.2016 08:39:28
UweD
Hallo
per VBA Event ginge das so..
- Es wird eine Zelle überwacht, hier in meinem Beispiel B1
- dort steht die aktuelle Saison drin z.B. 17
- diese Zelle könntest du natürlich mit "Daten, Datenüberprüfung" auf 16 bis 66 begrenzen.
- schreibst du nun eine andere Zahl hinein, werden alle Formeln auf die neue Saison geändert
- Die Dateien bleiben dabei geschlossen
So vorgehen:
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Diesen Code dort reinkopieren

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
If Not Intersect(Range("B1"), Target) Then 'auslösende Zelle ggf. ändern
Dim Aktuell$, Neu$
If Target.Count = 1 Then
Application.EnableEvents = False
Application.Undo
Aktuell = "\Saisons\Saison " & Target & "\"
Application.Undo
Neu = "\Saisons\Saison " & Target & "\"
Cells.Replace What:=Aktuell, Replacement:=Neu, LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Else
MsgBox "Zellen nur einzeln bearbeiten"
Application.EnableEvents = False
Application.Undo
End If
End If
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
Application.EnableEvents = True
End Sub

Gruß UweD
Über Rückmeldungen würde ich mich freuen

Anzeige
Kopierfehler
09.06.2016 08:46:35
UweD
da fehlt noch was in der Zeile...
    If Not Intersect(Range("B1"), Target) Is Nothing Then  'auslösende Zelle ggf. ändern
bitte noch austauschen

AW: Kopierfehler
09.06.2016 10:19:57
Finitivus
Vielen Dank für den Lösungsvorschlag.. Werd das heute abend mal probieren, jetzt leider keine Zeit dafür... Werd auf jeden Fall berichten, obs geklappt hat...

AW: Kopierfehler
09.06.2016 11:33:20
Finitivus
Habs jetzt doch mal kurz probiert, genau, wie du beschrieben hast..
Hab lediglich aus B1 A562 gemacht, in die ich dann neue Saison eingegeben habe, daraufhin machte Fenster auf, mit "Werte aktualisieren" in der ich betreffende Datei öffnen sollte..
Dieses lies sich dann auch nach mehrmaligem abbrechen nicht mehr schliessen.. Hab dann über Task Manager abgebrochen..
Leider ist für mich das ganze VBA Zeug ein spanisches Dorf..
Ist bestimmt bloss ne Kleinigkeit..
Aber trotzdem Danke für den Versuch.
Vielleicht hast ja doch noch ne Lösung?
Wäre super genial, wenn das hin hauen würde...

Anzeige
AW: Kopierfehler
09.06.2016 12:03:08
Finitivus
Kommando zurück... Es funktioniert tatsächlich... Hatte nen kleinen Fehler drin...
Leider ist die Datenmenge viel zu gross, und es dauert ewig, bis der alles durch hat...
Auf jeden Fall ists der Hammer...
Tausend Dank Dir......

AW: Kopierfehler
09.06.2016 12:50:20
UweD
Hallo nochmal
Bei jedem ersetzen werden alle Berechnungen neu ausgelöst.
Das kann man noch aus- und später wieder einschalten.
Versuch da mal

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
With Application
If Not Intersect(Range("A562"), Target) Is Nothing Then 'auslösende Zelle ggf. ändern
Dim Aktuell$, Neu$
.ScreenUpdating = False
.Calculation = xlCalculationManual
If Target.Count = 1 Then
.EnableEvents = False
.Undo
Aktuell = "\Saisons\Saison " & Target & "\"
.Undo
Neu = "\Saisons\Saison " & Target & "\"
Cells.Replace What:=Aktuell, Replacement:=Neu, LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Else
MsgBox "Zellen nur einzeln bearbeiten"
.EnableEvents = False
.Undo
End If
End If
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
.EnableEvents = True
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige