Worksheet_Deactivate() wie komme ich aus dem Blatt?
#1
Hallo in die Runde,


ich habe folgendes Makro im VBAProjekt unter der Tabelle eingefühgt:


Private Sub Worksheet_Deactivate()
Call Makro4
End Sub



Das Makro wird auch beim Verlassen des Blatts ausgeführt - nur komme ich jetzt nicht mehr aus dem Blatt raus..

Was habe ich vergessen ?

Danke für Anregungen.

LG
ingo
Top
#2
Falls die Frage kommt:

Der Inhalt des Makro4
Sub Makro4()
'
' Makro4 Makro
'
'
     Sheets("excel_BFS").Select
     Columns("A:A").Select
    Range("A6").Activate
    Selection.NumberFormat = "@"
    Range("A6:A110").Select
    Selection.TextToColumns Destination:=Range("A6"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
End Sub
Top
#3
Hallo Ingo,

(25.11.2016, 15:28)IngoScha schrieb: Was habe ich vergessen ?

funktionell nichts, aber uns mitzuteilen, welchem Tabellenblatt die Deactivate-Routine hinterlegt wurde. Wink

Vermutlich dem, welches durch "Sheets("excel_BFS").Select" selektiert wird? Wink

Gruß Uwe
Top
#4
(25.11.2016, 16:41)Kuwer schrieb: Hallo Ingo,


funktionell nichts, aber uns mitzuteilen, welchem Tabellenblatt die Deactivate-Routine hinterlegt wurde. Wink

Vermutlich dem, welches durch "Sheets("excel_BFS").Select" selektiert wird? Wink

Gruß Uwe

Hallo Uwe,

das Worksheet_Deactivate() hab ich im VBAProject Tablelle4  (Excel_BFS) hinterlegt.

LG
ingo
Top
#5
Hallo Ingo,

(25.11.2016, 16:49)IngoScha schrieb: das Worksheet_Deactivate() hab ich im VBAProject Tablelle4  (Excel_BFS) hinterlegt.

womit Du Dir Deine Frage selbst beantwortet hast. Smile

Gruß Uwe
Top
#6
(25.11.2016, 16:57)Kuwer schrieb: Hallo Ingo,


womit Du Dir Deine Frage selbst beantwortet hast. Smile

Gruß Uwe

Hallo Uwe,

wenn ich aber das Sheets ("Excel_BFS") weg lasse bekomme ich eine Laufzeitfehler wegen der Select-Methode.....

Private Sub Worksheet_Deactivate()
Columns("A:A").Select
    Range("A6").Activate
    Selection.NumberFormat = "@"
    Range("A6:A110").Select
    Selection.TextToColumns Destination:=Range("A6"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
End Sub

Wo habe ich da den Fehler? Ich möchte, dass beim verlassen des Blatts, A6 bis A110 als Text definiert werden.

Danke schon mal für Deine Hilfe.

LG
ingo
Top
#7
(25.11.2016, 17:04)IngoScha schrieb: Hallo Uwe,

wenn ich aber das Sheets ("Excel_BFS") weg lasse bekomme ich eine Laufzeitfehler wegen der Select-Methode.....

Private Sub Worksheet_Deactivate()
Columns("A:A").Select
    Range("A6").Activate
    Selection.NumberFormat = "@"
    Range("A6:A110").Select
    Selection.TextToColumns Destination:=Range("A6"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
End Sub

Wo habe ich da den Fehler? Ich möchte, dass beim verlassen des Blatts, A6 bis A110 als Text definiert werden.

Danke schon mal für Deine Hilfe.

PS: wenn ich mit ActiveSheet. arbeite:

Private Sub Worksheet_Deactivate()
    ActiveSheet.Range("A6:A110").Select
    ActiveSheet.Range("A6").Activate
    Selection.NumberFormat = "@"
    ActiveSheet.Range("A6:A110").Select
    Selection.TextToColumns Destination:=Range("A6"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
End Sub

Wird die Änderung erst auf dem folgenden Blatt ausgeführt.

LG
ingo
Top
#8
Hallo Ingo,

(25.11.2016, 17:04)IngoScha schrieb: Wo habe ich da den Fehler? Ich möchte, dass beim verlassen des Blatts, A6 bis A110 als Text definiert werden.

ohne Selektieren sollte es gehen:
Private Sub Worksheet_Deactivate()
 With Range("A6:A110")
   .NumberFormat = "@"
   .TextToColumns Destination:=.Cells(1), DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
       Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
       :=Array(1, 1), TrailingMinusNumbers:=True
 End With
End Sub
Siehe dazu auch hier: Achtung Makrorekorder oder Wer selektiert denn da?

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • IngoScha
Top
#9
Mensch Uwe,

ein fettes DANKESCHÖN...

Und ja, Du hast recht - der Makrorekorder ist nicht immer dein Helfer Wink

Schönes WE

LG
ingo
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste