Supportnet / Forum / Tabellenkalkulation
Mappen Verknüpfen
Frage
Hallo ;)
ich habe eine Hauptmappe in der Werte stehen
in Zeile Spalte C, Zeile 25 den Wert "Orga"
und mehrere Submappen die mit der Hauptmappe verknüpft sind
z.B.
=´[Hauptmappe.xls]Tabelle1´!$C$25
..so dies nur zu allgemeinen Erläuterung
Mein Problem:
Wenn ich eine neue Zeile in der Hauptmappe einfüge ändert sich in den anderen verknüpften mappen nichts.
Mein Ziel:
Ich will in der Hauptmappe eine neue Zeile einfügen können, diese soll dann wenn möglich in allen anderen Mappen ebenso eingefügt werden ebenso die dazu gehörigen werte.
Habt ihr eine idee bzw. eine lösung für mein Problem?
gruß
stefann
Antwort 1 von Saarbauer
Hallo,
dann musst du in den anderen Mappen entspechende Verbindungen schaffen.
Excel weiss, dass in der Zelle =´[Hauptmappe.xls]Tabelle1´!$C$25 "Orga" steht, woher soll das Programm wissen, dass der Wert aus C26 der Hauptmappe ebenfalls übernommen werden soll?
Also in den Mappen
=´[Hauptmappe.xls]Tabelle1´!$C$26
eintragen und schon Klappts. Eventell sind die $ in den anderen Mappen zu entfernen und die Formel nach unten zu ziehen, aber dafür müsste man den Datenaufbau kennen
Gruß
Helmut
dann musst du in den anderen Mappen entspechende Verbindungen schaffen.
Excel weiss, dass in der Zelle =´[Hauptmappe.xls]Tabelle1´!$C$25 "Orga" steht, woher soll das Programm wissen, dass der Wert aus C26 der Hauptmappe ebenfalls übernommen werden soll?
Also in den Mappen
=´[Hauptmappe.xls]Tabelle1´!$C$26
eintragen und schon Klappts. Eventell sind die $ in den anderen Mappen zu entfernen und die Formel nach unten zu ziehen, aber dafür müsste man den Datenaufbau kennen
Gruß
Helmut
Antwort 2 von stefann
Hallo Helmut ich glaube du hast nicht so ganz verstanden was ich meine...
die Daten zu ändern etc.. das funktioniert alles
ich will nur nicht meine 80 mappen manuell ändern, das kann man doch automatisieren? Ich will wenn ich eine Datei änder das sich alle anderen Dateien auch ändern und das alles ohne zu verknüpfen
die Daten zu ändern etc.. das funktioniert alles
ich will nur nicht meine 80 mappen manuell ändern, das kann man doch automatisieren? Ich will wenn ich eine Datei änder das sich alle anderen Dateien auch ändern und das alles ohne zu verknüpfen
Antwort 3 von stefann
per makro z.b. geht das???
Antwort 4 von Saarbauer
Hallo,
das geht nach meiner Ansicht nur per makro, da du ja keine Verknüpfung einbauen willst.
Das Makro könnest du aufzeichnen und dann, leider weiss ich nicht wie gut du dich mit VBA ausakennst, entsprechend ergänzen.
Ist eine Systemmatik in den Dateinamen? Das würde den Aufruf der Dateien erheblich erleichtern
Gruß
Helmut
das geht nach meiner Ansicht nur per makro, da du ja keine Verknüpfung einbauen willst.
Das Makro könnest du aufzeichnen und dann, leider weiss ich nicht wie gut du dich mit VBA ausakennst, entsprechend ergänzen.
Ist eine Systemmatik in den Dateinamen? Das würde den Aufruf der Dateien erheblich erleichtern
Gruß
Helmut
Antwort 5 von stefann
Hallo Helmut,
durch ein bisschen forschen in diesem Forum habe ich schon sehr viel heraus gefunden und dieses Script programmiert:
Option Explicit
Private Sub Sicherung()
´
´ Umstellungchecklisten: Updaten der Listen durch Makro
´ Makro erstellt am 24.04.2006
´
Range("A5:G55").Select
Selection.Copy
Workbooks.Open Filename:= _
"N:\Test\Checkliste ZV-Umstellung-20042.xls"
Windows("Checkliste ZV-Umstellung-20042.xls").Activate
Range("A5:G55").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
wenn ich es erläutern soll dann sage mir bitte bescheid... meine Frage an dich:
Da ich 80 Mappen habe müsste ich das Makro 80 mal bearbeiten um alle Mappen auf den selben stand zu bringen, könnte man das mit einer If-Anweisung oder einer anderen alternativen Lösung irgendwie so lösen das man den Dateipfad bzw. die Direktiven nicht ändern muss
durch ein bisschen forschen in diesem Forum habe ich schon sehr viel heraus gefunden und dieses Script programmiert:
Option Explicit
Private Sub Sicherung()
´
´ Umstellungchecklisten: Updaten der Listen durch Makro
´ Makro erstellt am 24.04.2006
´
Range("A5:G55").Select
Selection.Copy
Workbooks.Open Filename:= _
"N:\Test\Checkliste ZV-Umstellung-20042.xls"
Windows("Checkliste ZV-Umstellung-20042.xls").Activate
Range("A5:G55").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
wenn ich es erläutern soll dann sage mir bitte bescheid... meine Frage an dich:
Da ich 80 Mappen habe müsste ich das Makro 80 mal bearbeiten um alle Mappen auf den selben stand zu bringen, könnte man das mit einer If-Anweisung oder einer anderen alternativen Lösung irgendwie so lösen das man den Dateipfad bzw. die Direktiven nicht ändern muss
Antwort 6 von fürLau
Hallo Stefann,
Helmut hat´s ja schon gefragt - sind diese 80 Mappen alle in einem Verzeichnis? Und sind dort noch andere (nicht zu ändernde) Excel-dateien? Oder gibt es im Namen Gemeinsamkeiten?
Gruß
Helmut hat´s ja schon gefragt - sind diese 80 Mappen alle in einem Verzeichnis? Und sind dort noch andere (nicht zu ändernde) Excel-dateien? Oder gibt es im Namen Gemeinsamkeiten?
Gruß
Antwort 7 von CaroS
Hallo Stefann,
natürlich kann man das von einem Makro automatisch machen lassen, indem man um die Zeilen
Workbooks.Open Filename:= "L:\Pfad\Name.xls"
Windows("Name.xls").Activate
Range("A5:G55").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close
eine Schleifen-Anweisung schreibt, die nacheinander alle Submappen "anpackt" und für "L:\Pfad\Name.xls" und "Name.xls" die entsprechenden Werte einsetzt. Allerdings muss man dem Makro klarmachen, was genau "alle" bedeutet und wo es "alle" suchen soll.
Dies kann man auf verschiedene Weise erreichen, z. B. indem
alle Untermappen nach einem bestimmten Schema benannt sind
sich alle Untermappen in einem Verzeichnis befinden und sonst weiter keine Excel-Mappe
sich alle Untermappen in einem Verzeichnis und seinen Unterverzeichnissen befinden und sonst weiter keine Excel-Mappe
die Namen aller Untermappen in einer Tabelle eingetragen sind und das Makro diese "Liste" abarbeitet.
Falls in Punkt 2 und 3 die Hauptmappe mit in diesem/diesen Verzeichnis(sen) liegt, muss man darauf achten und sie in der Schleife ausschließen.
Welcher Fall liegt bei Dir vor bzw. kommt Deinem an nächsten?
Gruß,
CaroS
natürlich kann man das von einem Makro automatisch machen lassen, indem man um die Zeilen
Workbooks.Open Filename:= "L:\Pfad\Name.xls"
Windows("Name.xls").Activate
Range("A5:G55").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWorkbook.Close
eine Schleifen-Anweisung schreibt, die nacheinander alle Submappen "anpackt" und für "L:\Pfad\Name.xls" und "Name.xls" die entsprechenden Werte einsetzt. Allerdings muss man dem Makro klarmachen, was genau "alle" bedeutet und wo es "alle" suchen soll.
Dies kann man auf verschiedene Weise erreichen, z. B. indem
Falls in Punkt 2 und 3 die Hauptmappe mit in diesem/diesen Verzeichnis(sen) liegt, muss man darauf achten und sie in der Schleife ausschließen.
Welcher Fall liegt bei Dir vor bzw. kommt Deinem an nächsten?
Gruß,
CaroS
Antwort 8 von stefann
Meine Dateien heißen wie folgt:
Checkliste ZV-Umstellung-20025.xls
Dabei ändert sich immer nur die Nummer also z.B.
Checkliste ZV-Umstellung-20140.xls
die Dateien befinden sich zum Test alle in einem Ordner, es sind keine weiteren Excel Dateien vorhanden und im Namen gibt es wie schon oben genannt gemeinsamkeiten.
Für ideen oder Lösungen wäre ich dankbar :)
Checkliste ZV-Umstellung-20025.xls
Dabei ändert sich immer nur die Nummer also z.B.
Checkliste ZV-Umstellung-20140.xls
die Dateien befinden sich zum Test alle in einem Ordner, es sind keine weiteren Excel Dateien vorhanden und im Namen gibt es wie schon oben genannt gemeinsamkeiten.
Für ideen oder Lösungen wäre ich dankbar :)
Antwort 9 von stefann
achja die Hauptmappe ist in einem anderen Ordner =)
also in dem Ordner wo sich der Ordner mit den Submappen befindet...
Hauptmappe:
N:\Test\Checkliste ZV-Umstellung.xls
Submappen:
N:\Test\Submappen\Checkliste ZV-Umstellung-20042.xls
also in dem Ordner wo sich der Ordner mit den Submappen befindet...
Hauptmappe:
N:\Test\Checkliste ZV-Umstellung.xls
Submappen:
N:\Test\Submappen\Checkliste ZV-Umstellung-20042.xls
Antwort 10 von CaroS
Hallo stefann,
das sind ja sehr günstige Umstände, wenn die Submappen ganz allein in ihrem Unterverzeichnis unter sich sind.
Das folgende Makro öffnet nacheinander alle *.xls-Dateien des Verzeichnisses "N:\Test\Submappen\", markiert den Bereich "A5:G55", fügt dort den zuvor kopierten Inhalt hinein, speichert und schließt die Datei.
Gruß,
CaroS
das sind ja sehr günstige Umstände, wenn die Submappen ganz allein in ihrem Unterverzeichnis unter sich sind.
Das folgende Makro öffnet nacheinander alle *.xls-Dateien des Verzeichnisses "N:\Test\Submappen\", markiert den Bereich "A5:G55", fügt dort den zuvor kopierten Inhalt hinein, speichert und schließt die Datei.
Private Sub Sicherung()
Rem
Rem Umstellungchecklisten: Updaten der Listen durch Makro
Rem Makro erstellt am 24.04.2006
Rem
Dim DateiPfad As String
Dim DateiName As String
Dim i As Integer
Range("A5:G55").Select
Selection.Copy
i = 0
DateiPfad = "N:\Test\Submappen\"
DateiName = Dir$(DateiPfad & "*.xls")
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Do While Len(DateiName) > 0
i = i + 1
Workbooks.Open Filename:=DateiPfad & DateiName
Windows(DateiName).Activate
Range("A5:G55").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.EnableEvents = False
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.EnableEvents = True
DateiName = Dir$()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox CStr(i) & " Dateien im Verzeichnis " & Chr(13) & _
DateiPfad & " bearbeitet", vbOKOnly, "V"
End Sub
Gruß,
CaroS
Antwort 11 von stefann
HI caro danke für deine mühe =)
aber..
er sagt mir das er die paste funktion nicht ausführen kann =(
aber..
er sagt mir das er die paste funktion nicht ausführen kann =(
Antwort 12 von stefann
so habe rausgefunden, dass er das bei einer mappe macht, aber bei der zweiten mappe sagt er mir das er den paste befehl nicht mehr ausführen kann...
Antwort 13 von stefann
Fehler gefunden:
nach:
Do While Len(DateiName) > 0
i = i + 1
muss noch einmal selectiert und kopiert werden...
Range("A5:G55").Select
Selection.Copy
nach:
Do While Len(DateiName) > 0
i = i + 1
muss noch einmal selectiert und kopiert werden...
Range("A5:G55").Select
Selection.Copy
Antwort 14 von CaroS
Hallo stefann,
jetzt wo Du´s schreibst staune ich selber, dass der Code überhaupt was macht. Ich hatte ihn ja von Dir von oben kopiert, aber nicht daran gedacht, dass dieses Stück
Workbooks.Open Filename:=DateiPfad & DateiName
Windows(DateiName).Activate
Sheets("TabellenName").Select
Range("A5:G55").Select
ActiveSheet.Paste
ohne die Zeile Sheets("TabellenName").Select wohl höchstens einmal funktioniert, aber kaum mehrmals nacheinander für verschiedene Dateien.
Jetzt ist die spannende Frage, ob die Tabellen, in die der Bereich A5:G55 kopiert werden soll, in allen Subdateien entweder denselben Namen haben oder an der selben Position innerhalb der Tabellen stehen, im zweiten Fall könnte man z. B. Sheets(3).Select schreiben. Wenn die Namen/Positionen jedesmal verschieden sind, dann wird´s schwer für die Schleife, ansonsten kannst Du ja die Zeile mit dem richtigen Namen bzw. der richtigen Nummer mal so einfügen, wie oben zu sehen ist.
Sonst fällt mir weiter kein offensichtlicher Fehler auf, aber an die Unterdrückung aller Meldungen und Ereignisse mit Application.DisplayAlerts = False und Application.EnableEvents = False muss man vielleicht auch noch mal ran. Einige Dateien fragen ja beim Öffnen, ob sie sich aktualisieren dürfen, andere nach der Makro-Sicherheitsstufe und manche wollen vor dem Speichern noch etwas erledigen.
Versuch´s erstmal mit dem Sheets( ).Select!
Gruß,
CaroS
jetzt wo Du´s schreibst staune ich selber, dass der Code überhaupt was macht. Ich hatte ihn ja von Dir von oben kopiert, aber nicht daran gedacht, dass dieses Stück
Workbooks.Open Filename:=DateiPfad & DateiName
Windows(DateiName).Activate
Sheets("TabellenName").Select
Range("A5:G55").Select
ActiveSheet.Paste
ohne die Zeile Sheets("TabellenName").Select wohl höchstens einmal funktioniert, aber kaum mehrmals nacheinander für verschiedene Dateien.
Jetzt ist die spannende Frage, ob die Tabellen, in die der Bereich A5:G55 kopiert werden soll, in allen Subdateien entweder denselben Namen haben oder an der selben Position innerhalb der Tabellen stehen, im zweiten Fall könnte man z. B. Sheets(3).Select schreiben. Wenn die Namen/Positionen jedesmal verschieden sind, dann wird´s schwer für die Schleife, ansonsten kannst Du ja die Zeile mit dem richtigen Namen bzw. der richtigen Nummer mal so einfügen, wie oben zu sehen ist.
Sonst fällt mir weiter kein offensichtlicher Fehler auf, aber an die Unterdrückung aller Meldungen und Ereignisse mit Application.DisplayAlerts = False und Application.EnableEvents = False muss man vielleicht auch noch mal ran. Einige Dateien fragen ja beim Öffnen, ob sie sich aktualisieren dürfen, andere nach der Makro-Sicherheitsstufe und manche wollen vor dem Speichern noch etwas erledigen.
Versuch´s erstmal mit dem Sheets( ).Select!
Gruß,
CaroS