VBA: Fehler im Code bei Makro

02/04/2008 - 13:38 von Andy Bar | Report spam
Hallo,

ich habe ein Problem mit meiner Tabelle.

Dort habe ich drei Buttons mit Makros hinterlegt. Einzelnd
funktionieren die Makros, allerdings nicht zusammen.

Könnt ihr vielleicht mal über den Code schauen, vielleicht habt ihr
ja noch eine Idee.

http://www.adlb.de/temp/Excelforum1.xls

Die Buttons, um die es geht, sind alle im ROTEN BEREICH. Mit dem
SpinButton können die Lieferanten durchgeklickt werden. Klickt man
in die grüne Combobox, kann man die Lieferanten direkt auswàhlen.

Problem ist nun der Button "ÜBERNEHMEN". Dieser funktioniert nur,
wenn die anderen Makros aus dem Code entfernt werden. Ich verstehe
allerdings nicht, was ich dort falsch gemacht habe.

Ich bedanke mich im voraus für alle hilfreichen Antworten.

Gruß
Andy
 

Lesen sie die antworten

#1 Peter Schleif
02/04/2008 - 14:17 | Warnen spam
Andy Bar schrieb am 02.04.2008 13:38:

Könnt ihr vielleicht mal über den Code schauen, vielleicht habt ihr
ja noch eine Idee.

http://www.adlb.de/temp/Excelforum1.xls



In Sub CommandButton1_Click() tràgst Du mehrfach Werte in die
Lieferantendatenbank ein. Ein Teil dieser Tabelle ist fest mit der
ComboBoxLieferanten verküpft. Darum wird durch jede Änderung an der
Lieferantendatenbank auch die Prozedur ComboBoxLieferanten_Change()
aufgerufen. Das musst Du verhinern.

Du könntest die Combobox vorrübergehend sperren. Wenn alle Änderungen
erledigt sind, gibt's Du die Combobox wider frei. Zum Beispiel durch
eine Variable auf Modul-Ebene die den Sperr-Zustand der Comboxbox
festhàlt. Am Beginn der Änderungen setzt Du diese Variable auf True.
In der Combo-Change-Prozedur fragst Du diese Variable ab und verlàßt
dies Prozedur sofort wieder, falls die Combobox gesperrt ist. Sind
alle Änderungen gemacht (oder bei Fehler) setzt Du die Variable wieder
auf False.


Dim Auswahl As Long
Dim SpinAuswahl As Long
Dim wks1 As Worksheet
Dim wks2 As Worksheet



Private Sub CommandButton1_Click()
On Error GoTo ende
combo_gesperrt = True

'Hier werden die Änderungen durchgeführt
ende:
combo_gesperrt = False
End Sub



Private Sub ComboBoxLieferanten_Change()

If combo_gesperrt Then Exit Sub

'
End Sub



Peter

Ähnliche fragen