Microsoft Excel

Herbers Excel/VBA-Archiv

nach Sheet select, keine Reaktion im Sheet | Herbers Excel-Forum


Betrifft: nach Sheet select, keine Reaktion im Sheet von: Frank Meyer
Geschrieben am: 30.01.2012 20:01:04

Hallo, ich habe das Problem, dass nach dem Öffnen der Mappe das Sheet xy zwar selected wird, Range oder irgendeine andere Anweisung dann aber nicht ausgeführt wird. Danke für die Hilfe.

Private Sub Workbook_Open()

  Sheets("xy").Select

End Sub
Sheet xy:
Private Sub Worksheet_Activate()

  Range("A15").Select

End Sub

  

Betrifft: AW: nach Sheet select, keine Reaktion im Sheet von: hary
Geschrieben am: 30.01.2012 20:24:04

hallo

Private Sub Workbook_Open()
 Sheets("xy").Range("A15").Select
End Sub

gruss hary


  

Betrifft: AW: korrektur von: hary
Geschrieben am: 30.01.2012 20:34:16

Hallo

Private Sub Workbook_Open()
With Worksheets("XY")
.Activate
.Range("A15").Select
End With
End Sub

gruss hary


  

Betrifft: AW: korrektur von: Frank Meyer
Geschrieben am: 30.01.2012 21:28:11

Hallo, danke Dir, aber: Wenn die Mappe geöffnet wird, soll zum Sheet xy gewechselt werden und dann je nachdem, ob ActiveWindow.DisplayHeadings = True oder False entsprechend geranged werden ...
Das passiert halt nicht?? Danke!!

Private Sub Workbook_Open()
With Worksheets("xy")
    .Select
    .Activate
End With
End Sub


Sheet xy:
Private Sub Worksheet_Activate()

    If ActiveWindow.DisplayHeadings = True Then
      Range("A1").Select
    Else
      Range("E32").Select
    End If

End Sub



  

Betrifft: Hülfe ... :o) von: Frank Meyer
Geschrieben am: 30.01.2012 21:40:28

s.o. Tausend Dank!


  

Betrifft: AW: Hülfe ... :o) von: hary
Geschrieben am: 30.01.2012 21:44:23

Hallo
Nu aber.

Private Sub Workbook_Open()
Worksheets("xy").Activate
    If ActiveWindow.DisplayHeadings = True Then
      Range("A1").Select
    Else
      Range("E32").Select
    End If
End Sub

gruss hary


  

Betrifft: AW: Hülfe ... :o) von: Frank Meyer
Geschrieben am: 30.01.2012 21:57:24

hm ... das funktioniert, aber wieso funktioniert es nicht, wenn lediglich zum Sheet gewechselt, also dieses aktiviert wird und dann jede weitere Anweisung in u.g. Sub vereinbart wird, bzw. u.g. nur funktioniert, wenn dieses Sheet manuell aktiviert wird??? Dank!

Private Sub Worksheet_Activate()
If ActiveWindow.DisplayHeadings = True Then
      Range("A1").Select
    Else
      Range("E32").Select
    End If
End Sub



  

Betrifft: AW: Frage offen von: hary
Geschrieben am: 30.01.2012 22:11:34

hallo
fuer diesen Satz ist es fuer mich zu spaet, diesen zu verstehen. :-(

das funktioniert, aber wieso funktioniert es nicht, wenn lediglich zum Sheet gewechselt, also dieses aktiviert wird und dann jede weitere Anweisung in u.g. Sub vereinbart wird, bzw. u.g. nur funktioniert, wenn dieses Sheet manuell aktiviert wird??? 

gruss hary


  

Betrifft: AW: Hülfe ... :o) von: fcs
Geschrieben am: 31.01.2012 00:19:21

Hallo Frank,

Worksheet_Activate wird nur gestartet, wenn Blatt "xy" von einem anderen Tabellenblatt aus aktiviert/selektiert wird.

Ist Blatt "xy" beim Öffnen der Datei bereits das aktive Blatt, dann führt die Activate-Anweisung in der Workbook_Open nicht dazu, dass die Worksheet_Activate-Prozedur ausgeführt wird.
Dazu muss du entweder tatsächlich einen Blattwechsel ausführen, oder die Makros etwas umbauen.

Gruß
Franz

'Code diese Arbeitsmappe
Option Explicit

Private Sub Workbook_Open()
     Worksheets("Absteigend").Activate
     Call Tabelle1.XY_Activate 'Tabelle1 = Codename der Tabelle "xy"
End Sub




'Code Tabelle "xy"
Option Explicit

Private Sub Worksheet_Activate()
  Call XY_Activate
End Sub

Sub XY_Activate()
    If ActiveWindow.DisplayHeadings = True Then
       Range("A1").Select
     Else
       Range("E32").Select
     End If
End Sub



  

Betrifft: Danke !!! von: Frank Meyer
Geschrieben am: 31.01.2012 08:48:32

Dank! Läuft jetzt einwandfrei !!