Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

String in Variablen-/Konstantenbezeichner umwandln

String in Variablen-/Konstantenbezeichner umwandln
24.01.2005 14:43:28
Tom
Hallo nochmal,
wie kann ich einen String in einen Konstantenbezeichner umwandeln?
Bsp.:

Dim ct = "xlColumnStacked"
objChart.chartType = ct

hier schimpft er natürlich weil ct keine zahl ist.
bei php ging das glaube ich mit "eval()"...
das ziel meines makros ist trölfzig diagramme zu erzeugen, wobei die jeweiligen diagramme in configdateien definiert sind. und darin speichere ich mir halt z.b. auch den charttypen. ihn als zahl zu speichern würde zu unleserlichen configdateien führen, die strings mit ner select-anweisung abzufangen wäre wieder zu undynamisch, dann könnte ich mir gleich eigene konstanten definieren, und ich weiß ja jetz auch nich, was für diagrammtypen später alles noch hinzukommen sollen.
da muss es doch irgendwas geben??
besten dank im vorraus
Tom

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String in Variablen-/Konstantenbezeichner umwa
24.01.2005 16:30:23
Tom
war ja nich anders zu erwarten...
also meine erkenntnisse der letzten 4 stunden: "evaluate" funktioniert nich für konstanten und bis auf einen anderen hier, der auch keine antwort bekam, gibts auch niemanden der so eine funktionalität bislang benötigt hat. also fazit: ich werde, wie nun zum trölften mal bei diesem *** vba, den trölffachen aufwand in kauf nehmen um eine funktionalität zu bewirken, die in anderen progsprachen selbstverständlich oder intuitiv erkennbar ist...
ps: korrektur zum obigen code - es heißt natürlich >dim ct: ct= "xlbla.."<
AW: String in Variablen-/Konstantenbezeichner umwa
24.01.2005 17:51:47
Josef Ehrensberger
Hallo Tom!
Klar geht das!

Dim ct As XlChartType
ct = xlColumnStacked
objChart.ChartType = ct


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: String in Variablen-/Konstantenbezeichner umwa
24.01.2005 18:46:42
Tom
Hallo Sepp,
Danke für deine Antwort, aber ich möchte ja einen String in eine Konstante umwandeln, und

objChart.ChartType = "xlColumnStacked"

nimmt er nicht, weil aus "xlColumnStacked" erst xlColumnStacked werden muß.
Deine Anregung hab ich folgendermaßen eingebunden, leider ohne Erfolg:

Set oChart = Charts.Add
With oChart
  .Move after:=Sheets(Sheets.Count)
  .SetSourceData Source:=oAssObj.preChartRange
  Dim xlCh As XlChartType
  xlCh = oAssObj.chartType ' vom Typ String und liefert z.B. "xlColumnStacked" zurück
  .chartType = xlCh

  '.plotBy = oAssObj.plotBy
  .name = oAssObj.name_short
End With

Gruß Tom
Anzeige
AW: String in Variablen-/Konstantenbezeichner umwa
24.01.2005 19:04:38
Josef Ehrensberger
Hallo Tom!
Ich verstehe nicht wo das Problem liegt!

