Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 18.04.2015
Version(en): 2013
29.05.2015, 11:32
(Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2015, 11:35 von Suphi.)
(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
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
29.05.2015, 12:45
(Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2015, 12:48 von Käpt'n Blaubär.)
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
Registriert seit: 13.04.2014
Version(en): 365, 2019
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.
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
29.05.2015, 13:41
(Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2015, 13:42 von Käpt'n Blaubär.)
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
Registriert seit: 18.04.2015
Version(en): 2013
29.05.2015, 14:36
(Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2015, 14:50 von Suphi.)
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
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
29.05.2015, 17:38
(Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2015, 08:34 von Rabe.
Bearbeitungsgrund: Zitat umgestellt
)
(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
Registriert seit: 18.04.2015
Version(en): 2013
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
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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
|