Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ImageCombo zum wechseln zwischen Tabellen
#1
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
Antworten Top
#2
Hallo,

kannst Du uns eine Beispielmappe zur Verfügung stellen?
Gruß Atilla
Antworten Top
#3
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
(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.


Angehängte Dateien
.xls   TestMappe.xls (Größe: 53 KB / Downloads: 6)
Antworten Top
#5
Hallo Dubsepp,

nimm das Clickereignis:
Private Sub ImageCombo1_Click()
 If ImageCombo1.Text <> "-" Then
   ActiveWorkbook.Sheets(ImageCombo1.Text).Activate
 End If
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Dubsepp
Antworten Top
#6
(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
Antworten Top
#7
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
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Rabe
Antworten Top
#8
hi,

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

Kann das umgangen werden?
Antworten Top
#9
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.
Gruß Atilla
Antworten Top
#10
Vielleicht so ?


@Att

Stimmt, doch nur die Maus nach unten ziehen macht dasselbe.


Angehängte Dateien
.xlsb   __combo Rabe.xlsb (Größe: 17,04 KB / Downloads: 2)
Antworten Top


Gehe zu:


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