Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: aktives Tabellenblatt ohne Makro wegspeichern

aktives Tabellenblatt ohne Makro wegspeichern
21.07.2014 22:48:46
Thomas
Hi,
ich habe eigentlich keine Erfahrung in der Makro Programmierung. Im WWW habe ich ein Makro gefunden, was "fast" genau das macht was ich brauche. Ich habe dieses Makro mit einer Schaltfläche verknüpft. Das funktioniert soweit ganz gut.
Allerdings wird jetzt beim Erzeugen der neuen Exceldatei, die Schaltfläche mit der Verknüpfung zum Makro mit kopiert.
Was muß ich machen, dass bei der Kopie , zu mindestens der Link zum Makro nicht mitgegeben wird?
Muß ich etwas im Excel dazu einstellen oder muß ich den unten stehenden Code erweitern?
Mit freundlichen Grüßen
Thomas
Sub SaveFileAs()
Dim sFile As String
Application.ScreenUpdating = False
sFile = InputBox( _
prompt:="Filename:", _
Default:="Lxx-xx-xx")
If sFile = "" Then Exit Sub
ThisWorkbook.Worksheets("OUTPUT").Copy
ActiveWorkbook.SaveAs "C:\Output_export\" & sFile
Application.ScreenUpdating = True
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aktives Tabellenblatt ohne Makro wegspeichern
22.07.2014 08:49:14
UweD
Hallo
lösche den Button vor dem speichern raus... (Name des Button ggf ändern)
Sub SaveFileAs()
Dim sFile As String
Application.ScreenUpdating = False
sFile = InputBox( _
prompt:="Filename:", _
Default:="Lxx-xx-xx")
If sFile = "" Then Exit Sub
ThisWorkbook.Worksheets("OUTPUT").Copy
ActiveSheet.Shapes("Button 1").Delete
ActiveWorkbook.SaveAs "C:\Output_export\" & sFile
Application.ScreenUpdating = True
End Sub
Gruß UweD

Anzeige
AW: aktives Tabellenblatt ohne Makro wegspeichern
22.07.2014 20:01:49
Thomas
Hallo Uwe,
ich habe deine Zeile in mein Makro hinzugefügt und den Name "Button 1" durch meinen Namen "Save As" ersetzt.
Wenn ich das Makro starte, dann kommt nach der Eingabe des Dateinamens und Bestätigung eine Fehlermeldung. Siehe Bilder.
Ich verstehe diese Meldung nichht. Hast du eine Idee, was dem Makro noch fehlen könnte?
Gruß Thomas
Userbild
Userbild

Anzeige
AW: aktives Tabellenblatt ohne Makro wegspeichern
23.07.2014 08:16:57
UweD
Hallo
das angegebene Object gibt es nicht.
Da stimmt was nicht mit dem Namen.
- Starte mal den Recorder
- markiere den Button
- löschen
- Stoppen des Recorders
Im Code wird der Name angezeigt
Da gibt es wie im Beispiel 3 Unterschiedliche
Userbild

Anzeige
AW: aktives Tabellenblatt ohne Makro wegspeichern
23.07.2014 17:42:11
Thomas
Hallo Uwe,
Danke für den Tip mit dem Makrorecorder die Mausklicks aufnehmen. Ich habe bei mir "Button 1" eingegeben und dann wurde das Arbeitsblatt sauber in eine neue Datei abgelegt. Der Button "Save As" wurde auch gelöscht. Aber das Löschen des Buttons hat noch nicht ausgereicht. Die neue Datei ist immer noch mit einer Quelldatei (nämlich die Ausgangsdatei) verbunden. Man kann diese Verknüpfung manuell löschen.
Unter dem Karteireiter Daten gibt es das Icon Verknüpfungen bearbeiten.
siehe Bild
Wenn ich das Fenster öffne, dann kann ich die dort angegebene Verknüpfung löschen.
Gibt es die Möglichkeit dem Makro zu sagen, dass das Löschen der Verknüpfung automatisch geschehen soll?
Wenn ich das Löschen manuell durchführe und mit dem Makrorecorder aufzeichne, dann wird ein absoluter Pfad aufgenommen.siehe unten
Sub Makro_1()
' Makro_1 Makro
Userbild
ActiveWorkbook.BreakLink Name:= _ "C:\S1\NSC_C10_DB_for_IP_V1.xlsm", Type:=xlExcelLinks End Sub
Ich brauche diese Verknüpfung in der neuen Datei eigentlich garnicht.
Hast du eine Idee wie man diese Verknüpfung weglassen kann?
Gruß Thomas

Anzeige
AW: aktives Tabellenblatt ohne Makro wegspeichern
24.07.2014 08:43:04
UweD
Hallo nochmal
hier eine Routine um alle externen Verknüpfungen in Werte umzuwandeln.
Sub Verknuepfung_weg()
On Error Resume Next
Dim Lk As Variant, i As Integer
Lk = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
For i = 1 To UBound(Lk)
ActiveWorkbook.BreakLink _
Name:=Lk(i), _
Type:=xlLinkTypeExcelLinks
Next
End Sub
Gruß UweD

Anzeige
AW: aktives Tabellenblatt ohne Makro wegspeichern
25.07.2014 13:14:57
Thomas
Hallo Uwe,
vielen Dank. Ich habe die Routine noch mit in das Makro aufgenommen. Jetzt läuft das Makro durch. Supi!!!
Eine Sache ist mir noch aufgefallen. Wenn ich das Blatt schütze, dann wird irgendwie die Routine von dir nicht ausgeführt. Es kommt keine Fehlermeldung, aber wenn man das Fenster "Verknüpfungen bearbeiten" öffnet, dann sieht man, dass die Verknüpfung nicht gelöscht wurde.
Gibt es noch eine Möglichkeit diese Verknüpfung zu löschen, wenn der Blattschutz aktiv ist?
Gruß Thomas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Aktives Tabellenblatt ohne Makro wegspeichern


Schritt-für-Schritt-Anleitung

  1. Öffne das Excel-Dokument, das das aktive Tabellenblatt enthält, welches du speichern möchtest.

  2. Gehe zu VBA: Drücke ALT + F11, um den Visual Basic-Editor zu öffnen.

  3. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

  4. Füge den folgenden Code ein:

    Sub SaveFileAs()
        Dim sFile As String
        Application.ScreenUpdating = False
        sFile = InputBox( _
            prompt:="Filename:", _
            Default:="Lxx-xx-xx")
        If sFile = "" Then Exit Sub
        ThisWorkbook.Worksheets("OUTPUT").Copy
        ActiveWorkbook.SaveAs "C:\Output_export\" & sFile
        Application.ScreenUpdating = True
    End Sub
  5. Verlinke die Schaltfläche: Du kannst den Code mit einer Schaltfläche in deinem Arbeitsblatt verknüpfen.

  6. Testen: Starte das Makro und speichere das Blatt unter einem neuen Namen.


Häufige Fehler und Lösungen

  • Fehlermeldung beim Speichern: Wenn du eine Fehlermeldung erhältst, prüfe, ob der Name der Schaltfläche korrekt ist. UweD empfiehlt, den Makrorecorder zu verwenden, um den genauen Namen herauszufinden.

  • Verknüpfungen bleiben bestehen: Wenn die neue Datei weiterhin mit der Quelldatei verbunden ist, füge folgenden Code hinzu, um alle externen Verknüpfungen zu entfernen:

    Sub Verknuepfung_weg()
        On Error Resume Next
        Dim Lk As Variant, i As Integer
        Lk = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
        For i = 1 To UBound(Lk)
            ActiveWorkbook.BreakLink _
                Name:=Lk(i), _
                Type:=xlLinkTypeExcelLinks
        Next
    End Sub

Alternative Methoden

Wenn du das aktive Tabellenblatt ohne Makro speichern möchtest, kannst du die folgenden Schritte manuell ausführen:

  1. Aktives Blatt kopieren: Klicke mit der rechten Maustaste auf das Blatt und wähle „Bewegen oder Kopieren“.
  2. Neues Arbeitsblatt erstellen: Erstelle ein neues Arbeitsblatt und füge das kopierte Blatt dort ein.
  3. Speichern: Speichere die neue Datei über „Datei“ > „Speichern unter“.

Praktische Beispiele

  1. Beispiel für das Speichern: Wenn du das aktive Blatt „OUTPUT“ nennst und es als „Export.xlsx“ speichern möchtest, wirst du nach dem Makro gefragt, wo du die Datei speichern möchtest.
  2. Verknüpfungen entfernen: Um sicherzustellen, dass alle Verknüpfungen entfernt werden, solltest du den Code zur Verknüpfungsentfernung in dein Hauptmakro integrieren.

Tipps für Profis

  • Schutz des Blattes: Wenn dein Blatt geschützt ist, kann der Code zur Verknüpfungsentfernung möglicherweise nicht ausgeführt werden. Es kann hilfreich sein, den Blattschutz temporär aufzuheben, um sicherzustellen, dass alle Verknüpfungen entfernt werden.

  • Benutzerdefinierte Schaltflächen: Erstelle benutzerdefinierte Schaltflächen in der Symbolleiste, um den Zugriff auf dein Makro zu erleichtern.


FAQ: Häufige Fragen

1. Kann ich das Makro auch in Excel Online verwenden?
Nein, Makros sind in Excel Online nicht verfügbar. Du musst die Desktop-Version verwenden.

2. Was kann ich tun, wenn die Datei nicht gespeichert wird?
Überprüfe, ob der angegebene Speicherort korrekt ist und ob du die erforderlichen Berechtigungen hast, um dort zu speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige