Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Excel - DropDown-Menü in einer Zelle erzeugen (https://www.delphipraxis.net/182769-excel-dropdown-menue-einer-zelle-erzeugen.html)

Nimmersatt 17. Nov 2014 11:38

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

mkinzler 17. Nov 2014 11:39

AW: Excel - DropDown-Menü in einer Zelle erzeugen
 
Genauso wie aus VBA, da die (COM-)Automatisierung die selbe Schnittstelle verwendet.

Headbucket 17. Nov 2014 11:52

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
http://msdn.microsoft.com/de-de/libr...ice.15%29.aspx

Das ganze musst du dann natürlich über die Automatisierungsschnittstelle realisieren aber das sollte ja möglich sein, oder?

Grüße
Headbucket

Nimmersatt 17. Nov 2014 13:43

AW: Excel - DropDown-Menü in einer Zelle erzeugen
 
Hallo Headbucket,

Zitat:


With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=Join(MyList, ",")
End With


Könntest du das in Delphi übersetzen ?


Eine andere Variante

http://www.office-loesung.de/ftopic318697_0_0_asc.php


Erklärung:

Der Input für das DropDown ist im "Tabelle1" R2C1 bis R4C1
Der Vergebene Namen heißt "EOL"
Code:

Zitat:

Range("A2:A4").Select
ActiveWorkbook.Names.Add Name:="EOL", RefersToR1C1:="=Tabelle1 R2C1:R4C1"
ActiveWorkbook.Names("EOL").Comment = ""


Da wäre auch eine Übersetzung in Delphi hilfreich.
Zur Info, ich arbeite mit Delphi 4 und Excel 2007.



mfg Nimmersatt

mkinzler 17. Nov 2014 14:18

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;

Nimmersatt 17. Nov 2014 16:17

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

Jumpy 18. Nov 2014 08:03

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?

Nimmersatt 18. Nov 2014 10:26

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

baumina 18. Nov 2014 10:35

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.

Nimmersatt 18. Nov 2014 11:50

AW: Excel - DropDown-Menü in einer Zelle erzeugen
 
Das Problem mit dem mehrzeiligen Text ist jetzt gelöst

Zitat:

Range.Validation.Add(3, 1, 1,'erste Zeile;zweite Zeile;dritte Zeile', null);


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


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz