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
Seite 1 von 2  1 2      
Nimmersatt

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

Excel - DropDown-Menü in einer Zelle erzeugen

  Alt 17. Nov 2014, 11: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.851 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 17. Nov 2014, 11: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, 11: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 12: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, 13: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.851 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 17. Nov 2014, 14: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, 16: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
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#7

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

  Alt 18. Nov 2014, 08:03
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?
Ralph
  Mit Zitat antworten Zitat
Nimmersatt

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

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

  Alt 18. Nov 2014, 10:26
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
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#9

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

  Alt 18. Nov 2014, 10:35
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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Nimmersatt

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

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

  Alt 18. Nov 2014, 11:50
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:40 Uhr.
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