Sub test()
Dim ct As XlChartType
Dim chrt1 As Chart
Dim chrt2 As Chart
Set chrt1 = Sheets(1).ChartObjects("Diagramm 1").Chart
Set chrt2 = Sheets(1).ChartObjects("Diagramm 2").Chart
ct = chrt1.ChartType
chrt2.ChartType = ct
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
AW: String in Variablen-/Konstantenbezeichner umwa
24.01.2005 19:39:45
Tom
hallo Sepp,
ich glaub mein Beispielcode war zugegebenermaßen etwasverwirrend: oAssObj ist kein chart, sondern ein reines Datenobjekt,
Der Sachverhalt ist: ich lege ein neues Chart an und lege anschließend fest, von welchem Typ es ist. Das weiß aber nicht der VBA-Quellcode sondern die Datei "charts.xml", in der die Diagrammmerkmale definiert (<charttype>xlColumnStacked</charttype>) sind. oAssObj kapselt die KonfigDaten und hat eine GetMethode, die den ChartTypen im StringFormat wiedergibt.
Problem: wie kriege ich aus dem Charttypen "xlColumnStacked" im Stringformat die Excel-Konstante xlColumnStacked im XlChartType-Format, die den Wert 52 hat???
Gruß Tom
Anzeige
AW: String in Variablen-/Konstantenbezeichner umwa
24.01.2005 19:58:35
andre
Hallo Tom,
da musst Du Dir wohl oder übel eine Konvertierungsmatrix aufbauen.
Grüße, Andre
AW: String in Variablen-/Konstantenbezeichner umwa
24.01.2005 20:41:42
Tom
Na die hab ich quasi auch erstmal pro forma zusammengeschustert, muß ja trotzdem weiter vorankommen... Aber die Hoffnung stirbt zuletzt ...
: /
Gruß,
Tom
AW: String in Variablen-/Konstantenbezeichner umwa
24.01.2005 23:40:03
Josef Ehrensberger
Hallo Tom!
Hab' da auch was gezimmert!
Vielleicht hilt's dir.


      
Private Function getChartType(strType As StringAs XlChartType
 strType = Replace(strType, 
"xl""")
 
   
Select Case strType
      
Case "ColumnClustered"
      getChartType = &H33
      
Case "3DColumnClustered"
      getChartType = &H36
      
Case "ColumnStacked"
      getChartType = &H34
      
Case "3DColumnStacked"
      getChartType = &H37
      
Case "ColumnStacked100"
      getChartType = &H35
      
Case "3DColumnStacked100"
      getChartType = &H38
      
Case "3DColumn"
      getChartType = &HFFFFEFFC
      
Case "BarClustered"
      getChartType = &H39
      
Case "3DBarClustered"
      getChartType = &H3C
      
Case "BarStacked"
      getChartType = &H3A
      
Case "3DBarStacked"
      getChartType = &H3D
      
Case "BarStacked100"
      getChartType = &H3B
      
Case "3DBarStacked100"
      getChartType = &H3E
      
Case "Line"
      getChartType = &H4
      
Case "LineMarkers"
      getChartType = &H41
      
Case "LineStacked"
      getChartType = &H3F
      
Case "LineMarkersStacked"
      getChartType = &H42
      
Case "LineStacked100"
      getChartType = &H40
      
Case "LineMarkersStacked100"
      getChartType = &H43
      
Case "3DLine"
      getChartType = &HFFFFEFFB
      
Case "Pie"
      getChartType = &H5
      
Case "PieExploded"
      getChartType = &H45
      
Case "3DPie"
      getChartType = &HFFFFEFFA
      
Case "3DPieExploded"
      getChartType = &H46
      
Case "PieOfPie"
      getChartType = &H44
      
Case "BarOfPie"
      getChartType = &H47
      
Case "XYScatter"
      getChartType = &HFFFFEFB7
      
Case "XYScatterSmooth"
      getChartType = &H48
      
Case "XYScatterSmoothNoMarkers"
      getChartType = &H49
      
Case "XYScatterLines"
      getChartType = &H4A
      
Case "XYScatterLinesNoMarkers"
      getChartType = &H4B
      
Case "Bubble"
      getChartType = &HF
      
Case "Bubble3DEffect"
      getChartType = &H57
      
Case "Area"
      getChartType = &H1
      
Case "3DArea"
      getChartType = &HFFFFEFFE
      
Case "AreaStacked"
      getChartType = &H4C
      
Case "3DAreaStacked"
      getChartType = &H4E
      
Case "AreaStacked100"
      getChartType = &H4D
      
Case "3DAreaStacked100"
      getChartType = &H4F
      
Case "Doughnut"
      getChartType = &HFFFFEFE8
      
Case "DoughnutExploded"
      getChartType = &H50
      
Case "Radar"
      getChartType = &HFFFFEFC9
      
Case "RadarMarkers"
      getChartType = &H51
      
Case "RadarFilled"
      getChartType = &H52
      
Case "Surface"
      getChartType = &H53
      
Case "SurfaceTopView"
      getChartType = &H55
      
Case "SurfaceWireframe"
      getChartType = &H54
      
Case "SurfaceTopViewWireframe"
      getChartType = &H56
      
Case "StockHLC"
      getChartType = &H58
      
Case "StockVHLC"
      getChartType = &H5A
      
Case "StockOHLC"
      getChartType = &H59
      
Case "StockVOHLC"
      getChartType = &H5B
      
Case "CylinderColClustered"
      getChartType = &H5C
      
Case "CylinderBarClustered"
      getChartType = &H5F
      
Case "CylinderColStacked"
      getChartType = &H5D
      
Case "CylinderBarStacked"
      getChartType = &H60
      
Case "CylinderColStacked100"
      getChartType = &H5E
      
Case "CylinderBarStacked100"
      getChartType = &H61
      
Case "CylinderCol"
      getChartType = &H62
      
Case "ConeColClustered"
      getChartType = &H63
      
Case "ConeBarClustered"
      getChartType = &H66
      
Case "ConeColStacked"
      getChartType = &H64
      
Case "ConeBarStacked"
      getChartType = &H67
      
Case "ConeColStacked100"
      getChartType = &H65
      
Case "ConeBarStacked100"
      getChartType = &H68
      
Case "ConeCol"
      getChartType = &H69
      
Case "PyramidColClustered"
      getChartType = &H6A
      
Case "PyramidBarClustered"
      getChartType = &H6D
      
Case "PyramidColStacked"
      getChartType = &H6B
      
Case "PyramidBarStacked"
      getChartType = &H6E
      
Case "PyramidColStacked100"
      getChartType = &H6C
      
Case "PyramidBarStacked100"
      getChartType = &H6F
      
Case "PyramidCol"
      getChartType = &H70
      
Case Else
      getChartType = 0
   
End Select
   
End Function
   
Sub test()
Dim ct As XlChartType
ct = getChartType(
"xlColumnStacked")
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: String in Variablen-/Konstantenbezeichner umwa
25.01.2005 11:11:29
Tom
Hallo Sepp!
He Danke : ), find' ich ja Wahnsinn, daß du dir so nen Aufwand gemacht hast, genau so nen Selectblock hab' ich mir gestern noch mühevoll zusammengeschustert. Ich dachte halt es geht auch geschickter, da ich immer mal wieder darauf stoße, eine Konstante unter dem Bezeichner zu speichern, sei es bei xlPlotBy, xlLineStyle oder eben xlChartType - wird am Ende auch wieder ne gigantische Funktion...
Nervt halt, da ich mir schon bei den BEx-Variabeln eine Matrix basteln mußte, um Dimensionsbezeichner in SAP-interne IDs umzuwandeln...
Also nochmal vielen Dank für deine Unterstützung : )
Gruß,
Tom
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige