Office: (Office 365) Tabellenblatt in neue Mappe kopieren

Helfe beim Thema Tabellenblatt in neue Mappe kopieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich hoffe, jemand kann mir weiterhelfen. Das Vorhaben: Nach Befüllen einer Excel-Tabelle soll ein Blatt daraus in eine eigenständige... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von WeT-Klb, 19. Januar 2024.

  1. WeT-Klb Erfahrener User

    Tabellenblatt in neue Mappe kopieren


    Hallo zusammen,

    ich hoffe, jemand kann mir weiterhelfen.
    Das Vorhaben:
    Nach Befüllen einer Excel-Tabelle soll ein Blatt daraus in eine eigenständige Mappe kopiert werden und alle Verknüpfungen mit Festwerten gespeichert werden.
    Mein VBS-Code sieht so aus (siehe Anhang).

    Die ersten Definitionen waren gedacht, das Speichern in Benutzerabhängigen Ordnern zu speichern - sind aber obsolet.

    Es soll im Prinzip ausgelesen werden, in welchem Ordner sich die Originaldatei befindet.
    Im gleichen Verzeichnis soll dann eine "Auskundungsseite.xlsm" erzeugt werden, Abhängig von der Variablen BSt.

    Wenn die Auskundsdatei bereits existiert, soll sie überschrieben bzw. gelöscht und neu erzeugt werden. Danach soll die Ursprungsdatei weiter bearbeitet werden.

    Im Groben funktioniert das Script, aber es läuft nicht stabil.

    Viele Grüße
    Werner
     

    Anhänge:

    Zuletzt bearbeitet: 19. Januar 2024
    WeT-Klb, 19. Januar 2024
    #1
  2. HKindler
    HKindler Erfahrener User
    Und was ist jetzt die Frage?
     
    HKindler, 19. Januar 2024
    #2
  3. Hajo_Zi
    Hajo_Zi Erfahrener User
  4. WeT-Klb Erfahrener User

    Tabellenblatt in neue Mappe kopieren

    Die Frage ist, wie ich meinen VBA-Code verbessern kann, damit das Script stabil läuft.
     
    WeT-Klb, 19. Januar 2024
    #4
  5. WeT-Klb Erfahrener User
    Hallo Hajo,

    ich bin nicht so richtig fit und habe meinen Code "irgendwie" zusammengebastelt. Das Ergebnis ist halt, daß es zwar funktioniert, aber nicht stabil.
    So kommt z:B. manchmal eine Fehlermeldung, daß die Auskundungs-Excel beschädigt sei und nicht gespeichert werden könne.
    Ich gehe davon aus, daß mein Code alles andere als gut ist und deswegen diese Instabilität auftritt.
    Ich bräuchte deshalb spezifische Hilfe für diesen Fall.

    Das ist halt das Problem mit "gefährlichem Halbwissen" meinerseits.
     
    WeT-Klb, 19. Januar 2024
    #5
  6. Hajo_Zi
    Hajo_Zi Erfahrener User
    Gut Du möchtest meinen Code ohne Fehler nicht benutzen.
    Ich bin dann raus.

     
    Hajo_Zi, 19. Januar 2024
    #6
  7. HKindler
    HKindler Erfahrener User
    Hi,

    das ist schwer zu sagen, solange man nicht weiß, was du unter "Stabil läuft" verstehst. Daher nur ein paar allgemeine Anmerkungen:

    - Wieso frägst du ab, ob die Datei existiert oder nicht, wenn du dann sowohl im Then- als auch im Else-Zweig absolut identische Befehle verwendest?

    - Ungetestet: eigentlich sollte Excel eine bereits vorhandene Datei nach Rückfrage überschreiben. Die Rückfrage kann man sogar mit Application.DisplayAlerts=False vorher ausschalten. Achtung! Danach das Einschalten nicht vergessen.

    - Verwende nach Möglichkeit nie ActiveXXX.

    - Ebenso im Zweifel bei einem Worksheet das Workbook mit angeben. Und bei einem Worksheet am besten den CodeName anstatt Worksheet("TabellenName") verwenden. Denn dann kann der Benutzer die Blätter beliebig umbenennen.

    Bei mir würde der Code so aussehen.
    Code:
    Sub Auskundungsseite()
    Dim wbk As Workbook
    Dim File As String
    MsgBox "Auskundungsseite wird erstellt!"
    If IsError(Tabelle1.Range("B34").Value) Then    'Tabelle1 ist der Codename von Tabelle "WFMT"
        File = Tabelle2.Range("C49")                'Tabelle2 ist der Codename von Tabelle "Eingabe"
    Else
        File = Tabelle1.Range("B34")
    End If
    File = ThisWorkbook.Path & "\" & File & "_Auskundung"
    Tabelle3.Copy                                   'Tabelle3 ist Tabelle "Auskundungsseite"
    Set wbk = ActiveWorkbook
    With wbk.Worksheets(1)
        .UsedRange.Value = .UsedRange.Value
        ''oder wenn es schneller gehen soll
        '.UsedRange.Copy
        '.UsedRange.PasteSpecial xlPasteValues
    End With
    Application.DisplayAlerts = False
    wbk.SaveAs Filename:=File, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    ''oder als .xlsx (wenn keine Makros benötigt werden)
    'wbk.SaveAs Filename:=File, FileFormat:=xlOpenXMLWorkbook
    Application.DisplayAlerts = True
    wbk.Close savechanges:=False
    End Sub
    Tabelle1 etc. musst du an deine Datei anpassen.

    Aber wenn es sowieso nur zum Anschauen dient, wieso nicht gleich eine PDF erzeugen?
    Code:
    Sub Auskundungsseite()
    Dim File As String
    If IsError(Tabelle1.Range("B34").Value) Then    'Tabelle1 ist der Codename von Tabelle "WFMT"
        File = Tabelle2.Range("C49")                'Tabelle2 ist der Codename von Tabelle "Eingabe"
    Else
        File = Tabelle1.Range("B34")
    End If
    File = ThisWorkbook.Path & "\" & File & "_Auskundung"
    Tabelle3.ExportAsFixedFormat xlTypePDF, File    'Tabelle3 ist Tabelle "Auskundungsseite"
    End Sub
     
    HKindler, 19. Januar 2024
    #7
  8. WeT-Klb Erfahrener User

    Tabellenblatt in neue Mappe kopieren

    Hallo Helmut,

    wir bearbeiten unsre "Master-Tabelle", aus der dann das Tabellenblatt "Auskundung" als Excel an eine andere Abteilung weitergeleitet werden soll, ohne die komplette Masterliste zu versenden.

    Deinen Code werde ich nächste Woche auf der Arbeit gleich mal testen.
    Das momentane Problem stellt sich so dar, daß diese Auskundungs-Excel genau einmal erzeugt werden kann.
    Hat man danach Änderungen in der Masterliste durchgeführt und führt dieses Makro erneut aus, kann die Auskundungs-Excel nicht erneut gespeichert werden, es kommt eine Fehlermeldung, daß die Excel beschädugt ist und versucht werden kann, diese zu reparieren.
    Die Abfragen, ob die Auskunds-Excel existiert, war ein Versuch.

    Erstmal vielen Dank für Deine Hilfe - nächste Woche weiß ich dann näheres.

    Gruß
    Werner
     
    WeT-Klb, 19. Januar 2024
    #8
  9. WeT-Klb Erfahrener User
    @HKindler
    Darf ich nochwas zu Deinem Code fragen?
    Ich habe bei mir nochmal die Abfrage drin, wenn Eingabe!C49 leer ist, soll ein Unterstrich vorangestellt werden - übersehe ich das in Deinem Script?
    Bei mir stellt "BSt" einen spezifischen Ort wie z.B. "Bayreuth 0" dar. Sollte aber WFMT.RangeB34 einen Fehler liefern, so soll der Wert aus Eingabe.RangeC49 bezogen werden.- das kann ich nachvollziehen.

    Sollte aber WFMT.RangeB34 einen Fehler liefern und gleichzeitig Eingabe.RangeC49 leer sein, so wird "BSt" einfach zu einem Unterstrich - das finde ich nicht in deinem Code.

    Sollten alle Werte vorhanden sein, soll die neue Mappe im gleichen Verzeichnis wie die Masterliste unter dem Namen (in diesem Fall) "Bayreuth 0 Auskundung.xlsx" abgespeichert werden.
    Sollten alle zuvor abgefragten Werte fehlen, soll die Datei einfach "_ Auskundung.xlsx" lauten. Somit wird anhand des Dateinamens auch ersichtlich, daß in der Masterliste etwas fehlt.
    Deswegen habe ich in meiner Variante File = BSt & " Auskundung.xlsx" festgelegt.

    Das ist in Deinem Code nicht beinhaltet, oder interpretiere ich das falsch?
    Sorry für die Nachfrage, ich versuche nur, zu verstehen, wie Profis sowas lösen.

    Viele Grüße
    Werner
     
    Zuletzt bearbeitet: 20. Januar 2024
    WeT-Klb, 20. Januar 2024
    #9
  10. HKindler
    HKindler Erfahrener User
    Nunja, Leerzeichen in Dateinahmen machen gerne mal Probleme. Daher habe ich einfach ein "_" direkt vor das „Auskundung“ gesetzt. Kannst du natürlich machen wie du willst.

    Was soll eigentlich „Auskundung“ heißen? Ist das überhaupt ein deutsches Wort?
     
    HKindler, 20. Januar 2024
    #10
  11. WeT-Klb Erfahrener User
    Wenn wir von der Planung Leute vor Ort in die entsprechenden Standorte senden, damit diese uns die Gegebenheiten vor Ort mitteilen, nennen wir das "Auskundung".
    Wir arbeiten bundesweit und brauchen deshalb Leute vor Ort, die uns die benötigten Informationen liefern - also eine "Auskundung" durchführen. Die Bezeichnung ist halt so vorgegeben.

    Wie verstehe ich Deine Definition File = ThisWorkbook.Path & "\" & File & "_Auskundung"?

    "File" besteht aus sich selbst? Ist das kein "Zirkelbezug"?
    Du siehst - ich bin absolut unbedarft,
     
    WeT-Klb, 20. Januar 2024
    #11
  12. HKindler
    HKindler Erfahrener User
    Danke für die Info. Also sozusagen ein "Auskundschaften" ;-)

    Und natürlich kann man eine Variable mit ihrem Inhalt neu belegen.
    i = i + 1 würdest du ja auch ungefragt hinnehmen. Wenn in File bisher "irgendwas" steht und dann der Ausdruck File = "Hier " & File & " eingeben" ausgeführt wird, dann steht danach in File der Wert "Hier irgendwas eingeben" und wenn vorher in File "nichts" steht, dann steht danach "Hier nichts eingeben".
     
    HKindler, 20. Januar 2024
    #12
  13. WeT-Klb Erfahrener User

    Tabellenblatt in neue Mappe kopieren

    Ja, genau. "Auskundung" ist halt Fach-Jargon bei uns.
    Danke für die Erklärung mit der Variable - das macht das Sinn.
     
    WeT-Klb, 20. Januar 2024
    #13
  14. WeT-Klb Erfahrener User
    @HKindler
    Der Code funktioniert, genau wie bei mir, nur einmal.
    Möchte ich die Seite erneut exportieren, weil z.B. Änderungen gemacht wurden, kommt die Fehlermeldung:

    Laufzeitfehler '1004:
    Die Methode 'SaveAs' für das Objekt '_Workbook' ist fehlgeschlagen.

    Selbst wenn ich den ersten Export lösche, kann ein weiterer Export nicht mehr gespeichert werden.

    Versuche ich, den zweiten Export händisch abzuspeichern, erhalte ich die Meldung:

    Fehler beim Speichern von 'https://xxxxxxx.sharepoint.de/xxxxx/Documents/xxxxx/_Auskundung.xlsx.'. Durch Entfernen oder Reparieren einiger Features kann die Datei von Microsoft Excel möglicherweise gespeichert werden. Klicken Sie auf 'Weiter', um die Reparatur in einer neuen Datei auszuführen. Kliclen Sie auf 'Abbrechen'. um den Speichervorgang für die Datei abzubrechen.

    Das ganze scheint mir so, als ob ein Problem damit besteht, daß sich das ganze auf einem Sharepoint-Verzeichnis abspielt und die Synchronisation zwischen Sharepoint und lokalem Rechner "hängt".

    Gruß
    Werner
     
    WeT-Klb, 22. Januar 2024
    #14
  15. HKindler
    HKindler Erfahrener User
    Das liegt definitiv an Sharepoint / OneDrive. Habe da bisher auch keine einfache Lösung gefunden. Ich behelfe mir indem ich in dem Fall ein lokales Temp-Verzeichnis verwende.
    Code:
    File = ThisWorkbook.Path
    If File Like "https://*" Then File = Environ("TMP")
    Die Datei liegt dann natürlich nicht im selben Verzeichnis wie die andere Datei. Für mich hat das aber bisher immer gereicht.
    Viel Glück beim weitersuchen.
     
    HKindler, 22. Januar 2024
    #15
