Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Anfänger frage: Speichern ohne Makros
#11
Auch Hallo,

wenn der Button aus der ActiveX-Leiste ist, könnte es so gehen.

Code für den Button

Code:
Private Sub CommandButton1_Click()
  Application.OnTime Now + TimeValue("0:00:01"), "prcLoeschen"
End Sub
Und in einem allgemeinen Modul
Code:
Sub prcLoeschen()
  Application.DisplayAlerts = False
  Worksheets("Tabelle2").Delete
  Worksheets("Name der Tabelle").OLEObjects("Name des Buttons").Delete
  ThisWorkbook.SaveAs Filename:=Mid(ThisWorkbook.Name, 1, InStr(1, ThisWorkbook.Name, ".") - 1), FileFormat:=xlOpenXMLWorkbook
  Application.DisplayAlerts = True
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#12
(29.05.2015, 11:22)Steffl schrieb: Auch Hallo,

wenn der Button aus der ActiveX-Leiste ist, könnte es so gehen.

Code für den Button



Code:
Private Sub CommandButton1_Click()
  Application.OnTime Now + TimeValue("0:00:01"), "prcLoeschen"
End Sub
Und in einem allgemeinen Modul


Code:
Sub prcLoeschen()
  Application.DisplayAlerts = False
  Worksheets("Tabelle2").Delete
  Worksheets("Name der Tabelle").OLEObjects("Name des Buttons").Delete
  ThisWorkbook.SaveAs Filename:=Mid(ThisWorkbook.Name, 1, InStr(1, ThisWorkbook.Name, ".") - 1), FileFormat:=xlOpenXMLWorkbook
  Application.DisplayAlerts = True
End Sub

ich kenne mich mit Makros recht wenig aus deswegen habe ich die Datei hochgeladen.
Kenne das nur mit allgemeinen Modul aber aber wo muss ich den Code für Private Sub CommandButton1_Click() eintragen ?
Button ist ein ActiveX Steuerelement.
Wird die Orginaldatei in deinem Beispielcode überschrieben ?

gruss

Suphi
Antworten Top
#13
Hallo,

ich kann mir deine Datei erst heute abend runterladen. Die Originaldatei wird nicht überschrieben (zumindest bei meinen Tests). Es existiert danach eine xlsm- und xlsx-Datei.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#14
Hallo, 



Du wählst den Button aus und fügst ihn auf dem Tabellenblatt ein
dann einen Doppelklick in den Button ... das bringt Dich in den VBA-Editor und auch gleich in das richtige Arbeitsblatt.
Außerdem wurde mit dem Doppelklick in den Button auch gleich das Makrogerüst erstellt. Du mußt es nur noch mit Leben erfüllen.

Wird die Orginaldatei in deinem Beispielcode überschrieben ?

Achtung !!! rufst Du ein Makro auf und es wird irgendwas überschrieben kann das nicht mehr rückgängig gemacht werden.
Also teste erst alles in einer Testdatei oder in einem Testblatt.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#15
Hallo,

das hat mal ein schlauer Vogel in einem Forum bereitgestellt:


Code:
Sub VBA_Code_entfernen()
Dim Ding As Object
Dim Zeile As Long

 For Each Ding In ActiveWorkbook.VBProject.vbcomponents

  'Type 100 = DieseArbeitsmappe und alle Tabellen
   If Ding.Type = 100 Then

     With ActiveWorkbook.VBProject.vbcomponents(Ding.Name).CodeModule
       For Zeile = 1 To .CountOfLines
         .DeleteLines 1
       Next Zeile
     End With

  'Type 1 = Modul, Type 2 = Klassenmodul, Type 3 = UserForm
   Else
     ActiveWorkbook.VBProject.vbcomponents.Remove Ding
   End If

 Next


End Sub

Hiermit speichere ich eine Datei als xlsx, habe aber anschließend die xlsm noch offen, was bei dem anderen Code nicht der Fall ist (auch aus dem Netz):


Code:
Private Sub CommandButton1_Click()
Dim StrDatei As String

Dim loLastRow As Long
Dim logefneu As Double
loLastRow = Cells(Rows.Count, 1).End(xlUp).Row
logefneu = WorksheetFunction.CountA(Range(Cells(1, 1), Cells(loLastRow, 21)))
If logefneu <> loGef Then
StrDatei = ThisWorkbook.Path & "\AAAAAA.xlsm"
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ThisWorkbook.Save
ThisWorkbook.SaveAs Filename:="M:\AAAAAA.xlsx", FileFormat:=xlOpenXMLWorkbook
ThisWorkbook.SaveAs Filename:="M:\AAAAAA.xlsx", FileFormat:=xlOpenXMLWorkbook, ConflictResolution:=xlLocalSessionChanges
Workbooks.Open StrDatei
ThisWorkbook.Close savechanges = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End If
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#16
Hallo,

ActiveSheet.Shapes("CommandButton1").Delete
(kann man übrigens auch mit dem Makrorekorder aufzeichnen)
und ... wenn es mehr als ein Button ist, dann eine Schleife drum.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#17
hallo,

es ist kein ActiveX Steuerelement sondern Formularsteuerelement Button sry hab es verwechselt.
Ich hab nur ein Button und weiss net wie ich mit sovielen Codeteile umgehen soll die ihr gepostet habt.
Hab versucht über  ActiveX Steuerelement Button,bekomme es aber auch dort net zum laufen selbe fehlermeldung.
Für mein Anliegen hab ich extra ein Datei hochgeladen um zu verstehen was ich ändern muss dammit es läuft.
Ich würde mich freuen wenn ihr tipps geben könntet in bezug der Hochgeladene Datei.

gruss

Suphi
Antworten Top
#18
(29.05.2015, 14:36)Suphi schrieb: es ist kein ActiveX Steuerelement sondern Formularsteuerelement Button sry hab es verwechselt.
.... wäre aber wichtig gewesen

(29.05.2015, 14:36)Suphi schrieb: Ich hab nur ein Button und weiss net wie ich mit sovielen Codeteile umgehen soll die ihr gepostet habt.
.... stimmt nicht, es sind zwei

(29.05.2015, 14:36)Suphi schrieb: Hab versucht über  ActiveX Steuerelement Button,bekomme es aber auch dort net zum laufen selbe fehlermeldung.
.... weil es keine ActiveX-Elemente sind wundert mich das überhaupt nicht.

(29.05.2015, 14:36)Suphi schrieb: Für mein Anliegen hab ich extra ein Datei hochgeladen um zu verstehen was ich ändern muss dammit es läuft.
Ich würde mich freuen wenn ihr tipps geben könntet in bezug der Hochgeladene Datei.
.... also, eine Zeile, bestehend aus zwei oder drei Zellen ... bischen wenig Info, hast Du das Gefühl nicht auch?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#19
Hallo,

mit diesem Code funktioniert es aber jetzt hab ich ein neues Problem...

Code:
Option Explicit
Const strFileName As String = "Dateiname"
Sub Speichern01()
   Dim wksSheet As Worksheet
   Dim varPath As Variant
   On Error GoTo Fin
   Application.DisplayAlerts = False
   varPath = Application.GetSaveAsFilename( _
       InitialFileName:=ThisWorkbook.Path & "\" & strFileName, _
       FileFilter:="Excel(*.xlsx), *.xlsx", _
       Title:="Speichern ohne Makros")
   If Not varPath = False Then
       For Each wksSheet In ThisWorkbook.Worksheets
           If wksSheet.Name <> ActiveSheet.Name Then
               wksSheet.Delete
           End If
       Next wksSheet
       With ActiveSheet
           .Shapes(Application.Caller).Delete
           .UsedRange.Value = .UsedRange.Value
       End With
       With ThisWorkbook
           .SaveAs varPath, 51
           .Close False
       End With
   End If
Fin:
   Application.DisplayAlerts = True
   If Err.Number <> 0 Then MsgBox "Fehler: " & _
       Err.Number & " " & Err.Description
End Sub

Wenn ich abspeicher wird auch das offene Dokument geschlossen und Excel öffnet sich neu ohne Vorlage quasi leer !
Wie kann ich das verhindern ?

gruss

Suphi
Antworten Top
#20
Hi,

mir scheint, Du liest die Beiträge der Helfer nicht.
Zumindest gibt es überhaupt keine Reaktion, keine Rückmeldung, keine Erklärung, nichts.

Was glaubst Du wohl, wie lange die Helfer sich das gefallen lassen?
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste