# UserForm Als Menü



## valeripf (30. November 2013)

Hi 

Ich beutze UserForm1 als Meü in Tabelle

ich habe dafür Code das Offen Userform aufgeht und Tabelle Scrollen kann


```
Private Sub Workbook_Open()
UserForm1.Show (0)
End Sub
```

das Problem ist wenn ich andere Tabelle aufmache das menü geht menü (Userform1) geht auch auf

gebst andere Möglichkeit Meü(UserForm1) Fest in die Tabelle zu ankern


----------



## tombe (2. Dezember 2013)

WORKBOOK = Arbeitsmappe
WORKSHEET = Tabelle

Die Arbeitsmappe ist quasi die gesamte Datei mit allen darin enthaltenen Tabellen. Je nachdem wie du den Code eingebunden hast, bezieht sich das dann natürlich auf alles was du öffnest.

Wo soll das "Menü" denn überall zu sehen sein bzw. wann und wo genau soll es eingeblendet werden?


----------



## valeripf (2. Dezember 2013)

zuerst sorry für viel Fehler meine Tastatur gibt lagsam geist auf

der Menü soll dei Offnen die Execel Datei z.B xyz.xsml aufgehen  ist kwazi Menüleiste wo die Alle Buttons um Userforms zuoffen soll aber nur in Tabelle1  fest eingebuden sein 

wenn  ich so aufmache und noch eine tabelle auf mache dann springt menü auf die andere Tabelle die ich aber nicht brache


----------



## tombe (2. Dezember 2013)

Du musst beim Starten von Excel prüfen ob hier gleich Tabelle1 angezeigt wird:


```
Private Sub Workbook_Open()

If ActiveSheet.Name = "Tabelle1" Then
    UserForm1.Show (0)
End If

End Sub
```

Dieser Code kommt deshalb in die Arbeitsmappe (Workbook).

Dann musst du in den Codebereich von Tabelle1 noch folgenden Code eintragen. Hiermit wird die UserForm1 eingeblendet sobald Tabelle1 aktiviert wird und eben wieder ausgeblendet sobald eine andere Tabelle ausgewählt wird.


```
Private Sub Worksheet_Activate()
    UserForm1.Show (0)
End Sub


Private Sub Worksheet_Deactivate()
    UserForm1.Hide
End Sub
```

So bald


----------



## valeripf (2. Dezember 2013)

es funtionier nicht menü springt immer noch

Wie ich verstaden habt


```
dieser kommt in Workbook (Bie mir ist es ThisWorkbook)

Private Sub Workbook_Open()     
 
If ActiveSheet.Name = "Sheet1" Then
    UserForm1.Show (0)
End If
 
End Sub
```


```
und das kommt in tabelle1 bei mir Sheet1(Sheet1))"

Private Sub Worksheet_Activate()
    UserForm1.Show (0)
End Sub
 
 
Private Sub Worksheet_Deactivate()
    UserForm1.Hide
End Sub
```

Richtig so

bei mir Workbook  = ThisWorkbook
Tabellename = Sheet1(Sheet1)
Userform = UserForm1


----------



## HonniCilest (2. Dezember 2013)

Bei mir funktioniert es so wie tombe vorgeschlagen hat. Oder meinst du vielleicht etwas anderes?


> es funtionier nicht menü springt immer noch


Durch das Wort "springt" erahne ich worauf du hinaus willst. Willst du, dass die UserForm an eine bestimmte Zelle / Position gebunden wird und das Problem bei deiner ist, dass diese immer wieder auf der Mitte des Bildschirms erscheint?
Das Springen auf die Mitte kannst du mit der Eigenschaft der UserForm "StartUpPosition" ausschalten. Wähle hier Manuell.


----------



## valeripf (2. Dezember 2013)

nein nein Position in tabellen blatt hab ich 

ich meine 

ich habe ecxel Datei z.B  xyz.xsml und der hat menü Leiste UserForm1
So
und wenn ich z.B andere Exel tabelle auf mache z.B abc.xsml dann zeigt dan menü(UserForm1) in Tabelle abc auch Menüleiste von xyt.xsml an

es ist bei mir bestimmt was falsch gelaufen


----------



## tombe (2. Dezember 2013)

Kann es sein das du das Makro in der Datei "Personl.xls" gespeichert hast?

Die Makros die in dieser Datei gespeichert sind, stehen in ALLEN Dateie zur Verfügung und werden dann auch automatisch ausgeführt!

So ist es auch zum Beispiel hier beschrieben.


----------

