Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 14:58

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Komma aus Ergebinis an Excel senden

Discussion on Komma aus Ergebinis an Excel senden within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2010
Posts: 92
Received Thanks: 11
Komma aus Ergebinis an Excel senden

Hallo zusammen.

Habe folgende Situation:

Code:
$dist=sqrt(($CenterX-$AktX)*($CenterX-$AktX)+($CenterY-$AktY)*($CenterY-$AktY))

WinActivate("Microsoft Excel")

send(Round($dist, 2))
Das Problem ist jetzt das anstatt des Kommas, welches in Excel für die Nachkommastellen benötigt wird, der Sting mit Punkt als Seperator übergeben wird.
Das führt natürlich zu einem Datumsformat in Excel.
Wie mache ich es das mir in Excel eine richtige Zahl angezeigt wird?

THX
BotofWar is offline  
Old 09/06/2010, 14:42   #2
 
mydoom's Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 322
Received Thanks: 98
Pack die Zahl doch in einen String und ersetze den Punkt mit nem Komma. Ich denke irgendeine StringReplace-Funktion wird es in AutoIt geben.
mydoom is offline  
Old 09/06/2010, 21:46   #3
 
elite*gold: 0
Join Date: Feb 2010
Posts: 92
Received Thanks: 11
Danke schonmal für die Antwort.
Was ich mit meinen bescheidenen AI Kenntnissen versucht habe ist folgendes:

Code:
send(StringReplace((Round($dist, 2)), ".", ","))
Kommt aber nur Mist bei raus.
BotofWar is offline  
Old 09/07/2010, 23:05   #4
 
mydoom's Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 322
Received Thanks: 98
Quote:
Originally Posted by BotofWar View Post

Code:
send(StringReplace((Round($dist, 2)), ".", ","))
Kommt aber nur Mist bei raus.
Das könnte daran liegen, dass Round() keinen String sondern eine Zahl mit Nachkommastellen zurückliefert. Vielleicht musst du diese Zahl erst in einen String umwandeln. Wie AutoIT das handelt kann ich jedoch nicht beantworten, da ich selber kein AutoIT nutze.
mydoom is offline  
Old 09/07/2010, 23:19   #5
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
autoit kann ohne etwas zu machen automatisch zwischen zahlen und strings hin und her springen...


aber ihr solltet euch mal die excel udf anschauen. _ExcelWriteCell($oExcel, $sValue, $sRangeOrRow [, $iColumn = 1]) sollte den job deutlich besser erledigen als send.
lolkop is offline  
Old 09/08/2010, 14:25   #6
 
elite*gold: 0
Join Date: Feb 2010
Posts: 92
Received Thanks: 11
lol.... natürlich...

manchmal sieht man den Wald vor lauter Bäumen nicht...

Aber dadurch hat sich mir ein anderes Problem aufgetan:
.
wie schaffe ich es das mir der Wert in die momentan aktive Zelle geschrieben wird?

Semi: _ExcelWriteCell($oExcel, $sValue, .activecell)
BotofWar is offline  
Old 09/08/2010, 15:55   #7
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
es gibt absolut keinen logischen nutzen, autoit in die zu letzte markierte zelle schreiben zu lassen.

warum sollte man ein script schreiben wo der user die zellen erst noch auswählen muss?
lolkop is offline  
Old 09/09/2010, 12:21   #8
 
elite*gold: 0
Join Date: Feb 2010
Posts: 92
Received Thanks: 11
Deswegen:

Code:
	WinActivate("Microsoft Excel")
	WinWaitActive("Microsoft Excel")

	send("^v")
	sleep(50)
	send("{RIGHT}")
	sleep(50)
	send($AktX)
	sleep(50)
	send("{RIGHT}")
	sleep(50)
	send($AktY)
	;sleep(50)
	;send("{RIGHT}")
	;sleep(50)
	;send(StringReplace((Round($dist, 2)), ".", ","))
	;send(Round($dist, 2))
	sleep(50)
	send("{DOWN}")
	sleep(50)
	send("{HOME}")
	sleep(50)
BotofWar is offline  
Old 09/09/2010, 12:35   #9
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
und warum wuselst du dich da mit tastendrücken durch wenn du die zeilen auch direkt beschreiben kannst ohne eine taste zu senden?

Edit:
wenn du unbedingt ineffizient arbeiten willst, kannst du dir auch eine funktion schreiben die für dich die aktive zelle bestimmt:
Code:
Func GetActiveCell($oExcel)
	Return $oExcel.ActiveCell.Address
EndFunc
lolkop is offline  
Thanks
1 User
Old 09/09/2010, 13:27   #10
 
elite*gold: 0
Join Date: Feb 2010
Posts: 92
Received Thanks: 11
Ok, ich glaub jetzt hab ichs geschnallt...

Wenn du mir jetzt noch bei dem Rest auf die Sprünge helfen könntest wärst du mein absoluter Held ;-)

Code:
	$Zeile=1
	$Spalte=1
	
	WinActivate("Microsoft Excel") ;geht das auch ohne?
	WinWaitActive("Microsoft Excel")

	send("^v")	; gibts ne Möglichkeit das anders zu lösen?
	_ExcelWriteCell($oExcel, $AktX, $Zeile , $Spalte) 
	$Spalte=$Spalte+1
	_ExcelWriteCell($oExcel, $AktY, $Zeile , $Spalte)
	$Spalte=$Spalte+1
	_ExcelWriteCell($oExcel, (Round($dist, 2)), $Zeile , $Spalte)
	$Spalte=1
	$Zeile=$Zeile+1


Edit: Habs selbst hinbekommen:

;WinActivate("Microsoft Excel") ;geht das auch ohne? Ja geht
;WinWaitActive("Microsoft Excel")

$cache = ClipGet ()
$oExcel.Cells($Zeile , $Spalte).Value=$cache
$Spalte=$Spalte+1
$oExcel.Cells($Zeile , $Spalte).Value=$AktX
$Spalte=$Spalte+1
$oExcel.Cells($Zeile , $Spalte).Value=$AktY
$Spalte=$Spalte+1
$oExcel.Cells($Zeile , $Spalte).Value=Round($dist, 2)
$Spalte=1
$Zeile=$Zeile+1


Hast mir aber sehr geholfen. Herzlichen THX
BotofWar is offline  
Old 09/09/2010, 15:19   #11
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
mit clipget kannst du die daten aus der zwischenablage direkt abrufen und dann wieder per _ExcelWriteCell schreiben.

dann kannst du auch die ersten beiden WinActivate und WinWaitActive weglassen und das ganze im hintergrund oder sogar ganz versteckt ablaufen lassen.

und als kleiner tipp statt $Spalte=$Spalte+1 kann man auch $Spalte+=1 schreiben.
bzw wenn du sowieso immer die spalten 1-3 nutzt kannst du die auch direkt eintagen und ersparst deinem rechner damit das gerechne :P
lolkop is offline  
Old 09/09/2010, 17:25   #12
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
wieso machst du es nicht mit den excel internen makros?..
| Moep | is offline  
Reply


Similar Threads Similar Threads
Komma im namen ???
05/09/2010 - WarRock - 2 Replies
Hey ich hab auf niderlande server gespielt und dan hab ich das gesehen : Imageshack - screenshot084t.jpg (der erste aus meinem team) Weiß einer wie man das machen kann ??
AI & MS Excel
03/02/2010 - AutoIt - 0 Replies
Nabend zusammen, hat sich evtl schonmal wer mit "_ExcelReadCell" beschäftigt? hab das jetzt grade zum ersten mal in Benutzung und stehe grade vor dem Prob dass Excel startet sobald der befehl ausgeführt wird. Eigentlich geht es ja z.b. bei "fileread" dass die Datei nicht geöffnet werden muss damit die Daten gelesen werden können. Geht das iwi auch mit Excelfiles ohne diese zu öffnen? THX schonmal
need help with vac editing using excel
10/26/2009 - Dekaron - 0 Replies
1. Open: 2Moons\data\share\ai\info.csv 2. On box B2 (DwExploreRange...........for 101=SpiderLarva) change the 4 to 1000 3. On box C2 (DwSight........................for 101=SpiderLarva) change the 13 to 1000 4. On box D2 (DwPersuitRange...........for 101=SpiderLarva) change the 13 to 1000 5. On box F2 (DwExploreStandDelay...for 101=SpiderLarva) change the 2000 to 0 6. On box I2 (DwMoveDelay................for 101=SpiderLarva) change the 1000 to 1 7. On box Q2...
CSV with excel question
10/23/2009 - Dekaron - 1 Replies
im trying to do the no agro for crespo a,b,c read the tut that has been posted in hacks section, Can someone list the monsters for B,C. The tut says to use the search for the id of the monsters, but i dont know how using excel. Any help would be great. Or the list of monsters ;)
Excel und ein problem
06/28/2009 - General Coding - 11 Replies
Hey Leute! Mein Vater hat mich gestern vor eine Problemstellung gestellt, die ich lösen soll, doch ich weiß nicht wie ich es anfangen soll. Also, hier einmal eine Schilderung des Problems. Gegeben habe ich eine Excelliste mit, beispielsweise, Städten und deren Einwohnerzahl. Soweit ist alles in Ordnung ^^. So. Hier beginnt das Problem. Ich soll nun eine (evtl zoombare) Karte mit diesen Daten verknüpfen, sodass auf der Karte, wenn man mit der Maus über den Namen der Stadt fährt, ein...



All times are GMT +1. The time now is 15:02.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.