Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige