Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1540to1544
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

Pflichtfelde / Macro allgemein

Pflichtfelde / Macro allgemein
16.02.2017 08:46:48
Wolfgang
Moin zusammen,
ich benötige mal wieder einen Denkanstoß von euch bitte.
Ich habe ein kleines Makro womit ich bestimmte Zellen abfrage.
Das funktioniert auch schon ein wenig.
Jetzt verstehe ich nicht ganz warum das Makro nicht so funktioniert wie ich mir das vorstelle.
Wenn ich das Makro in "Microsoft Excel Objekte" unter Diese Arbeitsmappe ablege und ich speichern klicke wird das Makro abgefragt. (unberührt davon ob die Zellen befüllt sind oder nicht) Aber es läuft.
Hatte mir dann gedacht das liegt daran weil ich 3 Sheets in dieser Arbeitmappe habe.
Dann habe ich das Makro aus "Microsoft Excel Objekte" unter Diese Arbeitsmappe ausgeschnitten und unter "Microsoft Excel Objekte" unter Tabelle1(xxx) eingefügt.
Da wo es abgefragt werden soll.
Jetzt kann ich aber die Arbeitsmappe beliebig abspeichern ohne einer Abfrage.
Ich habe es auch schon ins Modul1 und und und kopiert.
Irgendwie steige ich da noch nicht ganz hinter.
Wäre dankbar wenn mir jemand einen Tipp geben könnte.
Vielen Dank.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW:zeig mal den Code gruss owT
16.02.2017 08:53:58
hary
.
AW: AW:zeig mal den Code gruss owT
16.02.2017 09:45:28
Wolfgang
Guten Morgen Harry,
Anbei der Code
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("Formular Drehversuch").Cells(4, 8) = "" Then
MsgBox "Bitte Name eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular Drehversuch").Cells(4, 9) = "" Then
MsgBox "Bitte Vertriebsgebiet eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular Drehversuch").Cells(4, 14) = "" Then
MsgBox "Bitte Firmenname eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular Drehversuch").Cells(4, 15) = "" Then
MsgBox "Bitte Ansprechpartner eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End Sub

Anzeige
AW:Code funzt
16.02.2017 10:07:06
hary
Moin Wolfgang
Wenn du den Code unter "DieseArbeitsmappe" gelegt hast, kann nur bei allen 4 gefuellten Zellen die Mappe gespeichert werden.
Was soll den passieren?
Evtl. liegt es bei dir auch am Blattnamen. In Blattnamen sollte man Sonderzeichen vermeiden. Also statt des Leerzeichen einen Unterstrich nehmen.
Vor End Sub fehlt ein: End If.
gruss hary
AW: AW:Code funzt
16.02.2017 11:00:29
Wolfgang
Hallo Harry,
danke für deine Mühe.
Das ist es ja genau. Ich habe das Macro jetzt wieder nur in die "DieseArbeitsmappe" abgelegt.
Alle andere Module und Tabellenblätter sind leer.
Dann klicke ich auf Speichern.
Er fragt mich jetzt die leeren Zellen ab.
Jetzt befülle ich einige Zellen und drücke speichern.
Aber es bekomme wieder die Meldung das die befüllten Zellen ausgefüllt werden sollen.
Das verstehe ich nicht.
Anzeige
AW: AW:Code funzt
16.02.2017 11:01:37
Wolfgang
So sieht das Ding jetzt vollständig aus.
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("Formular_Drehversuch").Cells(4, 8) = "" Then
MsgBox "Bitte Name eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 9) = "" Then
MsgBox "Bitte Vertriebsgebiet eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 14) = "" Then
MsgBox "Bitte Firmenname eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 15) = "" Then
MsgBox "Bitte Ansprechpartner eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 16) = "" Then
MsgBox "Bitte Anschrift eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 17) = "" Then
MsgBox "Bitte Postleitzahl eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 18) = "" Then
MsgBox "Bitte Ortschaft eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
'If Sheets("Formular_Drehversuch").Cells(4, 19) = "" Then
'MsgBox "Bitte Land eingeben!", vbInformation, "Fehlende Eingabe"
'Cancel = True
'End If
If Sheets("Formular_Drehversuch").Cells(4, 20) = "" Then
MsgBox "Bitte Telefonnummer des Ansprechpartners eingeben!", vbInformation, "Fehlende  _
Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 41) = "Auswahl" Then
MsgBox "Bitte Maschine wählen eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 45) = "" Then
MsgBox "Bitte Besondere Ausrüstung/Optionen eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
If Sheets("Formular_Drehversuch").Cells(4, 62) = "Auswahl" Then
MsgBox "Bitte die Zielsetzung definieren!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
End Sub

Anzeige
AW: AW:Code funzt
16.02.2017 11:05:17
Wolfgang
Hat das evtl. was damit zu tun das Zelle D8 mit ,E8,F8 und G8 zu einer Zelle verbunden ist?
AW: AW:Code funzt
16.02.2017 11:30:46
hary
Moin
Kann es sein dass du den falschen(vertauscht) Syntax fuer cells hast?
Cells(4, 8) heisst Cells(Zeilennummer, Spaltennummer) also ist es Zelle H4
Zelle D8 waere: Cells(8,4)
gruss hary
AW: Code funzt immer noch
16.02.2017 11:08:16
hary
Moin
Hier mal ein Nachbau. Speicher die Mappe und oeffne diese wieder. Jetzt sind die 4 Zellen befuellt. Loesche aus einer den Inhalt und versuch zu speichern. Was passiert dann?
https://www.herber.de/bbs/user/111513.xlsm
gruss hary
Anzeige
AW: Code funzt immer noch
16.02.2017 13:23:14
Wolfgang
Hallo Harry,
vielen Dank für dein Beispiel.
Es funktioniert so wie es soll.
Ich verstehe das nicht.
Aber du hast nur einen Sheet, habe ich gesehen. Ich habe 3 Sheets.
kann das eine Ursache sein?
AW: Code funzt immer noch
16.02.2017 13:44:01
Wolfgang
Hallo Harry,
es ist mir schon ein wenig peinlich.
Es funktioniert jetzt.
Für die Nachwelt.
If Sheets("Formular Drehversuch").Cells(8, 4) = "" Then
MsgBox "Bitte Name eingeben!", vbInformation, "Fehlende Eingabe"
Cancel = True
End If
Cells(8, 4)
Die erste Ziffer bezieht sich auch die Zeile (also Zeile 8)
Die zweite Ziffer bezieht sich auf die Spalte 4 (also Spalte D)
Ich habe es genau anders herum gemacht.
Anzeige
Pflichtfelder abspeichern
16.02.2017 15:04:09
Wolfgang
Hallo zusammen,
Hallo Harry vielleicht,
ich habe ein Makro mit Pflichtfeldern.
Sind gewisse Zellen nicht ausgefüllt gibt es eine Meldung beim klicken von speichern.
Soweit alles gut.
Jetzt muss ich allerdings die Mappe ja ein Mal als Vorlage mit Makros speichern.
Lässt es aber nicht zu, da die Pflichtfelder nicht ausgefüllt sind.
Jetzt habe ich mir selber ein Ei gelegt.
Wie könnte ich das umgehen?
Danke für eure Denkansätze.
AW: Pflichtfelder abspeichern
17.02.2017 07:13:57
hary
Moin Wolfgang
Versuch es mal mit abfrage vom Mappenpfad. Wenn dieser nicht leer ist dann erst Pruefung zulassen.
D.h. wenn die Mappe noch nicht gespeichert wurde gibt es keinen Pfad in der die Mappe liegt.
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ThisWorkbook.Path  "" Then
'--hier dein Code
End If
End Sub

gruss hary
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige