Supportnet Computer
Planet of Tech

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

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

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

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

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ß

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

  • 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 :)

    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

    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.

    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 =(

    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

    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

    Ich möchte kostenlos eine Frage an die Mitglieder stellen:


    Ähnliche Themen:


    Suche in allen vorhandenen Beiträgen: