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.

ActiveX Combobox
#1
Hallo Zusammen,

Ausgangssituation:

Die Schriftgröße normaler Dropdownlisten ist zu klein. Und das Anpassen der Schriftgröße und Formatierungen der kompletten Datei ist zu aufwendig.

Daher dachte ich mir ich versuche es mit dem ActiveX Steuerelement Combobox.

Einmal Dropdowns bei denen Text ausgewählt wird und anhand vom Text gewisse Makros ausgelöst werden.
Und einmal Dropdowns um ein Datum im Format MMM YY also Okt 19 auszuwählen.

Problem 1:

Ich habe das Auslösen der Makros mit If Target.Adress = Zelle Then … gesetzte. Das Funktionierte zuvor mit normalen Dropdowns auch. Doch mit der Combobox Dropdownliste werden die Makros trotz Verlinkung der als Target.Adress gesetzten Zelle nicht.

Problem 2:

Die ActiveX Combobox hat ein Problem mit der Verarbeitung bestimmter Datenformate. Mein Input, Format der Auswahlliste und Format des Ausgabewerts sollten alle ein Datum des Formats MMM YY wie z. B. Okt 19 sein.

Wenn die Quelledaten als Datum formatiert sind, werden Sie richtig in der Auswahlliste angezeigt aber der Ausgabewert wird als Zahl und nicht als Datum ausgegeben.

Wenn ich wie öfters Vorgeschlagen die Quelldaten als Textformatiere und nur den Ausgabewert dann über VBA als Datum umformatiere, hat der Ausgabewert zwar das richtige Format aber das Format der Daten in der Auswahlliste ist wieder eine Zahl.



Ich hoffe ich habe es gut genug erklärt und denke das ist auch ohne Beispieldatei verständlich.

Vielen Dank schonmal.

Gruß stchwint
Antworten Top
#2
Hallo, :19:

prinzipiell so: :21:

.xlsb   ACTIVEX_ComboBox_Format_Datum.xlsb (Größe: 17,65 KB / Downloads: 5)

Ergebnis ist kein Datum - wird aber richtig angezeigt. Dodgy

Wenn du mehr Hilfe möchtest - zumindest von meiner Seite aus - lade eine aussagekräftige Beispieldatei hoch. Blush
________
Servus
Case
Antworten Top
#3
Hallo Case,

das Ergebnis in der Zelle wird mit Formeln wie, WERT(), Jahr() und TEXT( ;"MMMM JJJJ") verarbeitet. Von dem her müsste das Ergebnis in der Zelle glaube ich gar kein Datum sein. Danke Dir! Aber wäre das möglich?

Die Auswahl in der Liste kann ja ein Text. Dann müsste ja nur das Ergebnis wieder in ein Datum mit dem Format (" MMM YY") umgewandelt werden oder?
Antworten Top
#4
Also Problem 2 wäre für mich gelöst
Zu meinem Problem 1:

Wie aktiviere ich je nach Textausgabe in der ActiveXCombobox ein bestimmtes Makro?
Zuvor mit dem Code:

Private Sub Worksheet_Change(ByVal target As Range)
If target.Address = "$E$19" Then

Call Makro1...

Nun müste ich ja die Comboboxansprechen oder die linked Cell
Antworten Top
#5
Oder


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  ActiveWindow.Zoom = 100
 
  Application.EnableEvents = False
  If Target.Count = 1 And Not Intersect(Target, Cells.SpecialCells(-4174)) Is Nothing Then ActiveWindow.Zoom = 140
  Application.EnableEvents = True
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • stchwint
Antworten Top
#6
Ich hebe meinen warnenden Zeigefinger, snb...  :21:
Der long-Wert .Count kann im SelectionChange böse abfliegen.
Daher IMMER .CountLarge
Zu allem Überfluss sind dann bei Dir die Events abgeschaltet!

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • stchwint
Antworten Top
#7
Zitat:Zu allem Überfluss sind dann bei Dir die Events abgeschaltet!

Wie meinst du das ?
Hast du schon mal getste ohne application.enableevents=false ?
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • stchwint
Antworten Top
#8
Ich meinte:
?Cells.Count
ergibt den Laufzeitfehler 6 (Überlauf)

Da Du aber erst nach 
application.enableevents=false
prüfst, kommt es eventuell zu obigem Fehler und Events wird nicht wieder zurück gestellt.

Entweder On Error Goto
oder (besser!) .CountLarge

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • stchwint
Antworten Top
#9
Het kwartje (gibt's nicht mehr) is gevallen
Nur wenn target.count > 10^15 wird application.enableevents = False nicht mehr aufgehoben.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • stchwint
Antworten Top
#10
Hallo,

also die Lösung von Case hat eigentlich gut geklappt. Nur bekomme ich jetzt beim öffnen der Datei den "Laufzeitfehler 70 Zugriff verweigert".

Die 151 im Code kommt von selber egal was ich zuvor für eine Zahl eingebe.

Folgender Code:

Option Explicit
Private Sub Workbook_Open()
    Dim lngTMP As Long
   
    For lngTMP = 98 To 145
        Tabelle1.ComboBox6.AddItem (Tabelle1.Cells(lngTMP, 151).Text)
      
    Next lngTMP
      For lngTMP = 49 To 96
        Tabelle1.ComboBox5.AddItem (Tabelle1.Cells(lngTMP, 151).Text)
      
    Next lngTMP
 
   
      
  
 
End Sub
Antworten Top


Gehe zu:


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