Hallo AutoIT Gemeinden,
ich möchte gerne folgendes erreichen:
1.Spalte Excel Tabelle auslesen, bis dort keine Wert mehr vorhanden ist
Diesen Wert jeweils als "Anhängsel" für eine Variable nutzen (also sollte dann aus: $printername und dem Zellenwert aus der 1.Spalte und der jeweiligen Zeile zb.: $printernamesNDPR003 als Variablenname erstellt werden), darauf aufbauend einen Button mit dem Wert der Variable zeichnen
In einer While/Select Case Schleife die Buttons abfragen, wobei die ich hier die oben erstellte Variable+das "Anhängsel" abfragen möchte, um nicht 25x die Abfrage für jeden Button wiederholen zu müssen.
Hier mein Code, ich denke, hierdurch wird dies deutlicher:
Dim $Printernames[3]
$printernames[0] = ''
$printernames[1] = ''
$printernames[2] = ''
;Excel Tabelle
$xlsdir= "C:\temp\tabelle.xls"
;Excel öffnen
$app = ObjCreate("Excel.application")
$app.Visible = False
$open = $app.Workbooks.Open _
($xlsdir)
; For Schleife setzen für Y (Zeilenwert in Exceltabelle)
for $counter0_i = 1 to 200
;aus Excel lesen, 1.te Spalte, jedoch pro Durchang Zeile 1 bis ...
$NDPR_Names=$app.Cells($counter0_i,1).Value
;wenn kein Eintrag mehr vorhanden, Loop beenden
if $NDPR_Names = "" then ExitLoop
;Wert bei jedem Durchgang um 30 Pilxel erhöhen, damit die Buttons nicht aufeinander gezeichnet werden
$y_counter = $y_counter + 30
;Mit dem ausgelesenen Wert Button zeichnen bzw. dessen Variable für die spätere Abfrage definieren
$printernames[$printernames+1] = GUICtrlCreateButton ( $NDPR_Names , 70, $y_counter)
Next
;Datei pro Zeile einlesen
While 1
$xmsg = GUIGetMsg()
Select
;Wenn einer der Buttons oben definiert ist, dies registrieren und folgende Befehle ausführen
Case $xmsg = $printernames[$printernames]
;feststellen, welche Zeile in der Exceltabelle angesprochen werden soll
;Schleife bilden für alle 12 Werte einer Zeile
for $counter_excel_x = 1 to 12
;aus Excel lesen;y (Zeile) derzeit fest eingetragen, soll jedoch in Zukunft anhand der $Printernames-Variable gesetzt werden
$NDPR_FullLine=$app.Cells(1,$counter_excel_x).Value
;Werte für den ausgewählten Button aus der zugehörigen Zeile lesen und Messagebox für jede Spalte anzeigen (In Zukunft in Sys-Variablen schreiben)
MsgBox (0,"",$NDPR_FullLine)
Next
Exit
;wenn Windows eigender X Button gedrückt, Anwendung schließen
Case $xmsg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
Alles anzeigen
Ich habe das Prinzip der Arrays glaub ich noch nicht ganz verstanden - wahrscheinlich liegt hier die Lösung.
Kann mir jemand einen Tipp geben, wie ich das oben beschriebene ToDo in AutoIT umsetzen kann?
Joe