Löschung mittel CommandButton auslösen
Hallo Exelgemeinde
Habe folgendes Problem:
Auf Tabellenblatt1 habe ich einen CommandButton1 eingefügt. Mit diesem Button soll eine Löschung der Zellen A8-M54 auf dem ausgeblendeten Tabellenblatt12 ausgelöst werden.
Eine bereits bestehende Lösung mit CommandButton2 auf dem Tabellenblatt12 funktioniert mit folgendem Code:
Private Sub CommandButton2_Click()
Dim e
ActiveSheet.Unprotect
erg = MsgBox("Sollen die Eingaben wirklich gelöscht werden??", vbExclamation + vbYesNo, "Wirklich Löschen?")
If erg = vbYes Then
Range("A8:M54").ClearContents
Else
MsgBox ("Daten wurden NICHT gelöscht !!!")
End If
ActiveSheet.Protect
End Sub
Wie bereits erwähnt ist das Tabellenblatt 12 ausgeblendet und die Löschung sollte über das Blatt 1 erfolgen.
Bereits in Voraus vielen Dank für Lösungsansätze
Gruß Horst
Antwort schreiben
Antwort 1 von ACR vom 21.03.2022, 12:44 Options
Hallo
Muß noch hinzufügen, das der Button auf Blatt 12 nur funktioniert, wenn ich das Blatt eingeblendet habe.
Gruß Horst
Antwort 2 von fedjo vom 21.03.2022, 13:28 Options
Hallo Horst,
einfach das Tabellenblatt mit einfügen.
Sheets(12).Range("A8:M54").ClearContents
Gruß
fedjo
Antwort 3 von ACR vom 21.03.2022, 19:27 Options
Hallo Exelgemeinde
Habe Code geändert. Funktioniert auch einwandfrei aber nur, wenn Blatt "Abgabe" sichtbar ist. Wenn ich das Blatt ausblende, wird mir ein Laufzeitfehler 1004 --Die Select-Methode des Worksheet konnte nicht ausgeführt werden--.
Frage: Wo liegt denn hier mein Fehler???
Private Sub CommandButton1_Click()
Dim varPW As Variant
'Variable, in die das Passwort, das in eine Inputbox eingetragen wird, geschrieben wird.
varPW = InputBox("Diese Funktion ist nur berechtigten Personen erlaubt und daher mit einem Passwort geschützt.")
'Wenn die Variable leer ist (leer, wenn kein Passwort eingegeben wurde) oder wenn die Variable _
den Zustand "False" hat (False, wenn die Abbrechen-Schaltfläche betätigt wurde), dann Prozedur beenden
If varPW = "" Or varPW = False Then Exit Sub
'Abfrage ob eingetragenes Passwort korrekt ist. Wenn das Passwort korrekt war, eine Meldung am _
Bildschirm ausgeben. Meldung hier nur für dieses Beispiel. Anstelle der Zeile mit der Messagebox-Funktion, _
müsste dann das weitere Makro zwischen der Zeile mit der "If-Anweisung" und dem Wort "Else" aufgeführt werden
If varPW = "hs2303" Then
'Jetzt folgt die Löschung
Sheets("Abgabe").Select
ActiveSheet.Unprotect
erg = MsgBox("Sollen die Eingaben wirklich gelöscht werden??", vbExclamation + vbYesNo, "Wirklich Löschen?")
If erg = vbYes Then
ActiveSheet.Range("$A$5:$M$54").ClearContents
Else
MsgBox ("Daten wurden NICHT gelöscht !!!")
End If
ActiveSheet.Protect
Sheets("Arztrechnungen").Select
Else
MsgBox "Das war leider das falsche Passwort", vbCritical, "Passwortfehler..."
End If
End Sub
Bitte um Hilfe
Gruß Horst
Antwort 4 von finger59 vom 21.03.2022, 23:08 OptionsLösung
Hallo Horst,
ich bin leider kein Vba-Kenner, aber falls es darum geht das Tabellenblatt Abgabe erst wieder einzublenden, dann füge zwischen den beiden Zeilen
Sheets("Abgabe").Select
ActiveSheet.Unprotect
noch diese Zeile ein:
Sheets("Abgabe").Visible = True
Nachdem Dein Vorgang abgeschlossen ist, kannst Du mit
Sheets("Abgabe").Select
ActiveWindow.SelectedSheets.Visible = False
diese dann wieder ausblenden.
Habe dazu mal den Makrorekorder benutzt und hoffe das es für
Dich so auch ohne irgendeine andere Fehlermeldung möglich ist.
In diesem Sinne... have a nice Day... Gruß Helmut
Antwort 5 von fedjo vom 22.03.2022, 17:29 Options
Hallo Horst,
es ist nicht nötig das Tabellenblatt (Abgabe) Aus und Einblenden.
Private Sub CommandButton1_Click()
Dim varPW As Variant
'Variable, in die das Passwort, das in eine Inputbox eingetragen wird, geschrieben wird.
varPW = InputBox("Diese Funktion ist nur berechtigten Personen erlaubt und daher mit einem Passwort geschützt.")
'Wenn die Variable leer ist (leer, wenn kein Passwort eingegeben wurde) oder wenn die Variable _
den Zustand "False" hat (False, wenn die Abbrechen-Schaltfläche betätigt wurde), dann Prozedur beenden
If varPW = "" Or varPW = False Then Exit Sub
'Abfrage ob eingetragenes Passwort korrekt ist. Wenn das Passwort korrekt war, eine Meldung am _
Bildschirm ausgeben. Meldung hier nur für dieses Beispiel. Anstelle der Zeile mit der Messagebox-Funktion, _
müsste dann das weitere Makro zwischen der Zeile mit der "If-Anweisung" und dem Wort "Else" aufgeführt werden
If varPW = "hs2303" Then
'Jetzt folgt die Löschung
Sheets("Abgabe").Unprotect
erg = MsgBox("Sollen die Eingaben wirklich gelöscht werden??", vbExclamation + vbYesNo, "Wirklich Löschen?")
If erg = vbYes Then
Sheets("Abgabe").Range("$A$5:$M$54").ClearContents
Else
MsgBox ("Daten wurden NICHT gelöscht !!!")
End If
Sheets("Abgabe").Protect
Else
MsgBox "Das war leider das falsche Passwort", vbCritical, "Passwortfehler..."
End If
End Sub
Gruß
fedjo