Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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

VBA Problem

VBA Problem
22.12.2021 09:37:04
Peter
Artikel ist meine erste Spalte
EK meine 2.te Spalte
EK soll Pflichtfeld werden, sobald in Artikel was eingetragen wird
Speichern der Datei soll verhindert werden, sobald in Artikel was steht und das zugehörige Feld in EK leer ist.
Anbei mein Code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Artikel As Range
Dim EK As Range
For Each Artikel In Worksheets("Test").Range("A2:A5")
If Artikel  "" And EK.Offset(0, 1) = "" Then
MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt!"
Cancel = True
Exit For
End If
Next
End Sub 
Fehlermeldung siehe Screenshots - Datei habe ich angehängt. Wäre toll, wenn mir jemand helfen könnte. Bin noch am Angang mit VBA.
Userbild
https://www.herber.de/bbs/user/149944.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Problem
22.12.2021 09:49:58
ChrisL
Hi Peter
Die Variable EK ist leer, drum der Fehler. Braucht es aber gar nicht.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Artikel As Range
For Each Artikel In Worksheets("Test").Range("A2:A5")
If Artikel  "" And Artikel.Offset(0, 1) = "" Then
MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt!"
Cancel = True
Exit For
End If
Next Artikel
End Sub
Gemäss deiner Beschreibung evtl. noch von BeforeClose auf BeforeSave ändern.
cu
Chris
AW: VBA Problem
22.12.2021 10:09:42
Peter
Danke Chris - klappt wunderbar mit BforeClose, wenn ich den Code auf BeforeSave ändere bekomme ich eine Fehlermeldung:
"Fehler beim Kompilieren: Deklaration der Prozedur entspricht nicht der Beschreibung eine Ereignisses oder einer Prozedur mit demselben Namen."

Private Sub Workbook_BeforeSave(Cancel As Boolean)
Dim Artikel As Range
For Each Artikel In Worksheets("Test").Range("A2:A5")
If Artikel  "" And Artikel.Offset(0, 1) = "" Then
MsgBox "Es sind nicht alle Pflichtfelder ausgefüllt!"
Cancel = True
Exit For
End If
Next Artikel
End Sub

Anzeige
AW: VBA Problem
22.12.2021 10:15:25
ChrisL
Hi
Nicht einfach den Text ändern, sondern über das Dropdown rechts oben gehen. Dann bekommst automatisch die richtige Zeile:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
cu
Chris
AW: VBA Problem
22.12.2021 10:26:23
Peter
Perfekt - vielen DANK für die schnelle Hilfe !!!
Gruß Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige