AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Excel - DropDown-Menü in einer Zelle erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

Excel - DropDown-Menü in einer Zelle erzeugen

Ein Thema von Nimmersatt · begonnen am 17. Nov 2014 · letzter Beitrag vom 18. Nov 2014
Antwort Antwort
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#1

Excel - DropDown-Menü in einer Zelle erzeugen

  Alt 17. Nov 2014, 12:38
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.869 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Excel - DropDown-Menü in einer Zelle erzeugen

  Alt 17. Nov 2014, 12:39
Genauso wie aus VBA, da die (COM-)Automatisierung die selbe Schnittstelle verwendet.
Markus Kinzler
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Excel - DropDown-Menü in einer Zelle erzeugen

  Alt 17. Nov 2014, 12:52
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

Geändert von Headbucket (17. Nov 2014 um 13:04 Uhr) Grund: -
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#4

AW: Excel - DropDown-Menü in einer Zelle erzeugen

  Alt 17. Nov 2014, 14:43
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.869 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Excel - DropDown-Menü in einer Zelle erzeugen

  Alt 17. Nov 2014, 15:18
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;
Markus Kinzler
  Mit Zitat antworten Zitat
Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#6

AW: Excel - DropDown-Menü in einer Zelle erzeugen

  Alt 17. Nov 2014, 17:17
Hallo Mkinzler,

Danke !

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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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 by Thomas Breitkreuz