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, 12:32
(Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2015, 12:35 von Suphi.)
(29.05.2015, 12: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, 13:45
(Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2015, 13: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.
Registriert seit: 13.04.2014
Version(en): 365
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, 14:41
(Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2015, 14: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.
Registriert seit: 18.04.2015
Version(en): 2013
29.05.2015, 15:36
(Dieser Beitrag wurde zuletzt bearbeitet: 29.05.2015, 15: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, 18:38
(Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2015, 09:34 von Rabe.
Bearbeitungsgrund: Zitat umgestellt
)
(29.05.2015, 15:36)Suphi schrieb: es ist kein ActiveX Steuerelement sondern Formularsteuerelement Button sry hab es verwechselt. .... wäre aber wichtig gewesen (29.05.2015, 15: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, 15: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, 15: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?
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?
|