Thema:

Tabellenblatt in neue Mappe kopieren

Die Seite wird geladen...
  1. Tabellenblatt in neue Mappe kopieren - Similar Threads - Tabellenblatt Mappe kopieren

  2. Vergleichen von 2 Tabellenblättern

    in Microsoft Excel Hilfe
    Vergleichen von 2 Tabellenblättern: Hallo, Ich brauche bitte wieder Hilfe. Ich habe Office 2010 Ich habe in Tabelle1 von A1-A100 Namen stehen und ich habe in Tabelle 2 von A1-A100 Namen stehen und von B1-B100 Zahlen. (Mit Formel...
  3. Tabellenblätter von einer Mappe in eine andere kopieren

    in Microsoft Excel Hilfe
    Tabellenblätter von einer Mappe in eine andere kopieren: Hallo! Ich habe hier etliche Arbeitsmappen, die alle die gleichen Tabellenblätter enthalten. Nun muss in allen Mappen jeweils die gleichen Korrekturen vornehmen (Tabelle "ER" die Seite einrichten...
  4. Tabellenblätter per Makro exportieren in eigene Mappe

    in Microsoft Excel Hilfe
    Tabellenblätter per Makro exportieren in eigene Mappe: Hallo Leute, ich habe eine Exceldatei mit über 100 Blättern. Diese Blätter benötige ich als jeweils einzelne Exceldateien mit dem jeweiligen Einzelblatt. Der Name der Datei sollte der Name des...
  5. Per Makro Tabellenblätter von Mappe A nach Mappe B kopieren und umbennenen

    in Microsoft Excel Hilfe
    Per Makro Tabellenblätter von Mappe A nach Mappe B kopieren und umbennenen: Hallo, Da ich bis vor 2 Wochen ein 08/15 Excel User war der zwar wusste was ein Makro ist aber nicht wie man eines selber programmiert geschweige denn etwas mit VBA anfangen zu wusste...
  6. Tabellenblatt bei kopie als Mappe neu benennen

    in Microsoft Excel Hilfe
    Tabellenblatt bei kopie als Mappe neu benennen: Hallo mal wieder, ich habe eine Arbeitsmappe mit drei Tabellenblättern. Ein Tabellenblatt kann man nun mit einem Button als neue Arbeitsmappe mit dem Namen "MAPPE X" kopieren. Wie mache ich es,...
  7. Tabellenblatt in eine Bestimme Mappe kopieren

    in Microsoft Excel Hilfe
    Tabellenblatt in eine Bestimme Mappe kopieren: Guten morgen alle zusammen. Ich möchte gerne ein Tabellenblatt in eine bestimmte Mappe kopieren. Das habe ich Aufgezeichnet und klappt auch fast so wie es soll. Das Problem ist das der VBA...
  8. Werte von Tabellenblättern der selben Mappe „holen“

    in Microsoft Excel Hilfe
    Werte von Tabellenblättern der selben Mappe „holen“: Hallo, vielleicht gibt es ja zu dieser Frage eine leichte Antwort: Ich möchte mir Werte von Tabellenblättern der selben Mappe „holen“, ohne das Tabellenblatt wechseln zu müssen, bzw. ohne...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden