Clever-Excel-Forum

Normale Version: ImageCombo zum wechseln zwischen Tabellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute,

habe derzeit eine UserForm die ich als Navigation in einem Dokument verwende, unter anderem Pfeile die in die nächsten Tabelle schalten oder direkte Links zu wichtigen Tabellen. Außerdem habe ich eine ComboBox mit allen Tabellennamen gefüllt um von einem Punkt aus zu jeder Tabelle zu kommen. Problem hierbei: Man kann nicht scrollen.

Nach einigem googlen bin ich dann auf die ImageCombo gestoßen, die von sich aus schon dass scrollen erlaubt. Ich möchte nun meine ComboBox mit dieser ImageCombo ersetzen. Diese verhält sich aber in ihrer Programmierung anders.

Was ich bisher bewerkstelligen konnte: ImageCombo mit den Namen meiner Tabellen füllen.

z.B.

Code:
Private Sub UserForm_Initialize()
With Me.ImageCombo1.ComboItems
.Add.Text = "-"
.Add.Text = "Inhaltsverzeichnis"
.Add.Text = "BUGS"
.Add.Text = "Allgemeines"
.Add.Text = "Vorgehensweise"
End With
End Sub

Was ich jetzt bisher in meiner ComboBox hatte, war, dass, sobald das Element in der Liste ausgewählt wird, Excel auch zu diesem navigiert.


Code:
Private Sub ComboBox1_Change()
If ComboBox1.Value = "-" Then

Else
ActiveWorkbook.Sheets(ComboBox1.Value).Activate
End If

End Sub

Das funktioniert aber so bei der ImageCombo leider nicht mehr, da sie keinen Value sondern nur Text besitzt.

Meine Frage jetzt, wie kann ich das entsprechend umlöten, so dass auch der Wert der ImageCombo als aktuelles Tabellenblatt hergenommen wird?


Viele Grüße

Dubsepp
Hallo,

kannst Du uns eine Beispielmappe zur Verfügung stellen?
Hallo Dub,

man lernt nie aus - die kannte ich noch gar nicht ... Hab's mal probiert. Du kannst mit Text statt mit Value arbeiten, das sollte kein Problem sein.
Allerdings ist hier das Change-Ereignis nicht dasselbe wie bei einer normalen Combobox.

Das Change-Ereignis wirkt bei Änderung der Items, also hier nur beim Aufbau der Liste im Initialize.

Code:
With Me.ImageCombo1.ComboItems
.Add.Text = "-"
.Add.Text = "Inhaltsverzeichnis"
.Add.Text = "BUGS"
.Add.Text = "Allgemeines"
.Add.Text = "Vorgehensweise"
End With

Um an den gewählten Eintrag zu kommen, kannst Du z.B. einen zusätzlichen Button benutzen und damit den Text ausgeben lassen.

Code:
Private Sub CommandButton1_Click()
MsgBox Me.ImageCombo1.Text
End Sub
(20.01.2017, 16:24)schauan schrieb: [ -> ]Hallo Dub,

man lernt nie aus - die kannte ich noch gar nicht ... Hab's mal probiert. Du kannst mit Text statt mit Value arbeiten, das sollte kein Problem sein.
Allerdings ist hier das Change-Ereignis nicht dasselbe wie bei einer normalen Combobox.

Das Change-Ereignis wirkt bei Änderung der Items, also hier nur beim Aufbau der Liste im Initialize.

Code:
With Me.ImageCombo1.ComboItems
.Add.Text = "-"
.Add.Text = "Inhaltsverzeichnis"
.Add.Text = "BUGS"
.Add.Text = "Allgemeines"
.Add.Text = "Vorgehensweise"
End With

Um an den gewählten Eintrag zu kommen, kannst Du z.B. einen zusätzlichen Button benutzen und damit den Text ausgeben lassen.

Code:
Private Sub CommandButton1_Click()
MsgBox Me.ImageCombo1.Text
End Sub  

Hallo schauan!

Wie würde dann der ImageCombo1_Change befehl aussehen?
Code:
Private Sub ImageCombo1_Change()
If ImageCombo1.Text = "-" Then

Else
ActiveWorkbook.Sheets(ImageCombo1.Text).Activate
End If
End Sub

auf diese Art funktionierts nämlich nicht :/

Einem extra Button wäre ich nicht abgeneigt! Wie kann ich es allerdings bewerkstelligen, dass Excel aus diesem Text einen Value macht der bei der Sheet.Activate Funktion erkannt wird?

Danke schonmal!

Dubsepp!

EDIT: Hab auch mal eine Mappe angehängt. Beim Ändern des Eintrages in der ImageCombo soll man zur entsprechenden Tabelle springen.
Hallo Dubsepp,

nimm das Clickereignis:
Private Sub ImageCombo1_Click()
 If ImageCombo1.Text <> "-" Then
   ActiveWorkbook.Sheets(ImageCombo1.Text).Activate
 End If
End Sub
Gruß Uwe
(23.01.2017, 08:08)Kuwer schrieb: [ -> ]Hallo Dubsepp,

nimm das Clickereignis:
Private Sub ImageCombo1_Click()
 If ImageCombo1.Text <> "-" Then
   ActiveWorkbook.Sheets(ImageCombo1.Text).Activate
 End If
End Sub
Gruß Uwe

Super! Das klappt, danke dir!

Gruß

Dubsepp
Man kann unbeschränkt scrollen in ein Combobox (.Style:2):


Code:
Private Sub UserForm_Initialize()
  ComboBox1.List = [index("Tabelle" & row(1:3),)]
End Sub

Private Sub combobox1_Change()
  If ComboBox1.ListIndex > -1 Then Application.Goto Sheets(ComboBox1.Value).Cells(1)
End Sub
hi,

beim ersten Aufruf der Userform/ComboBox steht ja jetzt "ImageCombo1" da.

Kann das umgangen werden?
Hallo Ralf,

bei den Eigenschaften der Combo unter Text den Eintrag löschen.

@snb
ich kann bei mir mit dem Mausrad nicht scrollen, auch bei Styl 2 nicht.
Vielleicht so ?


@Att

Stimmt, doch nur die Maus nach unten ziehen macht dasselbe.
Seiten: 1 2