Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1844to1848
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox funktioniert nicht

MsgBox funktioniert nicht
30.08.2021 14:20:14
Memo
Hallo zusammen,
bei diesem folgenden Code werden NACH erfolgreichen speichern alle aktuellen Steuerelemente sowie alle Arbeitsblätter ausser der aktiven, gelöscht und die Zeile 1 auf eine Zeilenhöhe von 13 zurückgesetzt.
Wenn ich jedoch auf "Abbrechen" klicke, löscht er dennoch die Arbeitsblätter und setzt die Zeile 1 zurück - soll er ja nicht tun, weil abgebrochen.
Wie kann ich ab: "If Not varFileName = False Then.. bis End Sub " in diese MsgBox packen?:
If Msgbox ("Speichern unter", vbOKCancel, "x Meldung") = vbOk Then
MsgBox "Datei gespeichert"
Else
MsgBox "Abbruch"
End if

Private Sub CommandButton3_Click()
Dim varFileName As Variant, objWs As Worksheet, objShp As Shape, sh As Object
ChDir "C:/"
varFileName = Application.GetSaveAsFilename(varFileName, "Excel Arbeitsmappe ohne VBA (*.xlsx),*.xlsx,")
Application.DisplayAlerts = False
For Each sh In Sheets
If Not sh.Name = ActiveSheet.Name Then sh.Delete
Next sh
Application.DisplayAlerts = True
If Not varFileName = False Then
For Each objWs In ThisWorkbook.Worksheets
For Each objShp In objWs.Shapes
If objShp.Type = 12 Then objShp.Delete
Next objShp
Next objWs
ThisWorkbook.SaveAs (varFileName), FileFormat:=xlWorkbookNormal
Else
MsgBox "Abbruch durch Nutzer."
End If
ActiveSheet.Range("1:1").RowHeight = 13
Application.DisplayAlerts = False
End Sub
Danke für eure Unterstützung.
VG
Memo

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

Betreff
Datum
Anwender
Anzeige
AW: MsgBox funktioniert nicht
30.08.2021 14:29:46
Nepumuk
Hallo Memo,
teste mal:

Private Sub CommandButton3_Click()
Dim varFileName As Variant, objShp As Shape, sh As Object
ChDrive "C"
ChDir "C:/"
varFileName = Application.GetSaveAsFilename(varFileName, "Excel Arbeitsmappe ohne VBA (*.xlsx),*.xlsx,")
If Not varFileName = False Then
Application.DisplayAlerts = False
For Each sh In Sheets
If Not sh.Name = ActiveSheet.Name Then sh.Delete
Next sh
Application.DisplayAlerts = True
For Each objShp In ActiveSheet.Shapes
If objShp.Type = msoOLEControlObject Then objShp.Delete
Next objShp
ActiveSheet.Range("1:1").RowHeight = 13
ThisWorkbook.SaveAs varFileName, FileFormat:=xlWorkbookNormal
Else
MsgBox "Abbruch durch Nutzer."
End If
End Sub
Gruß
Nepumuk
Anzeige
AW: MsgBox funktioniert nicht
30.08.2021 14:59:43
Memo
Hi Nepumuk,
super...danke...es funktioniert.
Du hast
If Not varFileName = ... ganz oben gesetzt.
War das die Lösung?
Möchte es gern verstehen.
Danke.
Gruß
Memo
AW: MsgBox funktioniert nicht
30.08.2021 15:04:28
Daniel
Hi
VBA-Codes werden so wie der Text gschrieben ist, von oben nach unten abgearbeitet und ausgeführt.
Also einfach mal den Code zeilenweise von oben nach unten durchlesen und sich dabei vorstellen, was passiert.
Die VBA-Befehle sind ja aus dem englischen entnommen, so dass das mit rudimentären Englischkenntnissen kein Problem sein sollte.
und es sollte klar sein, alles, was außerhalb eines IF-Blocks steht, wird immer abgearbeitet.
Gruß Daniel
Anzeige
Hi Daniel
30.08.2021 15:13:42
Memo
danke für die Erklärung.
VG
Memo
AW: MsgBox funktioniert nicht
30.08.2021 15:05:59
Nepumuk
Hallo Memo,
alles was ausgeführt werden soll wenn der User auf OK klickt muss nach dem If .. und vor dem Else kommen.
Gruß
Nepumuk
Danke für die Erklärung Nepumuk owT
30.08.2021 15:14:43
Memo
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige