Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1756to1760
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

Unabsichtlicher ComboBox_Change Aufruf

Unabsichtlicher ComboBox_Change Aufruf
03.05.2020 19:47:46
Dewma
Guten Abend,
In einem Sheet habe ich eine gewöhnliche ComboBox erstellt mit folgendem Code:
Private Sub ComboBoxObjekte_Change()
Dim strElem As String
strElem = ComboBoxObjekte.Value()
Select Case strElem
Case "Gelöschte Objekte"
Call Uebersicht_Sheet.Zeige_Objekte(2)
Case "Eingefügte Objekte"
Call Uebersicht_Sheet.Zeige_Objekte(1)
Case "Geänderte Objekte"
Call Uebersicht_Sheet.Zeige_Objekte(3)
Case "Alle Objekte"
Call Uebersicht_Sheet.Zeige_Objekte(4)
End Select
End Sub
Wenn ich jedoch nun in einer Funktion versuche neue Worksheets in mein Workbook einzufügen, springt das Makro in oben dargestellte Methode, obwohl sie nicht aufgerufen wird. Code:
Private Sub Importiere_Aenderungen()
'Funktion, die die Änderungsdateien einliest
Dim intCount As Integer
Dim strDatPfad As String
Dim strDatName As String
Dim strDatPfadUName As String
Dim strAenderungName As String
Dim strDatArr(4) As String
Dim wkbDatImport As Workbook
Dim wkbMakro As Workbook
Dim wksCount As Worksheet
strDatPfad = wsStart.Cells(7, 2).Value()
Set wkbMakro = ActiveWorkbook
strDatArr(0) = "Datei1"
strDatArr(1) = "Datei2"
strDatArr(2) = "Datei3"
strDatArr(3) = "Datei4"
Call AppFunktionen.eventOf
'Worksheets löschen
For Each wksCount In wkbMakro.sheets
For intCount = 0 To 3
If wksCount.Name = strDatArr(intCount) Then
wksCount.Delete
Exit For
End If
Next intCount
Next wksCount
'Sheets mit den Aenderungen einlesen
For intCount = 0 To 3
strAenderungName = strDatArr(intCount)
strDatName = "/" & strAenderungName & ".csv"
strDatPfadUName = strDatPfad & strDatName
If Dir(strDatPfadUName)  vbNullString Then
Workbooks.Open Filename:=strDatPfadUName, Local:=True
Set wkbDatImport = ActiveWorkbook
Worksheets(1).Copy After:=wkbMakro.Worksheets("Bedienung")
wkbDatImport.Close savechanges:=False
Else:
Call AppFunktionen.eventOn
MsgBox (strAenderungName & "-Datei liegt in dem Ordner nicht vor. Bitte zunächst  _
die Datei exportieren.")
Call AppFunktionen.eventOf
End If
Next intCount
Call AppFunktionen.eventOn
End Sub
Der Aufruf geschieht in der fett markierten Zeile. Kann mir jemand erklären, wie es dazu kommt?
Vielen Dank und Grüße.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unabsichtlicher ComboBox_Change Aufruf
03.05.2020 20:23:36
Daniel
Hi
Das Change-Event spricht bei jeder Änderung an.
Egal was geändert wird, egal wer ändert.
Wenn das Kopieren des Blattes so ausgeführt wird, dass es ein "Neu anlegen" mit nachträglicher Angleichung der Inhalte und Einstellungen ist, wäre das auch eine Änderung.
Ggf auf ein anderes Event ausweichen, Change ist meistens ungünstig, wenn auf Anwendereingaben reagiert werden soll.
Wenn du kein besseres Event findesr probiert mal, ob Application.EnableEvents hilft, das müsste so in den Code eingebaut werden und unterbindet die automatische Ausführung bon Tabellenblatt- und Mappenevents.
...
Set wkbDatImport = ActiveWorkbook
Application.EnableEvents = False
Worksheets(1).Copy After:=wkbMakro.Worksheets("Bedienung")
Application.EnableEvents = True
wkbDatImport.Close savechanges:=False
...
Gruß Daniel
Anzeige
AW: Unabsichtlicher ComboBox_Change Aufruf
05.05.2020 11:08:59
Dewma
Hallo Daniel,
die Events habe ich bereits ausgeschaltet, sodass das nicht zu helfen scheint.
Ein anderes mögliches Event wäre Click, richtig? Selbst wenn ich die Funktion als Click-Event definiere, wird diese aufgerufen, wenn ein neues Sheet in das Workbook eingefügt wird.
AW: Unabsichtlicher ComboBox_Change Aufruf
03.05.2020 22:09:28
GerdL
Hallo Dewma,
kannst du bitte die Prozeduren
AppFunktionen.eventOf
AppFunktionen.eventOn
zeigen.
Gruß Gerd
AW: Unabsichtlicher ComboBox_Change Aufruf
05.05.2020 11:01:25
Dewma
Hier die EventOn Funktion: (Das Private habe ich hinzugefügt, damit der Code hier im Forum erkannt wird)
Private Sub eventOn()
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Die EventOff() Funktion ist entsprechend mit allem auf "False".
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige