Clever-Excel-Forum

Normale Version: Makro zum Löschen von Verknüpfungen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo ,
kann mir hier jemand helfen ?
Ich habe folgendes Problem .
Ich habe eine Arbeitsmappe mit 2 Blättern ( Vorkalkulation und Abrechnung) .Beide werden Mit daten aus anderen Dateien beschrieben .
Ich möchte einen Button Auf dem Blatt Vorkalkulation der auf ein Makro verknüpft ist ( was nicht das Problem ist ) Aber dieses Makro soll :
Die Arbeitsmappe Speichern unter einem Neuen Namen (Speichern Unter ) Eingabe des neuen Namen Individuell . Außerdem sollen Beim Speichern Alle Verknüpfungen und Makros von Blatt 1 ( Vorkalkulation ) entfernt werden aber für Blatt 2 ( Abrechnung) erhalten werden .
Dann Benötige ich ein Makro ( über Button auf Blatt 2 angesteuert) Dieses Makro müsste dann alle Makros und Verknüpfungen entfernen und die Arbeitsmappe unter den Gleichen Namen Speichern .
Habe jetzt 6 Wochen experimentiert und mir mehrfach alles zerschossen . Weiter als bis zum Abspeichern eines Blattes ohne Verknüpfungen bin ich nie gekommen .
Wäre super wenn Jemand einen Lösungs Ansatz hätte.
Danke im Voraus !!
Lieben Gruß
Guido

Das ist die Datei die Gespeichert werden soll
[attachment=35447]
Ich sehe gar keine Verknüpfungen.
Ich sehe die Verknüpfungen und auch das Makro ?
Wenn ich die datei öffne die ich grade Hochgeladen habe .
Hallo Guido

ich denke iich habe einen funktionierenden Code der dein Problem löst. Ich lösche aber KEIN VBA Modul, wei ich einen Laufzeitfehler bekam. Hatte auf dem PC (nicht meiner!) keine Zugriffsberechtigung auf das VBA Projekt! Also ging ich den anderen Weg.

Ich kopiere die beiden Blaetter zuerst in ein neues Workbook. Dort lösche ich die Button und die Formeln. Das neue Workbook hat ja keine Module und laesst sich als xlsx Datei speichern. Vielleicht musst du den Code noch etwas anpassenç Würde mich freuen wenn damit dein Problem gelöst ist ...

mfg Gast 123

Code:
ub Blattspeichern()
Sheets(Array("Vorkalkulation", "Abrechnung")).Copy
With ActiveWorkbook.Worksheets("Vorkalkulation")
    .Buttons(1).Delete
    .UsedRange.Copy
    .UsedRange.Value = .UsedRange.Value
End With

Application.Dialogs(xlDialogSaveAs).Show arg1:=ThisWorkbook.Name
ActiveWorkbook.Close True   'Speichern
ActiveWorkbook.Close False  'NICHT speichern
End Sub
Hallöchen,

Da Du alle Makros entfernen willst denke ich auch, sollte ein Speichern als xlsx reichen.

Für das Entfernen von Verknüpfungen kann man ggf. auch den Code aufzeichnen und falls die Verknüpfungen auf den Blätttern unterschiedlich sind und nicht gemischt auf beiden vorkommen könnte man auch den ersten Fall einfach umsetzen. Aufgezeichnet für alle Verknüpfungen sieht das so aus:

Code:
Option Explicit

Sub Makro1()
'
' Makro1 Makro
'

'
    ActiveWorkbook.BreakLink Name:= _
        "I:\Prozesse\SAP\SAP Field Service\Test Montagekalkulation\Eingabe.xlsx", Type _
        :=xlExcelLinks
    ActiveWorkbook.BreakLink Name:= _
        "D:\Montagevorkalkulation\Montagevorkalkulation test\Eingabe.xlsx", Type:= _
        xlExcelLinks
    Application.CommandBars("Queries and Connections").Visible = False
End Sub

Leider ist das bei Dir ja etwas gemixt. Wenn Du die Formeln erhalten willst, kannst Du aber auch gezielt die Zellen oder Spalten in Werte umsetzen, die diese Verknüpfungen enthalten. Das würde Dir die Formeln in den anderen Zellen erhalten.
Hallo ,
kann mir hier jemand helfen ?
Ich habe folgendes Problem .
Ich habe eine Arbeitsmappe mit 2 Blättern ( Vorkalkulation und Abrechnung) .Beide werden Mit daten aus anderen Dateien beschrieben .
Ich möchte einen Button Auf dem Blatt Vorkalkulation der auf ein Makro verknüpft ist ( was nicht das Problem ist ) Aber dieses Makro soll :
Die Arbeitsmappe Speichern unter einem Neuen Namen (Speichern Unter ) Eingabe des neuen Namen Individuell . Außerdem sollen Beim Speichern Alle Verknüpfungen und Makros von Blatt 1 ( Vorkalkulation ) entfernt werden aber für Blatt 2 ( Abrechnung) erhalten werden .
Dann Benötige ich ein Makro ( über Button auf Blatt 2 angesteuert) Dieses Makro müsste dann alle Makros und Verknüpfungen entfernen und die Arbeitsmappe unter den Gleichen Namen Speichern .
Habe jetzt 6 Wochen experimentiert und mir mehrfach alles zerschossen . Weiter als bis zum Abspeichern eines Blattes ohne Verknüpfungen bin ich nie gekommen .
Wäre super wenn Jemand einen Lösungs Ansatz hätte.
Danke im Voraus !!
Lieben Gruß
Guido


Guido2111 
(20.11.2020, 19:01)Gast 123 schrieb: [ -> ]Hallo Guido

ich denke iich habe einen funktionierenden Code der dein Problem löst. Ich lösche aber KEIN VBA Modul, wei ich einen Laufzeitfehler bekam. Hatte auf dem PC (nicht meiner!) keine Zugriffsberechtigung auf das VBA Projekt! Also ging ich den anderen Weg.

Ich kopiere die beiden Blaetter zuerst in ein neues Workbook. Dort lösche ich die Button und die Formeln. Das neue Workbook hat ja keine Module und laesst sich als xlsx Datei speichern. Vielleicht musst du den Code noch etwas anpassenç Würde mich freuen wenn damit dein Problem gelöst ist ...

mfg Gast 123

Code:
ub Blattspeichern()
Sheets(Array("Vorkalkulation", "Abrechnung")).Copy
With ActiveWorkbook.Worksheets("Vorkalkulation")
    .Buttons(1).Delete
    .UsedRange.Copy
    .UsedRange.Value = .UsedRange.Value
End With

Application.Dialogs(xlDialogSaveAs).Show arg1:=ThisWorkbook.Name
ActiveWorkbook.Close True   'Speichern
ActiveWorkbook.Close False  'NICHT speichern
End Sub
Hallo ,erstmal danke ,
leider geht das Nicht ich bekomme die Fehlermeldung :
Fehler beim Kompilieren Außerhalb einer Prozedur Ungültig 
Gruß Guido

Hallo  André ,
leider funktioniert auch dein Makro nicht .
Bekomme Laufzeitfehler 5 , beim Debuggen zeigt er auf die letzte Zeile.
Danke 
Gruß
Guido
Hallo,

(23.11.2020, 09:37)Guido1166 schrieb: [ -> ]Hallo ,erstmal danke ,
leider geht das Nicht ich bekomme die Fehlermeldung :
Fehler beim Kompilieren Außerhalb einer Prozedur Ungültig 

scheinbar ein Copy&Paste-Fehler von Gast 123 es heißt

Code:
Sub Blattspeichern()

und nicht

Code:
ub Blattspeichern()

(es fehlt das S.
Hallo Stefan ,
hatte ich dann auch bemerkt , Danke.
Für Blatt 1 Funktioniert das super bekomme es aber nicht auf Blatt 2 hin .
Da bleibt der bei Delete Button 6 Hängen .
Huh
Gruß
Guido
Läuft hier tadellos:

Code:
Sub M_snb()
  ThisWorkbook.SaveAs Replace(ThisWorkbook.Name, ".xlsm", "_def.xlsx"), 51
  For Each it In Sheets
      it.UsedRange.Value = it.UsedRange.Value
  Next
  ThisWorkbook.Save
End Sub

Csosspost: http://www.office-loesung.de/p/viewtopic.php?f=166&t=851406
Seiten: 1 2