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

WorksheetActivate

Worksheet_Activate
03.01.2015 18:42:56
Laser

Hallo Leute
Ich wollte einen Code Laufen lassen mittels

Private Sub Worksheet_Activate()
End Sub
Nun habe ich folgendes Problem das ich mit einem Macro aus einem anderen Tabellenblatt genau auf diese Blatt zugreifen muss um etwas abzufragen, jetzt führt er denn Code Doppelt aus.
Gibt es eine Möglichkeit, das Worksheet_Activate() zu deactivieren wenn ich mittels Sub Code darauf zugreife? und das es nur beim manuellen tabellenwechsel da Worksheet_Activate()ausgelöst wird.
Mittels diesem Code (in einem Modul) rufe ich die Tabelle auf wo das Worksheet_Activate() hinterlegt ist.
Private Sub Prüfen_neue_Artikel()
Application.ScreenUpdating = False
Sheets("Möbel Export").Activate
Dim i As Long, k As Long
On Error GoTo Fehler
i = 3 / k
Exit Sub
Sheets("Möbel Export").ShowAllData
Fehler:
Selection.AutoFilter Field:=1, Criteria1:="ja"
'MsgBox "Da war ein Fehler"
Sheets("Möbel Export").ShowAllData
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
Range("R6:AA150").Select
Selection.Copy
Range("Ae6").Select
ActiveSheet.Paste
Range("R154:AA304").Select
Selection.Copy
Range("Ae154").Select
ActiveSheet.Paste
With Intersect(Range("Ae6:Ae304"), ActiveSheet.UsedRange)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
ActiveSheet.PivotTables("PivotTable3").PivotCache.Refresh
Range("BG6:Bq150").Select
Selection.Copy
Range("bu6").Select
ActiveSheet.Paste
Range("b1").Select
With Intersect(Range("bu6:bu150"), ActiveSheet.UsedRange)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
Selection.AutoFilter Field:=1, Criteria1:="ja"
If Worksheets("Möbel Preisvergleich").Range("ao4") > 0 Then
Call MsgBox("Neuen Artikel bitte Daten exportieren Danke", vbExclamation, "Hinweis")
End If
If Worksheets("Möbel Preisvergleich").Range("ao4") <= 0 Then
Call MsgBox("Keine neuen Artikel", vbExclamation, "Hinweis")
Sheets("Möbel Preisvergleich").Activate
Exit Sub
End If
Application.ScreenUpdating = True
End Sub
Ich hoffe einer kann mir Helfen
mfg
Laser

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Application.EnableEvents = False/True
03.01.2015 18:54:21
Matthias L
Hallo
Setze die Ereignis-Event auf False bevor Du das andere Blatt aktivierst.
Application.EnableEvents = False

WICHTIG!
Zum Schluss nicht vergessen es wieder auf True zu setzen!
Application.EnableEvents = True
Gruß Matthias

AW: Application.EnableEvents = False/True
03.01.2015 19:05:30
Laser
Hallo Mathias L
das habe ich schon Probiert wenn ich den Code am anfang und ende Plaziere dann macht er klappt es, allerdings danach geht das beim Blattwechsel nicht mehr.
Mir ist aufgefallen das er beid er Macro abfolge immer wieder auf ein Complet anderes Tabellenblatt hüpft und folgenden code immer abspielt speziel bei den Pivot aktualisierungen.
Ich kapier nur nicht warum er das macht.
Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
Application.EnableEvents = False
ThisWorkbook.Worksheets("Möbel").Range("r9:r700").AutoFilter Field:=1, Criteria1:="nein"
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Liegt es vielleicht an dem das dann der Blattwechslen nicht mehr geht.
Hier der Code mit den Events False
Sub Prüfen_neue_Artikel()
Application.ScreenUpdating = False
Application.EnableEvents = False
Sheets("Möbel Export").Activate
Dim i As Long, k As Long
On Error GoTo Fehler
i = 3 / k
Exit Sub
Sheets("Möbel Export").ShowAllData
Fehler:
Selection.AutoFilter Field:=1, Criteria1:="ja"
'MsgBox "Da war ein Fehler"
Sheets("Möbel Export").ShowAllData
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
Range("R6:AA150").Select
Selection.Copy
Range("Ae6").Select
ActiveSheet.Paste
Range("R154:AA304").Select
Selection.Copy
Range("Ae154").Select
ActiveSheet.Paste
With Intersect(Range("Ae6:Ae304"), ActiveSheet.UsedRange)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
ActiveSheet.PivotTables("PivotTable3").PivotCache.Refresh
Range("BG6:Bq150").Select
Selection.Copy
Range("bu6").Select
ActiveSheet.Paste
Range("b1").Select
With Intersect(Range("bu6:bu150"), ActiveSheet.UsedRange)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
Selection.AutoFilter Field:=1, Criteria1:="ja"
If Worksheets("Möbel Preisvergleich").Range("ao4") > 0 Then
Call MsgBox("Neuen Artikel bitte Daten exportieren Danke", vbExclamation, "Hinweis")
'     Call Test
'Sheets("Möbel Export").Activate
End If
If Worksheets("Möbel Preisvergleich").Range("ao4") <= 0 Then
Call MsgBox("Keine neuen Artikel", vbExclamation, "Hinweis")
Sheets("Möbel Preisvergleich").Activate
Exit Sub
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Application.EnableEvents = False/True
03.01.2015 19:23:55
Laser
Hab den Fehler gefunden.
Ich wechsle ja innerhalb des Codes auf das andere Tabellenblatt da bringt das activieren am schluss nichts mehr :-)
was ich aber nicht verstehe ist warum er immer auf das andere Tabellenblat wechselt mit diesem Code
Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
Application.EnableEvents = False
ThisWorkbook.Worksheets("Möbel").Range("r9:r700").AutoFilter Field:=1, Criteria1:="nein"
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
mfg
Laser

weiß ich nicht ...
03.01.2015 19:31:41
Matthias L
Hallo
Vielleicht liegts am:
 

Call Test

keine Ahnung
Vom Calculate-Ereignis hast Du in der Ausgangsfrage ja auch nichts erwähnt.
Gruß Matthias

Anzeige
AW: weiß ich nicht ...
03.01.2015 19:58:16
Laser
Hallo Mathias
Hab den code nun nochmal angepasst mit den Eventhandler udn nun klappt es Perfekt hatte die
Application.EnableEvents = False\True nur falsch gesetzt musste im Code 2 mal einfügen nun klappt es Danke für die Hilfe
mfg
Laser

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige