753 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich würde gerne ein Formular in Excel abbilden.

Allerdings soll das Formular erst dann gespeichert (gesendet) werden können, wenn in allen Feldern etwas ausgefüllt ist.

Eigentlich geht es ums senden aber ich "Unwissender" vermute nicht, dass das möglich ist, darum auch die Frage ob das vielleicht dann mit speichern klappt....

In Excel kann ich mich n bisserl aus aber wenn es um VB oder Makros oder so geht, brauche ich harrklein die Info wie das geht...

Danke Euch schon mal im Voraus
HG Alex

3 Antworten

0 Punkte
Beantwortet von
Beispiel, Makro in "Diese Arbeitsmappe":
[code]Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   If WorksheetFunction.CountA(Worksheets("Tabelle1").Range("A1,A2,A3")) < 3 Then
      MsgBox "Zellen A1, A2 und A3 müssen ausgefüllt sein" & Chr(13) & _
        "Es kann nicht gespeichert werden"
      Cancel = True
   End If
End Sub[/code]

Das speichern wird verweigert bis irgendetwas in A1, A2 und A3 steht.
0 Punkte
Beantwortet von
Hei vba,

Danke erstmal für deine Antwort.

Ich bin in einer neuen xlsx auf den Reiter Entwicklertools, dann auf den Button Makros und habe dann bei
Makros in: <Diese Arbeitsmappe> ausgewählt und den Namen save1 vergeben.

In dem Fenster auf der rechten Seite habe ich dann Deinen Code einkopiert
sieht dann so aus:

Sub save1()
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   If WorksheetFunction.CountA(Worksheets("Tabelle1").Range("A1,A2,A3")) < 3 Then
      MsgBox "Zellen A1, A2 und A3 müssen ausgefüllt sein" & Chr(13) & _
        "Es kann nicht gespeichert werden"
      Cancel = True
   End If
End Sub
End Sub

Dann dieses Fenster geschlossen und A1, A2, A3 leer gelassen und die Excel, als Excel mit Makros gespeichert. Es kam leider keine Meldung, dass A1, A2, A3 leer sind. Auch nicht wenn ich die Datei schliesse und wieder öffne, Makros aktiviere und irgendwo anders ausser A1,2,3 was eintrage kann ich die Datei speichern ohne Meldung.

Ich vermute, dass ich Deinen Code falsch einkopiert habe...

Kannst Du mir bitte nochmal helfen?

thx
0 Punkte
Beantwortet von
nicht falsch kopiert, nur etwas dazugedichtet :)

kein eigenes sub drumrumbauen, Es ist ja bereits ein Sub, eben ein Private Sub was aktiv wird sobald gespeichert werden soll
also so reinkopieren so wie es ist
...