Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Alle Tabellennamen in Dropdown (Seite 1)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen Dieses Thema ist 2 Seiten lang:   1  2 nächster neuer Beitrag | nächster älterer Beitrag
  
17 Optionen für korrosionsbeständige Teile: Metalle und Nachbearbeitungen, ein Fachartikel
Autor Thema:  Alle Tabellennamen in Dropdown (20206 mal gelesen)
AndreasBo
Mitglied
TZ & Konstruktion


Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

Beiträge: 861
Registriert: 16.11.2006

********
Wenn am Anfang alles schief geht,
nenne es Version 1.0!

erstellt am: 05. Mai. 2009 07:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich werd einfach nicht fündig.
Ich suche eine Möglichkeit alle Tabellen in eine Kombobox einzufügen.
Grund ist:
Ich habe eine Date mit sehr vielen Tabellen, nun versuche ich
in jede Tabelle ein Feld oder Steuerelemnt einzufügen, wo alle
Tabellennamen gelistet sind.

Hoffe Ihr könnt Helfen.
Gruß
Andreas

------------------
  Ich nutze Boardsuche | Google | Netiquette

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 395
Registriert: 11.08.2007

erstellt am: 05. Mai. 2009 07:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

Hi Andreas,

wenn du eine ComboBox aus der Formular-Symbolleiste verwendest, könntest du das mit diesem Code machen:

Code:
Private Sub ComboBox1_DropButtonClick()
    Dim wsTabelle As Worksheet
    ComboBox1.Clear
    For Each wsTabelle In Worksheets
        ComboBox1.AddItem wsTabelle.Name
    Next wsTabelle
End Sub

Damit werden alle Arbeitsblätter in die CombobBox eingelesen sobald der DropDown-Pfeil aktiviert wird.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MWN
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 05. Mai. 2009 07:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

Guten Morgen Andreas,

ich würd wahrscheinlich per Makro alle Blätter durchlaufen lassen und deren Namen in ein Array schreiben. Anschließend würd ich das Array an die ComboBox binden.
Ist eben noch die Frage, wann das ganze durchgeführt werden soll.
Es wäre sicherlich sinnvoll, bei Änderungen an den einzelnen Blättern das ganze erneut durchführen zu lassen, um die Liste der ComboBox aktuell zu halten.
Vielleicht hilft der Schubs weiter!  
Grüße

Tobias

PS: Du kannst das ganze soweit ausbauen, dass beim Klick auf ein Item der ComboBox auch die entsprechende Tabelle geöffnet wird (ist bestimmt auch der Sinn der ganzen Aktion).

[Edit] Ach, da war wieder mal einer um 8 Minuten schneller [/Edit]

[Diese Nachricht wurde von MWN am 05. Mai. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

AndreasBo
Mitglied
TZ & Konstruktion


Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

Beiträge: 861
Registriert: 16.11.2006

********
Wenn am Anfang alles schief geht,
nenne es Version 1.0!

erstellt am: 05. Mai. 2009 08:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@beverly
Danke für die schnelle Antwort, der Ansitz ist super, nur...
Zitat:
Original erstellt von MWN:
PS: Du kannst das ganze soweit ausbauen, dass beim Klick auf ein Item der ComboBox auch die entsprechende Tabelle geöffnet wird (ist bestimmt auch der Sinn der ganzen Aktion).

Das wäre das sogenannte I-Tüpfelchen.
Und wie bewerkstellige ich nun das Ganze??

------------------
  Ich nutze Boardsuche | Google | Netiquette

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MWN
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 05. Mai. 2009 08:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

Hallo Andreas,

das wird wohl ein ziemlicher Aufwand werden, dass zu programmieren. Denn wenn du in jede deiner Tabelle eine ComboBox einfügst, musst du zum einen jede dieser Boxen füllen lassen und zum anderen dann auch für jede dieser Box die entsprechende Aktion (in deinem Fall das Change - Event) auswerten.
Es wäre sicherlich komfortabler, die ComboBox beim Blattwechsel erstellen bzw. entfernen zu lassen. Damit ist gewährleistet, dass du nur "eine" Box hast, die du immer wieder verwendest.
Vielleicht wäre dann folgender Schnipsel etwas für dich:

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If ActiveSheet.Name <> "Startseite" Then
        If ActiveSheet.Buttons.Count >= 1 Then
            ActiveSheet.Buttons.Delete
        End If
        Application.OnTime Now + TimeValue("00:00:01"), "Button_Hinzufuegen"
    End If
End Sub
Private Sub Button_Hinzufuegen()
Dim MyButton As Button
Set MyButton = ActiveSheet.Buttons.Add(411.75, 15.75, 132.75, 24)
With MyButton
    .OnAction = "Startseite_Anzeigen"
    .Caption = "zurück zur Startseite"
End With
End Sub
Sub Startseite_Anzeigen()
    ActiveSheet.Buttons.Delete
    ActiveWorkbook.Sheets(1).Activate
End Sub


Der Hintergrund des Ganzen: ein einziger Event der ComboBox (Change - Event) der zu verwenden ist. Setzt du in jedes Blatt eine neue ComboBox musst du so viele Change-Events (für das springen auf das angewählte Blatt) bearbeiten, wie Blätter in deiner Mappe sind.
Noch ein Schubs in Richtung iTüpfelchen:
Der Change-Event der ComboBox gibt dir die Möglichkeit auf Änderungen in dieser zu reagieren. Damit kannst du auch auslesen, auf welchen Wert diese gesetzt wurde und erhälst damit den Namen des Blattes in der Mappe, welches selektiert werden soll. Dieses braucht nur noch zu selektieren und schon hast du dein iTüpfelchen! 
Alles klar?
Grüße

Tobias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 05. Mai. 2009 08:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

Hallo zusammen,

ungetestet:

Code:

Private Sub ComboBox1_DropButtonClick()
    Dim wsTabelle As Worksheet
    ComboBox1.Clear
    For Each wsTabelle In Worksheets
        ComboBox1.AddItem wsTabelle.Name
    Next wsTabelle
    ComboBox1.ListIndex = 0'ersten Eintrag anzeigen
End Sub
'... und in einer (weiteren) Routine:
Private Sub ComboBox1_Change()
    ThisWorkbook.Worksheets(ComboBox1.Value).Activate
End Sub

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

AndreasBo
Mitglied
TZ & Konstruktion


Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

Beiträge: 861
Registriert: 16.11.2006

********
Wenn am Anfang alles schief geht,
nenne es Version 1.0!

erstellt am: 05. Mai. 2009 08:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@MWN: Klasse!!!   
Nun beötige ich nur noch eine ComboBox wo die Tabellennamen
eingefügt werden. Das war mein eigendliches Problem, dass
ich nicht weiß wie ich alle Tabbelln dort einbinden kann.

Gruß
Andreas

------------------
    Ich nutze Boardsuche | Google | Netiquette

[Diese Nachricht wurde von AndreasBo am 05. Mai. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MWN
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 05. Mai. 2009 13:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

Hi Andreas,

das hat dir doch die Karin alias Beverly im 2. Fred von oben geschrieben. Dieser Schnipsel fügt dir alle Blattnamen in die ComboBox. Allerdings erst, wenn du die Box anklickst.
Und den Schnipsel von mir nimmst du, um dir die Box auf jedem Blatt positionieren und beim Blattwechsel wieder löschen zu lassen.
Steht doch alles da! 
Grüße

Tobias

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

AndreasBo
Mitglied
TZ & Konstruktion


Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

Beiträge: 861
Registriert: 16.11.2006

********
Wenn am Anfang alles schief geht,
nenne es Version 1.0!

erstellt am: 06. Mai. 2009 20:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


TabelleninListbox.zip

 
Guten Abend,
ich hab mal etwas herumgespielt und Folgendes geändert.

In ein Modul

Code:
Option Explicit

Private Sub Button_Hinzufuegen()
    Dim WKS As Worksheet
    Dim LST As ListBox
 
    Set LST = ActiveSheet.ListBoxes.Add(500, 1, 150, 70)
    LST.RemoveAllItems
        For Each WKS In Worksheets
            LST.AddItem WKS.Name
        Next WKS
End Sub


In DieseArbeitsmappe
Code:
Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
 
  If ActiveSheet.Name <> "Tabelle1" Then
        If ActiveSheet.Buttons.Count >= 1 Then
            ActiveSheet.Buttons.Delete
        End If
        ActiveSheet.Shapes.SelectAll
        Selection.Delete
        Application.OnTime Now + TimeValue("00:00:01"), "Button_Hinzufuegen"
    End If

End Sub



Nun ist es so, dass immer wenn eine Tabelle außer Tabelle1 gewählt wird,
dann wird eine ListBox erstellt mit den Namen der Tabellen.
Das Funktionier schon mal.

Wie bekomme ich nun Folgendes hin:

  • Beim Klick/Doppelklick soll die angewählte Tabelle geöffnet werde
  • Die ListBox sortieren
  • Das aktuelle Tabellenblatt soll auch automatisch in der Listbox selectiert sein
  • Wenn Tabelle hinzu oder gelöscht Liste auch gleich aktualisieren

    Ich hoffe ich könnt mir da mal weiterhelfen.
    Zum herumspielen gibt es die Datei im Anhang.

    Gruß
    Andreas

    ------------------
      Ich nutze Boardsuche | Google | Netiquette

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

  • Paulchen
    Mitglied
    Bauing./SW-Entwickler


    Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

    Beiträge: 1227
    Registriert: 19.08.2004

    Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

    erstellt am: 06. Mai. 2009 21:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Hallo Andreas,

    nimm - wie vorher - kein Steuerelement, sondern ein ActiveX-Steuerelement, dann bist Du flexibler, wenn Du ohnehin mit VBA arbeitest.

    Ich würde dann einfach die Eigenschaft Visible zwischen True und False ändern, das geht fixer als das Löschen und neu erzeugen. Zuerst auf allen Blättern eine Cbo-Box erzeugen. Steuerung dergestalt: Box beim Aktivieren des Registers unsichtbar schalten, putzen, alle Register neu einlesen, sortieren, Box sichtbar schalten.

    Mach aus Application.OnTime Now + TimeValue("00:00:01"), Button_Hinzufuegen" ein Application.Run Button_Hinzufuegen" - wozu eine Sekunde mit der Ausführung warten? Gibt nur nerviges Flackern ;-).

    Wie oben schon erwähnt, kannst Du die Tabelle aus der ComboBox mit
    ThisWorkbook.Worksheets(ComboBox1.Value).Activate anwählen.

    ------------------
    DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    MWN
    Mitglied
    Dipl.-Ing.


    Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

    Beiträge: 492
    Registriert: 14.02.2007

    erstellt am: 07. Mai. 2009 07:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Guten Morgen Andreas,
    Guten Morgen Paulchen,

    das mit der 1 Sekunde warten hat durchaus seine Berechtigung, denn manchmal braucht es etwas länger, bis alle Elemente des Blattes dargestellt sind, bzw. das vorherige löschen aller Elemente durchgeführt wurde. Das kann dann meist dazu führen, dass sich zwei Boxen überlagen. Und das soll doch bestimmt nicht passieren!  
    Andreas, du schreibst folgendes:
     

    Zitat:
    In DieseArbeitsmappe
    Code:

    Option Explicit
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     
      If ActiveSheet.Name <> "Tabelle1" Then
            If ActiveSheet.Buttons.Count >= 1 Then
                ActiveSheet.Buttons.Delete
            End If
            ActiveSheet.Shapes.SelectAll
            Selection.Delete
            Application.OnTime Now + TimeValue("00:00:01"), "Button_Hinzufuegen"
        End If
    End Sub



    Da du doch sowieso ein Modul verwendest, ist es doch einfacher, das Code - Fragment in eine eigene Sub im Modul zu schreiben und dann von jedem Blatt nur darauf zu verweisen!
    Das spart eine Unmenge an schreibarbeit.
    Aus diesem Grund gibt es in meiner Arbeitsmappe, in der ich das dynamische Erstellen des Buttons (bei dir ComboBox) nutze, noch folgendes Code-Fragment:
    Zitat:
    Beim Klick/Doppelklick soll die angewählte Tabelle geöffnet werde

    Das geht am besten, wenn man das Change - Event der ComboBox abfängt.
    Wie wäre es dann mit
     
    Zitat:
    With MyButton
        .OnAction = "Startseite_Anzeigen"
        .Caption = "zurück zur Startseite"
    End With

    ?
    Wobei "Startseite_Anzeigen" bei dir eine Funktion wäre, der du den Names des anzuzeigenden Blattes mitgibst, den du wiederum vom selektierten Eintrag der ComboBox erhälst!
    So, nächstes Thema:
     
    Zitat:
    Die ListBox sortieren


    Geht meines wissen nicht mit der ListBox sondern nur über einen Umweg, wie bereits in einer vorherigen Antwort geschrieben. Daten in ein Array schreiben, dann sortieren und anschließend der ListBox übergeben.
    http://www.herber.de/mailing/016598h.htm
    oder auch
    http://www.herber.de/mailing/133501h.htm
    So, nun zu
     
    Zitat:
    Das aktuelle Tabellenblatt soll auch automatisch in der Listbox selectiert sein

    Folgende vorgehensweise, würde ich bevorzugen: Name des aktuellen Tabellenblattes auslesen und dann in der ListBox selektieren lassen.
    Das ganze müsste mit 
    Zitat:
    Wenn Tabelle hinzu oder gelöscht Liste auch gleich aktualisieren

    Wenn du in deinem Modul sowieso mit einem globalen Array arbeitest - um die Einträge zu sortieren - dann kannst du dort auch gleich die Änderungen vornehmen lassen. Sprich: fügst du eine Tabelle hinzu, musst du deren Namen auch in dem Array einfügen und dieses neu sortieren lassen. Löschst du eine Tabelle, musst du deren Namen auch aus dem Array löschen lassen und dies eventuell nachher noch neu sortieren. Anschließend das Array dem Steuerelement neu zuweisen, bzw. das Steuerelement aktualisieren, damit es die Änderungen auch anzeigt.
    Es gibt z.B. für das Workbook ein Event der nennt sich "NewSheet". Ich denke mal, dass das für deinen Zweck funktionieren müsste.

    Andreas, was hälst du eigentlich davon, deine Tabell, natürlich ohne betriebsinterne Daten, mal hier online zu stellen? Ich bin mir sicher, dass es uns dann etwas leichter fallen wird, dir zu helfen.
    In dem Sinn: HTH
    Grüße

    Tobias
    [Edit]Sorry, hab in meinem Wahn die Zip übersehen...[/Edit]

    [Diese Nachricht wurde von MWN am 07. Mai. 2009 editiert.]

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Paulchen
    Mitglied
    Bauing./SW-Entwickler


    Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

    Beiträge: 1227
    Registriert: 19.08.2004

    Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

    erstellt am: 07. Mai. 2009 07:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Moin,

    da legt sich MWN ja mächtig ins Zeug! Noch ein Code-Schnipsel hierzu.

    Zitat:
    Das aktuelle Tabellenblatt soll auch automatisch in der Listbox selectiert sein
    Das geht so, wie von Tobias angeregt:
    Code:
    'In DieseArbeitsmappe
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     
      If ActiveSheet.Name <> "Tabelle1" Then
        Application.Run "cbo_Hinzufuegen"
      End If

    End Sub

    'In ein Modul
    Private Sub Cbo_Hinzufuegen()
    Dim ws As Worksheet
    Dim cboBox As ComboBox
    Dim i As Integer 'Zaehler fuer Worksheets
    Dim j As Integer 'Listen-Eintrags-Nummer
     
      Application.ScreenUpdating = False
      Set cboBox = ActiveSheet.OLEObjects("ComboBox1").Object
      'ComboBox1 MUSS auch tatsächlich auf JEDEM Blatt so heißen!
      i = 1
     
      With cboBox
        .Visible = False
        .Clear
        For Each ws In Worksheets
          .AddItem ws.Name 
          If ws.Name = ActiveSheet.Name Then j = i 'merken
          i = 1 + i
        Next
        .ListIndex = j - 1 'ListIndex beginnt bei 0 zu zaehlen!
        .Visible = True
      End With
     
      Application.ScreenUpdating = True

    End Sub


    Die Anzahl der Tabellen scheint nicht fest zu sein - es können wohl welche hinzukommen oder gelöscht werden. Die Lösung über den Code im jeweiligen Sheet erscheint weniger geeignet?!

    ------------------
    DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    MWN
    Mitglied
    Dipl.-Ing.


    Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

    Beiträge: 492
    Registriert: 14.02.2007

    erstellt am: 07. Mai. 2009 08:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Hey Paulchen,

    irgendwie selbstverständlich.
    Schließlich bin ich auch jedes mal dankbar, wenn mir so geholfen wird und von daher möchte ich auch anderen auf diese Art und Weise helfen.
    Und ich weiß auch, wie schwierig es ist, mit VBA überhaupt erst einmal anzufangen und keiner hilft einem. Man weiß nicht so recht, wo man suchen soll, etc.
    Ich bin mir ziemlich sicher, dass auch du weißt, wovon ich rede.
    Grüße

    Tobias

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Ex-Mitglied
    MWN
    Mitglied
    Dipl.-Ing.


    Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

    Beiträge: 492
    Registriert: 14.02.2007

    erstellt am: 07. Mai. 2009 09:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Och nö, nicht jetzt, wo wir so weit sind! 
    Es soll ja durchaus Leute geben, die ihre eigene Lösung bevorzugen, um sie besser in den Kontext ihrer eigenen Anwendung einzubinden!
    Und immerhin bringts uns allen was...
    Grüße

    Tobias

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 07. Mai. 2009 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


    Vorschau_Tabellenliste.jpg

     
    DANKE! DANKE !

    Zitat:
    Original erstellt von CADDoc:
    Auch wenn ich mich blamiere: wenn man 1000 Tabellenblätter hat zwischen welchen man hüpfen muß kann man unten links mit der Maus (rechte MT) ein Liste der Tabellen aufrufen und die gewünschte Tabelle ansteuern.

    Blamieren tut sich nur einerd, der nichts zum thema beiträgt! Das mal nebenbei.
    Das mit der RMT hatt ich auch gefunde, nur ist es da das selbe Problem wie auch mit denn Reitern unten im Fenster, es werden nicht alle angezeigt, d.h. du musst wenn du von 1000 Tabellen die 768.te haben willst erst auf weitere anzeigen usw., also mehrmals klickern.
    Dies wollte ich umgehen.
    Ich hätte gern eine ListBox nicht ComboBox nähe rechten Rand, wo alle Tabellen aufgelistet sind und die durch drücken dann geöffnet werden. (siehe Anhang)

    Ich steh hier einfach aufm Schlauch!
    Gruß
    Andreas

    ------------------
      Ich nutze Boardsuche | Google | Netiquette

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    MWN
    Mitglied
    Dipl.-Ing.


    Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

    Beiträge: 492
    Registriert: 14.02.2007

    erstellt am: 07. Mai. 2009 11:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Hallo Andreas,

    hab mal wieder mein Excel hervorgekramt. Vielleicht hilft dir das weiter:

    Code:
    Private Sub Worksheet_Activate()
    Dim ws As Worksheet
    ListBox1.Clear
        For Each ws In Worksheets
            ListBox1.AddItem (ws.Name)
        Next
    End Sub

    und
    Code:
    Private Sub ListBox1_Click()
      Dim Name As String
      Name = ListBox1.Value
      Call BlattAktivieren(Name)
    End Sub

    Diese beiden Fragmente müssten in jedes Tabellenblatt eingefügt werden.
    Und in ein Modul fügst du folgendes ein:
    Code:
    Sub BlattAktivieren(ByVal Name As String)
    Worksheets(Name).Activate
    End Sub

    Verwende auch bitte die Listbox aus der Symbolleiste "Steuerelement - Toolbox"!
    Eigentlich müssten damit fast alle deine Wünsche abgedeckt sein, denn die Listbox wird jedes mal neu gefüllt, wenn du ein Blatt wechselst, was auch beim löschen, oder erstellen der Fall sein dürfte.
    Das einzige, wozu ich noch nicht so gekommen bin, ist das sortieren.
    Bin mir aber sicher, dass noch jemandem was dazu einfallen wird.
    Gib mal bitte ein Feedback, ob es so passt, oder noch nicht.
    Grüße

    Tobias

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Paulchen
    Mitglied
    Bauing./SW-Entwickler


    Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

    Beiträge: 1227
    Registriert: 19.08.2004

    Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

    erstellt am: 07. Mai. 2009 12:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Mahlzeit,
    Zitat:
    1) Beim Klick/Doppelklick soll die angewählte Tabelle geöffnet werde
    2) Die ListBox sortieren
    3) Das aktuelle Tabellenblatt soll auch automatisch in der Listbox selectiert sein
    4) Wenn Tabelle hinzu oder gelöscht Liste auch gleich aktualisieren
    Zu 1) Das geht IMHO nur, wie MWN schon schreibt, wenn in JEDEM Register in VBA auch der
    Code:
    Private Sub ListBox1_Click()
      ThisWorkbook.Worksheets(ListBox1.Value).Activate
    End Sub
    enthalten ist. Ich glaube kaum, dass das gewünscht sein kann? Damit ist das Hinzufügen/Entfernen von Registern recht aufwändig.

    Zu 4) Dafür müsste permanent ein Makro im Hintergrund laufen, dass die Anzahl der Register ermittelt. Performance?

    Zu 2) und 3) Nimm diesen Code.

    Code:
    'DieseMappe:
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     
      If ActiveSheet.Name <> "Tabelle1" Then
        Application.Run "lst_steuern"
      End If

    End Sub

    'Modul:
    Private Sub lst_steuern()
    Dim ws As Worksheet
    Dim lstbox 'As ListBox
    Dim i As Integer 'Zaehler fuer Worksheets
    Dim j As Integer 'Listen-Eintrags-Nummer
     
      Application.ScreenUpdating = False
      Set lstbox = ActiveSheet.ListBox1 'MUSS ListBox1 heissen!
     
      With lstbox
        .Visible = False
        .Clear
        For Each ws In Worksheets 'fuellen...
          .AddItem ws.Name
        Next ws
       
        SortListBox 'sortieren...
       
        'Eintrag fuer aktuelles Register ermitteln:
    '    Debug.Print .ListCount
        For i = 0 To .ListCount - 1 'ListIndex beginnt bei 0 zu zaehlen!
    '      Debug.Print .List(i)
          If .List(i) = ActiveSheet.Name Then j = i
        Next i
        .ListIndex = j 'aktuelles Register in Liste markieren
       
        .Visible = True
      End With
     
      Application.ScreenUpdating = True

    End Sub

    Private Sub SortListBox()
    'Quelle: http://www.herber.de/forum/archiv/648to652/t651080.htm
    Dim iLast As Integer, iNext As Integer
    Dim iTmp
    With ActiveSheet.ListBox1
        For iLast = 0 To .ListCount - 1
            For iNext = iLast + 1 To .ListCount - 1
                If LCase(.List(iLast)) > LCase(.List(iNext)) Then 'erweitert fuer GROSS-/Kleinschreibung
                    iTmp = .List(iLast)
                    .List(iLast) = .List(iNext)
                    .List(iNext) = iTmp
                End If
            Next iNext
        Next iLast
    End With
    End Sub


    HTH
    Frederik

    ------------------
    DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 07. Mai. 2009 15:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

    Alle beide Varianten funktioniern, nur habt Ihr da schon recht, dadurch das der Code in
    jede Tabelle eingefügt werden muss, wird diese dann unflexiebel. Ich werden mal sehen,
    ob mir noch eine andere Lösung einfällt.

    Bis dahinn kann/soll sich hier jeder zu diesem Thema austoben.

    Gruß
    Andreas

    ------------------
      Ich nutze Boardsuche | Google | Netiquette

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Thomas Harmening
    Moderator
    Arbeiter ツ




    Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

    Beiträge: 2897
    Registriert: 06.07.2001

    Das Innerste geäussert
    und aufs Äusserste verinnerlicht

    erstellt am: 07. Mai. 2009 19:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich


    KopievonTabelleninListbox.zip

     
    Spielwiese? mag auch  

    mit einem Hilfwert (M1) und den Schnipsel (Button hinzufügen) etwas aufgebohrt

    Code:
    Private Sub Button_Hinzufuegen()
        Dim WKS As Worksheet
        Dim LST As ListBox
      
        Set LST = ActiveSheet.ListBoxes.Add(500, 1, 150, 70)
         With LST
            .ListFillRange = ""
            .LinkedCell = "$M$1"
            .MultiSelect = xlNone
            .Display3DShading = False
            .OnAction = "Blattwechseln"
        End With
            For Each WKS In Worksheets
                LST.AddItem WKS.Name
            Next WKS
    End Sub
    und in einem Modul
    Code:
    Sub Blattwechseln()
    If Not IsNumeric(Range("M1").Value) _
    Or Range("M1").Value > Worksheets.Count _
    Or Range("M1").Value = 0 Then
    Exit Sub
    End If
    Sheets(Range("M1").Value).Activate
    End Sub

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    MWN
    Mitglied
    Dipl.-Ing.


    Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

    Beiträge: 492
    Registriert: 14.02.2007

    erstellt am: 08. Mai. 2009 08:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich


    KopievonTabelleninListbox.txt

     
    Ok, ihr habt's geschafft...
    mich dazu zu bringen, doch noch das VBA hervorzukramen! 
    Ich habe dazu gleich mal die Idee von Thomas (vielen Dank) aufgegriffen und noch den Sortier - Algo mit eingebaut!
    Einfach das .txt am Ende des Anhangs entfernen und es sollte funktionieren.
    @Thomas: nicht wundern, ich hab das 2. Modul entfernt und den Code mit in das erste genommen, um auf mein Array zugreifen zu können!
    Ich denk, dass jetzt soweit alle Anforderungen von Andreas erfüllt sind, außer, dass das aktive Blatt in der Listbox selektiert sein soll.
    Irgendwie komme ich dort nicht weiter. Vielleicht fällt ja jemandem noch eine Lösung ein, die nicht in einer Endlosschleife endet!
    Grüße

    Tobias

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Paulchen
    Mitglied
    Bauing./SW-Entwickler


    Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

    Beiträge: 1227
    Registriert: 19.08.2004

    Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

    erstellt am: 08. Mai. 2009 09:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Na, das wird ja immer besser  
    Zitat:
    ...außer, dass das aktive Blatt in der Listbox selektiert sein soll.
    Das geht auch. Nimm die Mappe aus dem letzten Post; im Modul, gegen Ende der Sub, diesen
    Code:
    ...
    For l = 0 To i - 1
                LST.AddItem (Blattnamen(l))
            Next

    '### Bis hierher bekannt - "neuer" Teil ###
           
            'Eintrag fuer aktuelles Register ermitteln:
            With LST
              'Debug.Print .ListCount
              For i = 1 To .ListCount
                'Debug.Print .List(i)
                If .List(i) = ActiveSheet.Name Then j = i
              Next i
              .ListIndex = j 'aktuelles Register in Liste markieren
            End With
           
    End Sub


    Jetzt gibt es (nur) noch die Komfort-Kleinigkeit, dass der Eintrag zwar selektiert - also "blau" hinterlegt -, aber noch nicht angezeigt wird: Der User muss scrollen. Hat da wer nen Vorschlag?

    BTW: Die Register heißen jetzt alle TabelleX. Was passiert, wenn ein Blatt "Schnitzel" heißt? [Edit: Gar nichts - läuft trotzdem ;-) /Edit]

    ------------------
    DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

    [Diese Nachricht wurde von Paulchen am 08. Mai. 2009 editiert.]

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    MWN
    Mitglied
    Dipl.-Ing.


    Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

    Beiträge: 492
    Registriert: 14.02.2007

    erstellt am: 08. Mai. 2009 09:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

     
    Zitat:
    BTW: Die Register heißen jetzt alle TabelleX. Was passiert, wenn ein Blatt "Schnitzel" heißt? [Edit: Gar nichts - läuft trotzdem ;-) /Edit]

    Na ja, dann würd ich noch ne Hopfenkaltschale dazu ordern und glücklich sein!  
    SCNR

    Tobias

    [Diese Nachricht wurde von MWN am 08. Mai. 2009 editiert.]

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    pablo
    Mitglied
    Techniker


    Sehen Sie sich das Profil von pablo an!   Senden Sie eine Private Message an pablo  Schreiben Sie einen Gästebucheintrag für pablo

    Beiträge: 453
    Registriert: 23.01.2002

    Win10
    Office 365
    SE 2020

    erstellt am: 08. Mai. 2009 11:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Hallo miteinander,

    Selektiertes Feld anzeigen geht mit TopIndex.
    if j > 20 then
      .Topindex = j-5
    end if

    Prost pablo

    [Diese Nachricht wurde von pablo am 08. Mai. 2009 editiert.]

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    MWN
    Mitglied
    Dipl.-Ing.


    Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

    Beiträge: 492
    Registriert: 14.02.2007

    erstellt am: 08. Mai. 2009 12:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Zitat:
    Jetzt gibt es (nur) noch die Komfort-Kleinigkeit, dass der Eintrag zwar selektiert - also "blau" hinterlegt -, aber noch nicht angezeigt wird: Der User muss scrollen. Hat da wer nen Vorschlag?

    Na ja, ich würd einfach die Listbox so hoch machen, dass alle Einträge ohne zu scrollen angezeigt werden.
    Und zwar einfach im Modul1
    Code:
    Set LST = ActiveSheet.ListBoxes.Add(500, 10, 100, 70)

    durch
    Code:
    Set LST = ActiveSheet.ListBoxes.Add(500, 10, 100, (Worksheets.count - 1) * 11)

    ersetzen und schon "wächst" die ListBox mit! 
    Grüße

    Tobias

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Paulchen
    Mitglied
    Bauing./SW-Entwickler


    Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

    Beiträge: 1227
    Registriert: 19.08.2004

    Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

    erstellt am: 08. Mai. 2009 12:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Zitat:
    Jetzt gibt es (nur) noch die Komfort-Kleinigkeit, dass der Eintrag zwar selektiert - also "blau" hinterlegt -, aber noch nicht angezeigt wird...
    Da zeigt sich wieder, dass Formular-Steuerelemente unflexibler sind als ihre ActiveX-Brüder.

    Hilfe gibts z. B. direkt von M$ >>klick<<: Mit .TopIndex = ZAEHLER wird die Liste bis zum (vorher) gewählten Eintrag gescrollt. Der ausgewählte Eintrag steht also ganz oben in der Liste - was nicht bedeutet, dass es sich dabei um den ersten Eintrag handelt.

    Ein Formular-Element ist dafür nicht ausgelegt. Im Gegenzug kennt das Formular die direkte Verknüpfung zu einem Makro (OnAction), wie von Thomas    oben gezeigt.

    Die Höhe "anzupassen", ist natürlich eine schnell-und-dreckig Lösung .

    ------------------
    DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 08. Mai. 2009 15:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

    Ist ja toll was hier in kurzer Zeit passiert. Ich habe zwar gerade nicht die Möglichkeit zu testen dies wird aber schnellst möglich erfolgen.
    Ich hatte auch schon eine Idee das ganze von einer anderen Seite her zu testen.
    Seid nicht entäuscht wenn ich es erstmal selber versuchen möchte (bis nicht mehr weiter geht : ) ).

    Gruß
    Andreas

    ------------------
      Ich nutze Boardsuche | Google | Netiquette

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    MWN
    Mitglied
    Dipl.-Ing.


    Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

    Beiträge: 492
    Registriert: 14.02.2007

    erstellt am: 15. Mai. 2009 07:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Hey Andreas,

    wir würden mal um eine Rückmeldung bitten, vielleicht hat demnächst der ein oder andere genau selbiges Problem und wird in voller Erwartung einer Lösung auf diesen "Fred" stoßen, ihn bis zum Ende lesen um dann in vollster Erwartung feststellen, dass der Fragesteller seine Lösung lieber für sich behält, anstatt die Community teilhaben zu lassen.
    Im übrigen, jetzt mal ein bisschen OT und ich bin mir sicher, dass jeder das Problem kenn, stelle ich immer mehr mit erschrecken fest, dass diese Phänomen mehr und mehr einzug hier im Forum hält. Man bemüht die Community um Hilfe und um kreative Gedanken, die es scheinbar auch gern macht, denn sonst gäbe es das Forum nicht, hat dann aber nicht mehr die Zeit, oder das Verlangen, die selbst, oder mit Hilfe der Community gefundene Lösung darzustellen. 
    Nix für ungut, mal so am Rande erwähnt.
    Grüße

    Tobias

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 15. Mai. 2009 09:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

    Hallo,

    ich werde auf jedenfall antworten,HAbe nur gerade jetzt nicht die Möglichkeit zu testen.

    Gruß
    Andreas

    ------------------
      Ich nutze Boardsuche | Google | Netiquette

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Nepumuk
    Mitglied
    Entwicklungsleiter


    Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

    Beiträge: 351
    Registriert: 16.10.2004

    erstellt am: 15. Mai. 2009 10:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich


    Symbolleiste_mit_Combobox_fuer_Tabellenauswahl.zip

     
    Hallo,

    jetzt hat's schon so viele Antworten hier, dann geb ich meinen Senf auch noch dazu. Im Anhang eine Mappe, welche eine Combobox in den Menüleisten anlegt über die navigiert werden kann.

    Irgendwie funktioniert der Up- / Dowmload nicht. Dann halt nur den Code.

    In das Modul "DieseArbeitsmappe":

    Code:
    Option Explicit

    Private Sub Workbook_Activate()
        If Not objControl(1) Is Nothing Then objControl(1).Visible = True
        If Not objControl(2) Is Nothing Then objControl(2).Visible = True
    End Sub

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        If Not objControl(1) Is Nothing Then objControl(1).Delete
        Set objControl(1) = Nothing
        If Not objControl(2) Is Nothing Then objControl(2).Delete
        Set objControl(2) = Nothing
    End Sub

    Private Sub Workbook_Deactivate()
        If Not objControl(1) Is Nothing Then objControl(1).Visible = False
        If Not objControl(2) Is Nothing Then objControl(2).Visible = False
    End Sub

    Private Sub Workbook_NewSheet(ByVal Sh As Object)
        If Not objControl(1) Is Nothing Then prcAddSheets
        If Not objControl(2) Is Nothing Then prcAddSheets
    End Sub

    Private Sub Workbook_Open()
        prcCreateControl
    End Sub

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        If Not objControl(1) Is Nothing Then prcCheck
    End Sub


    In ein Standarmodul:

    Code:
    Option Explicit

    Public objControl(1 To 2) As CommandBarComboBox

    Public Sub prcCreateControl()
        Set objControl(1) = CommandBars(1).Controls.Add(Type:=msoControlComboBox, Temporary:=True)
        Set objControl(2) = CommandBars(2).Controls.Add(Type:=msoControlComboBox, Temporary:=True)
        prcAddSheets
        With objControl(1)
            .Width = 180
            .DropDownWidth = 162
            .OnAction = "prcSelect"
            .Style = msoComboNormal
        End With
        With objControl(2)
            .Width = 180
            .DropDownWidth = 162
            .OnAction = "prcSelect"
            .Style = msoComboNormal
        End With
    End Sub

    Private Sub prcSelect()
        On Error Resume Next
        If CommandBars.ActiveMenuBar.Index = 1 Then Sheets(objControl(1).Text).Select _
            Else Sheets(objControl(2).Text).Select
        If Err.Number <> 0 Then prcShowName
    End Sub

    Public Sub prcAddSheets()
        Dim intIndex As Integer
        With objControl(1)
            .Clear
            For intIndex = 1 To ThisWorkbook.Sheets.Count
                .AddItem Text:=Sheets(intIndex).Name
            Next
            .DropDownLines = ThisWorkbook.Sheets.Count
        End With
        With objControl(2)
            .Clear
            For intIndex = 1 To ThisWorkbook.Sheets.Count
                .AddItem Text:=Sheets(intIndex).Name
            Next
            .DropDownLines = ThisWorkbook.Sheets.Count
        End With
        prcShowName
    End Sub

    Public Sub prcCheck()
        Dim intIndex As Integer
        If ThisWorkbook.Sheets.Count = objControl(1).ListCount Then
            For intIndex = 1 To ThisWorkbook.Sheets.Count
                If objControl(1).List(intIndex) <> Sheets(intIndex).Name Then prcAddSheets: Exit For
            Next
            If intIndex > ThisWorkbook.Sheets.Count Then prcShowName
        Else
            prcAddSheets
        End If
    End Sub

    Public Sub prcShowName()
        objControl(1).Text = ActiveSheet.Name
        objControl(2).Text = ActiveSheet.Name
    End Sub


    ------------------
    Gruß
    Nepumuk     

    [Diese Nachricht wurde von Nepumuk am 15. Mai. 2009 editiert.]

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 15. Mai. 2009 10:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

    Zitat:
    Original erstellt von Nepumuk:
    Hallo,

    jetzt hat's schon so viele Antworten hier, dann geb ich meinen Senf auch noch dazu. Im Anhang eine Mappe, welche eine Combobox in den Menüleisten anlegt über die navigiert werden kann.


    Dei Download geht nicht!
    Die Idee hatte ich auch schon getestet. Funktionierte auch! War aber nicht ganz das was ich wollte .

    ------------------
      Ich nutze Boardsuche | Google | Netiquette

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Paulchen
    Mitglied
    Bauing./SW-Entwickler


    Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

    Beiträge: 1227
    Registriert: 19.08.2004

    Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

    erstellt am: 15. Mai. 2009 10:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Zitat:
    Dei Download geht nicht!
    Eine Unverschämtheit;) Der böse, böse Server mag keine üs...

    Mach aus dem "ü" im "für" ein "%FC" und bau Dir den link zusammen, also: http://ww3.cad.de/foren/ubb/uploads/Nepumuk/Symbolleiste_mit_Combobox_f%FCr _Tabellenauswahl.xls.txt - rechte Maustaste - Speichern unter - ohne .txt OK - vergiss es, Nepumuk hats angepasst.

    Zitat:
    Die Idee hatte ich auch schon getestet. Funktionierte auch! War aber nicht ganz das was ich wollte .
    Tatsächlich? Du hast im xl07-Ribbon ein AddIn erstellt, welches die Register listet und anwählen kann? Respekt - her damit  !

    ------------------
    DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    runkelruebe
    Moderator
    Straßen- / Tiefbau




    Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

    Beiträge: 8086
    Registriert: 09.03.2006

    MS-Office 365 ProPlus x86
    WIN7(x64)

    erstellt am: 15. Mai. 2009 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Der server ist Unix-basierend, der strubbelt wohl bisserl, aber der user kann da was gegen tun: KLICK.
    Und damit streichen wir auch AndreasBo von der Liste der Falscheingestellten 

    ------------------
    Gruß,
    runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

    System-Info | Excel -Suche | RuA-Suche | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Nepumuk
    Mitglied
    Entwicklungsleiter


    Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

    Beiträge: 351
    Registriert: 16.10.2004

    erstellt am: 15. Mai. 2009 10:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Hi,

    normalerweise achte ich sehr darauf keine Sonderzeichen außer dem Unterstrich und keine Leerzeichen in Dateinamen zu haben. Die ist irgendwie durchgerutscht. Ok, die ist auch aus dem Jahr 2003 da war ich noch nicht so pingelig.

    ------------------
    Gruß
    Nepumuk 

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Nepumuk
    Mitglied
    Entwicklungsleiter


    Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

    Beiträge: 351
    Registriert: 16.10.2004

    erstellt am: 15. Mai. 2009 11:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich


    Ribbons.jpg

     
    Hallo Paulchen,

    wenn du ein Addin für 2007 haben willst, welches die selbe Funktion beinhaltest, dann kann ich dir so etwas schon machen. Die Ribbons sind nun wirklich kein Problem. Die gestalte ich per XML+VBA wie ich Lust habe.

    ------------------
    Gruß
    Nepumuk 

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 15. Mai. 2009 12:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

     
    Zitat:
    Original erstellt von runkelruebe:
    Und damit streichen wir auch AndreasBo von der Liste der Falscheingestellten  ;-)

        Was ist das den für eine Liste und was hatte ich da bloß zu suchen??


    [rredit] Hi Andreas  ich bezog mich auf Deine Aussage: "Dei Download geht nicht!" <- Lüge ;-) mit den richtigen Einstellungen im browser konnte man den auch vor der Umbenennung des files laden ;-) [/rredit]

    ------------------
        Ich nutze Boardsuche | Google | Netiquette

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Paulchen
    Mitglied
    Bauing./SW-Entwickler


    Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

    Beiträge: 1227
    Registriert: 19.08.2004

    Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

    erstellt am: 15. Mai. 2009 12:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Wow - das nenne ich mal angepasst!

    @Nepumuk: Nene, ich brauche kein Ribbon.

    Nur ist eben dass, was in xls <07 noch "benutzerdefinierte Symbolleisten" (und Menüs) waren, in 2007 ein klein wenig anders. Umso mehr hat mich erstaunt, dass die von Dir oben angehängte Datei genau das tut: Sie taucht in 07 unter Add-Ins als Menübefehl auf - mal eben fix aus dem Ärmel geschüttelt. Mich würde interessieren, wie AndreasBos Variante dazu aussieht.

    VBA und XML macht mich tatsächlich neugierig; nur weicht das dann recht stark vom Thema ab...

    ------------------
    DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Nepumuk
    Mitglied
    Entwicklungsleiter


    Sehen Sie sich das Profil von Nepumuk an!   Senden Sie eine Private Message an Nepumuk  Schreiben Sie einen Gästebucheintrag für Nepumuk

    Beiträge: 351
    Registriert: 16.10.2004

    erstellt am: 15. Mai. 2009 16:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Hallo Paulchen,

    damit würde ich auch das Forum sprengen. Da stecken knapp 1.000 Zeilen XML-Code und über 10.000 Zeilen VBA-Code dahinter. Dazu nochmal knapp 1.000 Zeilen VBA-Code zum erzeugen des XML- und des VBA-Codes. Das ist deswegen so aufwendig, weil ein Berechtigungskonzept mit 22 Stufen besteht welche unter anderem das Menü steuert.

    ------------------
    Gruß
    Nepumuk 

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 19. Mai. 2009 07:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


    TabellenName_Symbolleiste.zip

     
    Hier einmal meine Datei mit einer Symbolleiste!

    In DieseArbeitsmappe

    Code:
    Option Explicit

    Private Sub Workbook_Activate()
        Toolbar
        ReadSheets
    End Sub

    Private Sub Workbook_Deactivate()
        DeletMenuBars       'ausführen Makro aus Modul
        'Statusbar wieder abschalten und alten Status wiedeherstellen
        Application.StatusBar = False
    End Sub

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        DeletMenuBars       'ausführen Makro aus Modul
        'Statusbar wieder abschalten und alten Status wiedeherstellen
        Application.StatusBar = False
    End Sub

    Private Sub Workbook_Open()
        Toolbar
        ReadSheets
    End Sub

    Private Sub Workbook_NewSheet(ByVal Sh As Object)
        ReadSheets
    End Sub



    In Modul1
    Code:
    Option Explicit

    Public tbrTabellen As CommandBar
    Public cbxTabellen As CommandBarControl

    Sub Toolbar()
        On Error GoTo Fehler
        Set tbrTabellen = CommandBars.Add(Name:="Tabellen", Position:=msoBarFloating, Temporary:=True) 'Position:=msoBarTop
        With tbrTabellen
        Set cbxTabellen = .Controls.Add(Type:=msoControlDropdown, Before:=.Controls.Count + 1)
        cbxTabellen.Width = 200
        cbxTabellen.OnAction = "SelectSheet"
        End With
    Fehler:
        CommandBars("Tabellen").Visible = True
    End Sub

    Sub ReadSheets()
    Dim tmpSheet
    Dim tmpSel
        cbxTabellen.Clear
        For tmpSheet = 1 To Sheets.Count
        cbxTabellen.AddItem Sheets(tmpSheet).Name
        If Sheets(tmpSheet).Name = ActiveSheet.Name Then tmpSel = tmpSheet
        Next
        cbxTabellen.ListIndex = tmpSel
    End Sub

    Sub SelectSheet()
        Sheets(cbxTabellen.List(cbxTabellen.ListIndex)).Select
    End Sub


    'Menüleiste löschen
    Sub DeletMenuBars()
        On Error Resume Next
        CommandBars("Tabellen").Delete
    End Sub
    'Ende Kontextmenü


    Gruß
    Andreas

    ------------------
        Ich nutze Boardsuche | Google | Netiquette

    [Diese Nachricht wurde von AndreasBo am 19. Mai. 2009 editiert.]

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 19. Mai. 2009 07:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


    Tabellen_UserFormListbox.zip

     
    Hier eine Variante mit einer ListBox in einer Userfom wo trotz geöffneter Userform in Excel gearbeitet wird.
    Wenn die Mappe ausgeblendet oder minimiert wird so wird die Userform ausgeblendet. Bei aktivierung der Mappe wird die UserForm wieder eingeblendet.

    In DieseArbeitsmappe

    Code:
    Option Explicit

    Private Sub Workbook_Activate()
        UserForm1.Show vbModeless
    End Sub

    Private Sub Workbook_Open()
        UserForm1.Show vbModeless
    End Sub

    Private Sub Workbook_NewSheet(ByVal Sh As Object)
        UserForm1.Show vbModeless
    End Sub

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
       
        If UserForm1.Visible = False Then
            UserForm1.Show vbModeless
        End If
        Call ListBox1_Fill
    End Sub

    Private Sub Workbook_Deactivate()
        UserForm1.Hide
    End Sub



    In Modul
    Code:
    Option Explicit

    Public Sub ListBox1_Fill()
    Dim ws As Worksheet
         
        UserForm1.ListBox1.SetFocus    'soll angewählt sein
        UserForm1.ListBox1.Clear        'soll geleert werden
        With UserForm1.ListBox1
            .Clear                      'Liste Leeren
            For Each ws In Worksheets  'fuellen...
            .AddItem ws.Name            'Tabellen in Liste einfügen
            Next ws
        End With

    End Sub



    In UserForm1
    Code:
    Option Explicit

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        ThisWorkbook.Worksheets(Me.ListBox1.Value).Activate
    End Sub

    Private Sub UserForm_Activate()
       
        Application.ScreenUpdating = False  'Bildschirmaktualisierungen aus
        Call ListBox1_Fill                  'Makro ausführen
       
    End Sub

    Private Sub UserForm_Initialize()
       
        Application.ScreenUpdating = False  'Bildschirmaktualisierungen aus
        Call ListBox1_Fill                  'Makro ausführen
       
    End Sub


    Private Sub UserForm_Layout()
    'Positionieren der Userform
        With UserForm1
            .Left = Application.Width - .Width - 20    'Horizontale Pos. des UF
            .Top = Application.Height / 6              'Vertikale Position
        End With

    End Sub


    Gruß
    Andreas

    ------------------
      Ich nutze Boardsuche | Google | Netiquette

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Peter2
    Ehrenmitglied V.I.P. h.c.




    Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

    Beiträge: 3858
    Registriert: 15.10.2003

    erstellt am: 17. Feb. 2010 18:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Guten Abend

    mit Interesse - und leider mit mangelnden Hintergrundkenntnissen - habe ich dieses Thema überflogen und habe mir aus dem vorigen Beitrag die Tabelle geladen. Bei mir mit Excel 2003 läuft diese Tabelle gut, und ich möchte die Funktion in eine bestehende Tabelle einbauen - damit bin ich derzeit am Ende angelangt.

    Schritt a:
    Ich habe den Code aus dem Forumsbeitrag in meine Tabelle kopiert. Da hat der Debugger reklamiert.

    Schritt b:
    Ich habe bas, frm und cls aus der Mustertabelle exportiert und in meine Tabelle importiert. Alles ist da, es ist aufrufbar - und Schluss: keine Reaktion, keine Anzeige, keine Fehlermeldung, ...

    Frage a:
    Ich vermute, dass der Code in der Tabelle identisch ist mit dem Code im Beitrag?

    Frage b:
    Wie bringe ich das zum Laufen?

    Danke im voraus

    Peter


    EDIT:
    Nachtrag - Das Fenster ist unverschiebbar - richtig? Oder mein Fehler?

    ------------------
    Für jedes Problem gibt es eine einfache Lösung.
    Die ist aber meistens falsch. ;-)

    [Diese Nachricht wurde von Peter2 am 17. Feb. 2010 editiert.]

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 17. Feb. 2010 23:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

    Also bei mir hat alles geklappt auch in Excel 2007.
    Modul importieren, userform importieren und den Code aus der Tabell.

    Nein, das Fenster kann nicht verschoben werden. Die Position ist
    im Code festgelegt.

    Warm bei dir Fehler, kann ich nicht sagen.
    Poste mal deine Datei

    Gruß
    Andreas

    ------------------
      Ich nutze alte Boardsuche | Google | Netiquette | Wie stellt man Fragen richtig? | Systeminfo

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Peter2
    Ehrenmitglied V.I.P. h.c.




    Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

    Beiträge: 3858
    Registriert: 15.10.2003

    erstellt am: 18. Feb. 2010 11:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Servus Andreas

    heute läuft es gut - danke.

    Aber ich muss nochmals bohren: Der Code mit der Symbolleiste anstelle der Listbox (anderes Posting oben) ist für mich besser, aber kann man es so codieren, dass
    - die Symbolleiste dort bleibt, wo man sie hingesetzt hat
    - die Dropdownliste länger wird (mehr Einträge ohne Scrollen aufweist)?

    Das wäre praktisch ...

    Danke

    Peter

    ------------------
    Für jedes Problem gibt es eine einfache Lösung.
    Die ist aber meistens falsch. ;-)

    [Diese Nachricht wurde von Peter2 am 18. Feb. 2010 editiert.]

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 18. Feb. 2010 17:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

    Hallo,

    also die Position kannst du hier Position:=msoBarFloating verändern. Hier z.B. Position:=msoBarTop eingeben.
    Mit der Länge muss ich noch probieren.

    Gruß
    Andreas

    ------------------
      Ich nutze alte Boardsuche | Google | Netiquette | Wie stellt man Fragen richtig? | Systeminfo

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Peter2
    Ehrenmitglied V.I.P. h.c.




    Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

    Beiträge: 3858
    Registriert: 15.10.2003

    erstellt am: 18. Feb. 2010 18:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Zitat:
    Original erstellt von AndreasBo:
    Hallo,

    also die Position kannst du hier ..



    Wenn man das weglässt: ist es dann absolut "benutzerdefiniert" - oder unbrauchbar?

    Peter

    ------------------
    Für jedes Problem gibt es eine einfache Lösung.
    Die ist aber meistens falsch. ;-)

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Paulchen
    Mitglied
    Bauing./SW-Entwickler


    Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

    Beiträge: 1227
    Registriert: 19.08.2004

    Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

    erstellt am: 18. Feb. 2010 20:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Hallo zusammen,
    Zitat:
    - die Symbolleiste dort bleibt, wo man sie hingesetzt hat
    - die Dropdownliste länger wird (mehr Einträge ohne Scrollen aufweist)?
    zu 1: Ja - einfach auskommentieren: In Excel - Alt+F11 --> VBA-Umgebung - Navigator anzeigen lassen (Strg+R) - Formulare - UserForm1 wählen, dort den Code der Private Sub UserForm_Layout() komplett auskommentieren.

    zu 2: Ja. Schnell, einmalig und schmutzig: In besagter Userform die Form anklicken, unten (größer) ziehen, anschließend die ListBox vergrößern. Eleganter ließe sich das vielleicht über den Inhalt der ListBox "dynamisch" steuern?! @Peter: Wie viele Register willst Du denn auflisten?

    ------------------
    DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Peter2
    Ehrenmitglied V.I.P. h.c.




    Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

    Beiträge: 3858
    Registriert: 15.10.2003

    erstellt am: 18. Feb. 2010 22:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Zitat:
    Original erstellt von Paulchen:
    ....zu 2: Ja. Schnell, einmalig und schmutzig: In besagter Userform die Form anklicken, unten (größer) ziehen, anschließend die ListBox vergrößern. ...

    Achtung - es geht nicht um die Variante mit der "Listbox in der Userform", sondern um die "Dropdownliste in der Symbolleiste" - ohne Userform (erster Beitrag oben vom 19.5.2009)

    Peter

    ------------------
    Für jedes Problem gibt es eine einfache Lösung.
    Die ist aber meistens falsch. ;-)

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 19. Feb. 2010 12:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

    Hallo,

    scha dir mal dazu diesen Beitrag http://www.herber.de/forum/archiv/760to764/t761139.htm  an

    Gruß
    Andreas

    ------------------
      Ich nutze alte Boardsuche | Google | Netiquette | Wie stellt man Fragen richtig? | Systeminfo

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Peter2
    Ehrenmitglied V.I.P. h.c.




    Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

    Beiträge: 3858
    Registriert: 15.10.2003

    erstellt am: 19. Feb. 2010 14:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

    Zitat:
    Original erstellt von AndreasBo:
    Hallo,

    scha dir mal dazu diesen Beitrag http://www.herber.de/forum/archiv/760to764/t761139.htm  an

    Gruß
    Andreas



    besten Dank, habe ich überflogen, aber das übersteigt meine Kenntnisse und den möglichen Nutzen. Ich werde mit der aktuellen Lösung auch glücklich werden.
    Danke für die Hilfe.

    Peter

    ------------------
    Für jedes Problem gibt es eine einfache Lösung.
    Die ist aber meistens falsch. ;-)

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    AndreasBo
    Mitglied
    TZ & Konstruktion


    Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

    Beiträge: 861
    Registriert: 16.11.2006

    ********
    Wenn am Anfang alles schief geht,
    nenne es Version 1.0!

    erstellt am: 19. Feb. 2010 17:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

    Hallo,

    also wenn du z.B. Position:=msoBarTop eingibst dan wird die Liste in der Symbolleiste oben  eingefügt.
    Position:=msoBarFloating setzt die Leiste mitten ins Fenster du kannst diese zwar verschieben aber wenn die Tabelle neu geöffnet wird, ist die Leiste wieder in der Mitte.
    Die DropDownListe verlängert sich auch jetzt schon automatisch.
    Tder Wert cbxTabellen.Width = 200 verändert die Breite der Symbolleiste.

    ------------------
      Ich nutze alte Boardsuche | Google | Netiquette | Wie stellt man Fragen richtig? | Systeminfo

    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

    Anzeige.:

    Anzeige: (Infos zum Werbeplatz >>)

    Dieses Thema ist 2 Seiten lang:   1  2

    Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

    nächster neuerer Beitrag | nächster älterer Beitrag
    Antwort erstellen


    Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

    Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

    Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

    (c)2024 CAD.de | Impressum | Datenschutz