Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1376to1380
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
Combobox aktiviert sich beim Klicken auf Zelle
03.09.2014 11:59:02
Daniel
Hallo zusammen,
Ich habe wiedermal eine Frage:
Ich habe auf einem Worksheet 4 Comboboxen (ActiveX Element) die mit 1 Code hinterlegt wurden. Jedes dieser Comboboxen hat eine bestimmte Anzahl an Listenelementen, d.h. je nach dem welche Kombination dieser Listenelement ich anwähle, stellt sich im Worksheet 1 bestimmtes Szenario für eine bestimmte Rechnung, die ich dann durchführen möchte, ein. Zum Beispiel werden bestimmte Comboboxen unsichtbar/sichtbar gemacht (d.h. visible = False/True), bestimmte Zeilen werden versteckt (Hidden) etc.
Problem: Wenn ich die gewünschten Listenelemte in den Comboboxen anwähle verschwinden zuerst die Comboboxen und das gewünschte Szenario erscheint dann erst wenn ich eine Zelle anklicke. Allerdings holpert das Tool später ein bisschen, wenn ich dann die eigentliche Rechnung laufen lasse. Es hat bestimmt was mit diesen Comboboxen bzw. mit dem hinterlegten Code zu tun, das habe ich zig mal ausprobiert.
Könnt ihr mir weiterhelfen? Wisst Ihr um was es geht?
Könnte es sein, dass sich das Problem ergibt, wenn ich eine Combox unsichtbar mache und das Programm nochmals die schon unsichtbare Combobox wieder unsichtbar machen möchte (dies ist so programmiert zurzeit) Probleme kriegt?
Als Beispiel hier ein Auschnitt des Codes:
'Templates ist ein Sheet im Workbook1, Calculation ein anderes Sheet im selben Workbook1
If Sheets("Templates").Range("R7").Value = "Effect" Then
Sheets("Calculation").Range("F30:I30").Value = "Is the an effect 1 or an effect 2?"
Sheets("Calculation").OLEObjects("OtherThanEffect").Visible = True
If Sheets("Templates").Range("R10").Value = "effect 1" Then
Sheets("DNEL Calculation Animal Data").OLEObjects("Dose 1").Visible = False
Sheets("DNEL Calculation Animal Data").OLEObjects("Dose 2").Visible = True
ElseIf Sheets("Templates").Range("R10").Value = "OtherThanEffect" Then
Sheets("DNEL Calculation Animal Data").OLEObjects("Dose 1").Visible = True
Sheets("DNEL Calculation Animal Data").OLEObjects("Dose 2").Visible = False
End If
Sheets("Calculation").OLEObjects("Dose 3").Visible = False
Sheets("Calculation").Rows("60:66").Hidden = False
Sheets("Calculation").Range("B67").Value = "4. Experimental animal"
Sheets("Calculation").Rows("108:112").Hidden = False
Sheets("Calculation").Rows("113:120").Hidden = True
End If
Ich danke für Eure Hilfe,
Daniel

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox aktiviert sich beim Klicken auf Zelle
03.09.2014 16:01:13
fcs
Hallo Daniel,
in Arbeitsmappen in denen Ereignismakros integriert sind ist es ratsam, die Ereignismakros während der Makroaausführung vorübergehend zu deaktivieren, damit es nicht zu rekursiven Aufrufen und ggf. Endlosschleifen kommt.
Bei Comoboxen kann das Change_Ereignis ausgelöst werden, wenn Zeilen ein-/ausgeblendet werden.
Leider wird diese Ereignis mit der der generellen Deaktivierung nicht deaktiviert.
Man muss sich selebr darum kümmern, dass wiederholte Starts der Ereignismakros verhindert werden. Dies kann man mit einer Steuervariablen ereichen, die dazu führt das beim 2. Strat des Ereignismakros dieses sofort wieder verlassen wird.
Nachfolgend Beispiele:
Gruß
Franz
'Code in beliebiegem Modul speziell Tabellenblatt modul
Option Explicit
Private bolAktion As Boolean 'Moldulweit deklarierte Variable
Sub aaTest()
'Variablendeklaration
Dim StatusCalc As Long
If bolAktion = True Then Exit Sub
'Makrobremsen zurücksetzen
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = True
.ScreenUpdating = True
End With
'hier der eigentliche Code der ausgeführt werden soll
'Makrobremsen zurücksetzen
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
bolAktion = False
End Sub
Private Sub ComboBox1_Change()
If bolAktion = True Then Exit Sub
bolAktion = True
'Makrobremsen lösen
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
MsgBox "CB1 Changed"
If Range(Rows(13), Rows(15)).Hidden = True Then
Me.ComboBox1.Visible = True
Range(Rows(13), Rows(15)).Hidden = False
Else
Range(Rows(13), Rows(15)).Hidden = True
Me.ComboBox1.Visible = False
End If
'Makrobremsen zurücksetzen
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
bolAktion = False
End Sub
Private Sub CommandButton1_Click()
If bolAktion = True Then Exit Sub
bolAktion = True
'Variablendeklaration
Dim StatusCalc As Long
'Makrobremsen lösen
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
If Range(Rows(13), Rows(15)).Hidden = True Then
Me.ComboBox1.Visible = True
Range(Rows(13), Rows(15)).Hidden = False
Else
Range(Rows(13), Rows(15)).Hidden = True
Me.ComboBox1.Visible = False
End If
'Makrobremsen zurücksetzen
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
bolAktion = False
End Sub

Anzeige
AW: Combobox aktiviert sich beim Klicken auf Zelle
03.09.2014 16:49:00
Daniel
Hallo Franz,
Danke für die ausführliche Antwort, werde mich nun dahinterklemmen um das zu verstehen.
Ich habe weiterhin herausgefunden, dass wenn ich den Browserverlauf lösche, die Comboboxen wieder einigermassen funktionieren. Hat das einen Zusammenhang mit dem was Du gerade geschrieben hast?
Danke!
Liebe Grüsse,
Daniel

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige