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

Fehler im Makro

Fehler im Makro
18.11.2008 11:26:32
Georg
Guten morgen,
habe ein kleines Problemchen und sollte für jemanden mit VBA-Kenntnissen wohl kein
Problem sein.
Bei dem Makro steigt das Programm mit Fehlercode aus.
Wenn ich bei Kopfart 'Zeppelinkopf' eingebe, soll die Eingabe von 'Bodenart' und
'Mantelhöhe' zulässig sein, ansonsten soll das Feld 'Bodenart' gelöscht und gesperrt werden.
Wenn Typ 'Trichterkopf' ausgewählt wird, soll das Feld 'Matelhöhe' gelöscht und gesperrt werden.
Bei der Auswahl der Kopfart erhalte ich dann eine Fehlermeldung.
Wo liegt mein Fehler?
Beispiel anbei.
https://www.herber.de/bbs/user/56888.xls
Gruß
Georg

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler im Makro
18.11.2008 11:56:38
Reinhard
Hi Georg,
bitte beim nächsten mal auch die Fehlerzeile angeben un ddie Fehlermeldung.

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$E$11"
Me.Unprotect


Setz mal bei "Me.Unprotect" einen haltepunkt (Debuggen---Haltepunkt) und gehe den Code mit F8 weiter.
Bis Vba auf die spätere Fehlerzeile z.B.
Me.Range("M11").Locked = True
stößt, wurde längst der Blattschutz wieder eingeschaltet mit
Wks1.Protect Password:=""
in der Prozedur Clear_Kopfpreis
Und die ganze Herumhopserei in den Codes kann man doch sicher minimieren, setze ggfs. Application.enableevents=False/true ein
Gruß
Reinhard

Anzeige
AW: Fehler im Makro
18.11.2008 13:07:27
Luschi
Hallo Georg,
wenn man innerhalb der Ereignisprozedur 'Worksheet_Change' per Vba den Zellinhalt ändert, dann wird die o.g. Routine erneut aufgerufen.
So kommt es, daß beim 1. Aufruf (manuelle Änderung des Wertes der Zelle E11 in Karlottenkopf) der Blattschutz entfernt wird. Beim 2. Aufruf (Me.Range("M11").ClearContents) läuft die Routine wieder durch und setzt den Blattschutz!
So ist die Zelle "M11" geschützt und der Befehl 'Me.Range("M11").Locked = True' kann nicht mehr ausgeführt werden. Dieses Verhalten kann man aber mit 'Application.EnableEvents = False'
ausschalten. Deshalb ändere den Vba-Code so:

Select Case Target.Address
Case "$E$11"
Application.EnableEvents = False
'Dein weiterer Vba-Code
Application.EnableEvents = True
Case Else
'do nothing
End Select

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Fehler im Makro
18.11.2008 14:47:00
Georg
Hallo Luschi aus klein paris,
Dein Beitrag kam richtig gut. Ausprobiert und funktioniert.
Danke
Gruß
Georg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige