![]() |
Excel - DropDown-Menü in einer Zelle erzeugen
Hallo,
Wie kann ich über Delphi ein Dropdownmenü in Excel in einer Zelle erzeugen ? cells[x,y].dropdown ??? Und wie kann ich dieses Menü dann mit Inhalt füllen ? mfg Nimmersatt |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Genauso wie aus VBA, da die (COM-)Automatisierung die selbe Schnittstelle verwendet.
|
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Hier die vorgehensweise mit VBA:
Code:
Dim MyList(5) As String
MyList(0) = 1 MyList(1) = 2 MyList(2) = 3 MyList(3) = 4 MyList(4) = 5 MyList(5) = 6 With Range("A1").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:=Join(MyList, ",") End With ![]() Das ganze musst du dann natürlich über die Automatisierungsschnittstelle realisieren aber das sollte ja möglich sein, oder? Grüße Headbucket |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Hallo Headbucket,
Zitat:
Könntest du das in Delphi übersetzen ? Eine andere Variante ![]() Erklärung: Der Input für das DropDown ist im "Tabelle1" R2C1 bis R4C1 Der Vergebene Namen heißt "EOL" Code: Zitat:
Da wäre auch eine Übersetzung in Delphi hilfreich. Zur Info, ich arbeite mit Delphi 4 und Excel 2007. mfg Nimmersatt |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Wie gesagt, verwendet COM/OLE die selbe Schnittstelle
Delphi-Quellcode:
Uses ...,ComObj, ActiveX, ...
... var Excel, WorkBook, WorkSheet, Range: OleVariant; begin try Excel := GetActiveOleObject('Excel.Application'); except Excel := CreateOleObject('Excel.Application'); end; WorkBook := Excel.ActiveWorkBook; WorkSheet := WorkBook.ActiveSheet; Range := WorkSheet.Range['A1:A4']; Range.Validation.Delete; Range.Validation.Add(3, 1, 1, 'Join(MyList, ",")', null); ... end; |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Hallo Mkinzler,
Danke !:thumb: Aber es gibt da noch ein paar Probleme. In der Excelzelle steht ein Begriff, per Dropdown soll ein mehrzeiliger Text erscheinen, der diesen Begriff erläutert. Es soll keine Auswahl stattfinden ! ich stehe vor 3 Problemen 1) es soll nur der Begriff im Dropdownmenü aktiv bleiben 2) wie bringe ich den mehrzeiligen Text unter ? 3) das DropdwonMenü soll sichtbar sein, wenn eine andere Excelzelle aktiv ist, damit meine ich den Button mit dem Dreieck mfg Nimmersatt |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Kann es sein, dass du die Kommentar-Funktion meinst?
Das kleine rote Recheck oben rechts in einer Excel-Zelle, wo so eine Art Sprechblase aufklappt, wenn man darauf klickt? |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Hallo Jumpy,
Ja, das könnte die Kommentarfunktion sein, wo ein nach unten gerichtetes Dreieck enthalten ist. Mein Problem ist, ich kann kein VBA-Code in Delphi übersetzen, sonst würde ich hier ja nicht nachfragen. mfg Nimmersatt |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Du könntest es uns auch leichter machen, indem du den VBA-Code, den du haben magst, hier postest und wir helfen dir diesen in Delphi umzusetzen.
VBA-Codes kannst du ganz einfach durch Makro-Aufzeichnungen erhalten. |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Das Problem mit dem mehrzeiligen Text ist jetzt gelöst
Zitat:
die anderen 2 Probleme sind - es soll nur der Begriff im Dropdownmenü aktiv bleiben - das DropdwonMenü soll sichtbar sein, wenn eine andere Excelzelle aktiv ist, damit meine ich den Button mit dem Dreieck |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Zitat:
Das wird so nur sichtbar sein, wenn die Zelle aktiv ist. Denn du platzierst ja nicht wirklich eine Combobox in der Zelle sondern benutz Excels Datenprüfungsfunktionalität. Was du somit machen könntest, wäre mit einer echten Combobox zu arbeiten, die du über eine Zelle legst und die du so mit der Zelle verknüpfst, dass der Wert in der Combobox auch in der Excel-Zelle steht. |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Hallo Jumpy,
Wenn ich die Zelle anklicke, möchte ich mir einen mehrzeiligen Infotext ansehen, ich will keine Auswahl treffen. Wie heisst diese Funktion ? Dropdown oder die Combobox erfüllen nicht ganz diese Anforderungen. mfg Nimmersatt |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Hallo,
das, was Du suchst heißt Kommentar oder auf Englisch Comment.
Code:
Range("B3").AddComment
Range("B3").Comment.Visible = False Range("B3").Comment.Text Text:="Nimmersatt:" & Chr(10) & "Zeile 1" & Chr(10) & "Zeile 2" & Chr(10) & "Zeile 3" |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Hallo Gollum,
Ja genau, das war es !:thumb: der Code in Delphi lautet Zitat:
mfg Nimmersatt |
AW: Excel - DropDown-Menü in einer Zelle erzeugen
Noch ein Problem !
Ich will den mehrzeiligen Inhalt einer Excelzelle als Kommentar ausgeben. Wie errechne ich die Länge und Breite des mehrzeiligen Inhaltes, um damit die Länge und Breite des Kommentarfeldes festlegen zu können ? mfg Nimmersatt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz