Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
RibbonX - Teil 5 - Auswahl- und Kombinationsfelder
zurück: RibbonX - Teil 6 - Eingebaute Steuerelemente weiter: RibbonX - Teil 4 - Checkboxen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
mumpel
Fortgeschrittener


Verfasst am:
15. Jul 2008, 16:53
Rufname: René
Wohnort: Lindau (B)

RibbonX - Teil 5 - Auswahl- und Kombinationsfelder - RibbonX - Teil 5 - Auswahl- und Kombinationsfelder

Nach oben
       Version: Office 2007

In diesem Teil wollen wir ein Auswahlfeld und ein Kombinationsfelt erstellen. Hierfür wird folgender RibbonX-Code verwendet. Der Beispielcode erstellt zwei Auswahlfelder.
Mit diesen sollen verschiedene Einträge aus zwei Listen in ein "Rechnungsblatt" übertragen werden. Hierbei wird der jeweils erste Eintrag in das "Rechnungsblatt" übertragen. Die restlichen Angaben werden durch SVerweis übernommen.

Zuerst das Auswahlfeld (DropDown)
Erstellen Sie eine neue Arbeitsmappe. Fügen Sie ein neues Modul und in dieses die folgenden für das erste Auswahlfeld gültigen Makros ein.

Option Private Module
Public objRibbon As IRibbonUI
Public Sub rx_onload(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub
Public Sub Artikel_getItemCount(control As IRibbonControl, _
ByRef returnedVal)
returnedVal = 200
End Sub
Public Sub Artikel_getItemID(control As IRibbonControl, _
index As Integer, ByRef id)
id = "Eintrag" & index + 3
End Sub
Public Sub Artikel_getItemLabel(control As IRibbonControl, _
index As Integer, ByRef returnedVal)
 returnedVal = ThisWorkbook.Sheets("Artikelliste").Cells(index + 3, 3).Value
End Sub
Public Sub Artikel_onAction(control As IRibbonControl, _
id As String, index As Integer)
Rem Trägt den gewählten Artikel in die Rechnung ein 
ThisWorkbook.Sheets("Rechnung-Ausfüllen").Cells _
(Cells(1048576, 1).End(xlUp).Row + 1, 1).Value = _
ThisWorkbook.Sheets("Artikelliste").Cells _
(index + 3, 4).Offset(0, -3).Value
End Sub



Fügen Sie nun ein zweites Modul und in dieses die für das zweite Auswahlfeld gültigen Makros ein.

Option Private Module
Public Sub Kunde_getItemCount(control As IRibbonControl, _
ByRef returnedVal)
returnedVal = 200
End Sub
Public Sub Kunde_getItemID(control As IRibbonControl, _
index As Integer, ByRef id)
id = "Eintrag" & index + 3
End Sub
Public Sub Kunde_getItemLabel(control As IRibbonControl, _
index As Integer, ByRef returnedVal)
returnedVal = ThisWorkbook.Sheets("Kundendaten"). _
Cells(index + 3, 4).Value
End Sub
Public Sub Kunde_onAction(control As IRibbonControl, id As String, _
index As Integer)
Rem Trägt die Posi des Kunden in die Rechnung ein 
With ThisWorkbook
.Sheets("Rechnung-Ausfüllen").Range("H2").Value = _
.Sheets("Kundendaten").Cells(index + 3, 4).Offset(0, -3).Value
End With
End Sub



Speichern Sie nun die Änderung und schließen die Arbeitsmappe. Öffnen Sie selbige mit dem CustomUI-Editor und fügen in das Codefenster folgenden Code ein.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="rx_onLoad">
<ribbon startFromScratch="true">
<tabs><tab id="tab01" label="Rechnungserstellung">
<group id="grpCombo" label="Kundenwahl" >
<dropDown id="ddcKunde" label="Kunde:" screentip="Kunden auswählen"
supertip="Die Kundenkennung (Posi) auswählen" sizeString="xxxxxxxxxxxxxxx"
onAction="Kunde_onAction" getItemCount="Kunde_getItemCount"
getItemID="Kunde_getItemID"
getItemLabel="Kunde_getItemLabel" >
</dropDown>
<dropDown id="ddcArtikel" label="Artikel:" screentip="Artikel auswählen"
supertip="Die Artikelkennung (Posi) auswählen" sizeString="xxxxxxxxxxxxxxx"
onAction="Artikel_onAction" getItemCount="Artikel_getItemCount"
getItemID="Artikel_getItemID"
getItemLabel="Artikel_getItemLabel" >
</dropDown></group>
</tab></tabs></ribbon></customUI>



Speichern Sie die Änderung und schließen den Editor.

Beschreibung

id: Gibt die control.ID an
label: Die Beschreibung des Elementes
getItemID: Die ID des Eintrages
getItemLabel: Der Eintrag
getItemCount: Die Anzahl der möglichen Einträge
onAction: Das auszuführende Makro


Jetzt kommen wir zum Kombinationsfeld. Anders als bei Auswahlfedern, bei denen nur feste Einträge gewählt werden können, kann man in einem Kombinatiosnfeld auch Eingaben tätigen. Kombinationsfelder kombinieren Auswahlfelder mit Eingabefeldern (editBox) in einem Element.

Erstellen Sie eine neue Arbeitsmappe. Fügen Sie ein neues Modul und in dieses die folgenden für das Kombinationsfeld gültigen Makros ein.

Die folgenden Codebeispiele stammen von Melanie Breden


Option Explicit

Public objRibbon As IRibbonUI
Rem Callback for customUI.onLoad 
Public Sub rx_onLoad(ribbon As IRibbonUI)
Set objRibbon = ribbon
End Sub

Rem Sub wird beim ersten Anklicken des Pfeils der ComboBox 
Rem und dann bei jeder Neuinitialisierung ausgeführt 

Rem Callback for cboCombo getItemCount 
Public Sub cboCombo_getItemCount(control As IRibbonControl, ByRef returnedVal)
Rem Anzahl Einträge festlegen (Monate) 
   returnedVal = 12
End Sub

Rem Sub wird nach Wert der Variable returnedVal aus getItemCount 
Rem n mal durchlaufen 
Public Sub cboCombo_getItemID(control As IRibbonControl, _
                                index As Integer, ByRef id)
Rem Eindeutiger Index je Eintrag festlegen 
   id = &quot;Month&quot; & index
End Sub

Rem Callback for cboCombo getItemLabel 
Public Sub cboCombo_getItemLabel(control As IRibbonControl, _
                          index As Integer, ByRef returnedVal)
Rem Beschriftung je Eintrag festlegen 
   returnedVal = MonthName(index + 1)
End Sub

Rem Callback für cboCombo onChange 
Public Sub cboCombo_onChange(control As IRibbonControl, text As String)
Rem Auswahl aus Kombinationsfeld in aktive Zelle schreiben 
   ActiveCell.Value = text
End Sub


Speichern Sie nun die Änderung und schließen die Arbeitsmappe. Öffnen Sie selbige mit dem CustomUI-Editor und fügen in das Codefenster folgenden Code ein.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="rx_onLoad">
<ribbon><tabs>
<!--Benutzerdefinierte Registerkarte am Anfang erstellen-->
 <tab id="tb1" label="Combobox" insertBeforeMso="TabHome">
<group id="grpCombo" label="Combobox">
<comboBox id="cboCombo" label="Monate:" screentip=
"Dynamisches Kombinationsfeld" supertip=
"Die Auswahl eines Eintrages wird in die aktive Zelle geschrieben"
onChange="cboCombo_onChange" getItemCount="cboCombo_getItemCount"
getItemID="cboCombo_getItemID" getItemLabel="cboCombo_getItemLabel">
</comboBox></group>
</tab></tabs>
</ribbon></customUI>



(Datei geprüft und Virenfrei)



XL07_DropDown.zip
 Beschreibung:

Download
 Dateiname:  XL07_DropDown.zip
 Dateigröße:  30.71 KB
 Heruntergeladen:  742 mal


xl07_combobox_neu.zip
 Beschreibung:

Download
 Dateiname:  xl07_combobox_neu.zip
 Dateigröße:  15.57 KB
 Heruntergeladen:  529 mal



Zuletzt bearbeitet von mumpel am 31. Aug 2011, 21:55, insgesamt 12-mal bearbeitet
mumpel
Fortgeschrittener


Verfasst am:
15. Jul 2008, 16:55
Rufname: René
Wohnort: Lindau (B)


AW: RibbonX - Teil 5 - Auswahlfeld (DropDown) - AW: RibbonX - Teil 5 - Auswahlfeld (DropDown)

Nach oben
       Version: Office 2007

Auswahlfeld mit variabler Anzahl an Einträgen

Im Eingangsbeitrag haben Sie gelernt, wie man ein Auswahlfeld erstellt. In diesem Beispiel ist die Anzahl der Einträge auf 200 Einträge begrenzt. Mit einer kleinen Änderung können Sie die Anzahl an die Einträge der gewählten Spalte anpassen. Somit können Sie auf das Einfügen oder Löschen von Einträgen reagieren.
Ersetzen Sie einfach die bereits vorhandenen Makros Artikel_getItemCount und Kunde_getItemCount durch die beiden folgenden Makros.

Public Sub Artikel_getItemCount(control As IRibbonControl, ByRef returnedVal)
returnedVal = ThisWorkbook.Sheets("Artikelliste").Cells(Rows.Count, 3).End(xlUp).Row
End Sub

Public Sub Kunde_getItemCount(control As IRibbonControl, ByRef returnedVal)
returnedVal = ThisWorkbook.Sheets("Kundendaten").Cells(Rows.Count, 3).End(xlUp).Row
End Sub



Fügen Sie zusätzlich in den onAction-Ereignissen die folgende Zeile ein.

objRibbon.Invalidate


Zuletzt bearbeitet von mumpel am 01. Sep 2011, 21:41, insgesamt einmal bearbeitet
mumpel
Fortgeschrittener


Verfasst am:
14. Okt 2008, 13:09
Rufname: René
Wohnort: Lindau (B)

AW: RibbonX - Teil 5 - Auswahlfeld (DropDown) - AW: RibbonX - Teil 5 - Auswahlfeld (DropDown)

Nach oben
       Version: Office 2007

Bücher zum Thema:

Das Excel-VBA Codebook (Melanie Breden/Michael Schwimmer)

Ribbon-Programmierung für Office 2007 (André Minhorst / Melanie Breden )
mumpel
Fortgeschrittener


Verfasst am:
13. Aug 2009, 18:36
Rufname: René
Wohnort: Lindau (B)


AW: RibbonX - Teil 5 - Auswahl- und Kombinationsfelder - AW: RibbonX - Teil 5 - Auswahl- und Kombinationsfelder

Nach oben
       Version: Office 2007

{Dient nur der Sortierung}
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Kann Mir Jemand Helfen - WENN, SVERWEIS, TEIL 2 Ekin 798 13. Nov 2007, 16:36
Claudy Kann Mir Jemand Helfen - WENN, SVERWEIS, TEIL
Keine neuen Beiträge Excel Formeln: Mit Kombinationsfelder rechnen 0 micha2878 404 27. Aug 2007, 15:49
micha2878 Mit Kombinationsfelder rechnen
Keine neuen Beiträge Excel Formeln: Sverweis nutzen und eine Auswahl treffen können 3 ForumPirat 1098 23. Jul 2007, 09:35
Wolfgang 1958 Sverweis nutzen und eine Auswahl treffen können
Keine neuen Beiträge Excel Formeln: Teil 3 JOMO1000 375 27. Apr 2007, 12:43
Gast Teil
Keine neuen Beiträge Excel Formeln: Gültigkeit Auswahl + Subauswahl... Wie geht das ?!? 5 B0nE001 2796 23. März 2007, 21:51
Gast Gültigkeit Auswahl + Subauswahl... Wie geht das ?!?
Keine neuen Beiträge Excel Formeln: Kombinationsfelder mit selber "Quelle" 0 Frank_Drebin 480 06. Dez 2006, 14:43
Frank_Drebin Kombinationsfelder mit selber "Quelle"
Keine neuen Beiträge Excel Formeln: Excel Spezialisten - Auswahl mittels Hakerl 3 Gast 2940 20. Sep 2006, 12:12
Gast Excel Spezialisten - Auswahl mittels Hakerl
Keine neuen Beiträge Excel Formeln: Drop Down Auswahl 9 mrs_beanie 909 11. Aug 2006, 07:15
mrs_beanie Drop Down Auswahl
Keine neuen Beiträge Excel Formeln: Wenn Abfrage nach einem Teil einer Zelle 4 Biky 1311 18. Jun 2006, 18:16
Gast Wenn Abfrage nach einem Teil einer Zelle
Keine neuen Beiträge Excel Formeln: Teil und länge auf english? 1 nyzar 16925 16. Mai 2006, 18:29
< Peter > Teil und länge auf english?
Keine neuen Beiträge Excel Formeln: Auswahl per Pull Down 30 sisqonrw 6163 05. Apr 2006, 15:48
ae Auswahl per Pull Down
Keine neuen Beiträge Excel Formeln: Auswahl aus Tabelle 6 P.Büchsenmann 666 06. Dez 2005, 13:57
P.Buechsnemann Auswahl aus Tabelle
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme