Jump to content

Autoıt Ile Excel Kombine Edilerbilir Mi?


radyofon
 Share

Recommended Posts

@radyofon

Veri giriş paneli derken tam olarak neyden bahsediyorsun?
Ofis uygulamalarıyla işim olmadığı için, fazla bilgim yok :(
Visual Basic, Autoit vs. hangisini daha iyi biliyorsan haliyle o iyidir.

Ama ilgili ofis hanginisini tam destekliyorsa haliyle o daha sorunsuz ve güvenilir olacaktır.

Link to comment
Share on other sites

Şöyle örnekleyebilriz:

Proje adı:...........
veri girişi 1:
veri girişi 2:
veri girişi: 3:
..................
Bu şekilde veri girişi yaptıran bir panel ve bu girişleri gidip excel dosyasında kimini 1.sayfada ilgili hücreye kimini 2. ve 3. excel sayfalarında ilgili hücreler yazdıracak. Yani veri girişi yapmak için excel dosyasındaki bütün sayfaları dolaşmayacağız. Ayrıca print işlemini yaptırmak için de bir buton olacak. Bu butonun yanında da 1.sayfayı bastır 2.sayfayı bastır 3.sayfayı bastır diye seçenekler olacak. Bu nedir diye soracak olursanız, hakediş programında kullanmak istiyorum. Her sayfaya tek tek giriş yapıp hesaplarımı yapmasını ve print etmek yerine tek bir panelden bütün sayfalara ulaşmak için.

Link to comment
Share on other sites

@radyofon

Az çok anladım diyebilirim...
Yani autoit ile bir gui ve inputlar oluşturacağız.
Ilgili verilen bilgileri excelde ilgili kısımlara vs. otomatik yazacak ve sen uğraşmayacaksın...

Dediğim gibi ofis konusunda bilgim kıt, ama yinede gelince biraz kucalım. :)
Birazdan çıkmam lazım...

Link to comment
Share on other sites

@radyofon

Başlangıç olarak aşağıdaki gibi bir şey mi istiyorsun abi?

[codebox]#include <Excel.au3>
Global $oExcel

Global $MAIN_GUI = GUICreate("Form1", 400, 400)
Global $IN_FILE = GUICtrlCreateInput(@ScriptDir & "\Test.xls", 10, 10, 350, 24)
Global $BTN_FILE = GUICtrlCreateButton("...", 370, 10, 24, 24)

Global $1_VALUE = GUICtrlCreateInput("metin", 10, 45, 200, 24)
Global $1_Column = GUICtrlCreateInput("5", 240, 45, 50, 24,0x2000)
GUICtrlCreateUpdown($1_Column)

Global $1_RANGE = GUICtrlCreateInput("2", 300, 45, 50, 24,0x2000)
GUICtrlCreateUpdown($1_RANGE)

Global $Tamam = GUICtrlCreateButton("Tamam", 5, 370, 390, 24)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Tamam
_ExcelWrite(StringStripWS(GUICtrlRead($IN_FILE),3),GUICtrlRead($1_VALUE),Number(GUICtrlRead($1_Column)),Number(GUICtrlRead($1_RANGE)))
EndSwitch
WEnd



Func _ExcelWrite($exelFile,$VALUE,$COLUMN,$RANGE)
Local $oExcel = _ExcelBookOpen($exelFile)
If @error = 1 Then
MsgBox(0, "Error!", "Unable to Create the Excel Object")
Exit
ElseIf @error = 2 Then
MsgBox(0, "Error!", "File does not exist - Shame on you!")
Exit
EndIf

_ExcelWriteCell($oExcel, $VALUE, $RANGE,$COLUMN)

_ExcelBookSave($oExcel) ; Now we save it into the temp directory; overwrite existing file if necessary
_ExcelBookClose($oExcel) ; And finally we close out
EndFunc[/codebox]

Link to comment
Share on other sites

  • 2 years yıl...

@radyofon

Başlangıç olarak aşağıdaki gibi bir şey mi istiyorsun abi?

#include <Excel.au3>
Global $oExcel

Global $MAIN_GUI = GUICreate("Form1", 400, 400)
Global $IN_FILE = GUICtrlCreateInput(@ScriptDir & "\Test.xls", 10, 10, 350, 24)
Global $BTN_FILE = GUICtrlCreateButton("...", 370, 10, 24, 24)

Global $1_VALUE = GUICtrlCreateInput("metin", 10, 45, 200, 24)
Global $1_Column = GUICtrlCreateInput("5", 240, 45, 50, 24,0x2000)
GUICtrlCreateUpdown($1_Column)

Global $1_RANGE = GUICtrlCreateInput("2", 300, 45, 50, 24,0x2000)
GUICtrlCreateUpdown($1_RANGE)

Global $Tamam = GUICtrlCreateButton("Tamam", 5, 370, 390, 24)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Tamam
_ExcelWrite(StringStripWS(GUICtrlRead($IN_FILE),3),GUICtrlRead($1_VALUE),Number(GUICtrlRead($1_Column)),Number(GUICtrlRead($1_RANGE)))
EndSwitch
WEnd



Func _ExcelWrite($exelFile,$VALUE,$COLUMN,$RANGE)
Local $oExcel = _ExcelBookOpen($exelFile)
If @error = 1 Then
MsgBox(0, "Error!", "Unable to Create the Excel Object")
Exit
ElseIf @error = 2 Then
MsgBox(0, "Error!", "File does not exist - Shame on you!")
Exit
EndIf

_ExcelWriteCell($oExcel, $VALUE, $RANGE,$COLUMN)

_ExcelBookSave($oExcel) ; Now we save it into the temp directory; overwrite existing file if necessary
_ExcelBookClose($oExcel) ; And finally we close out
EndFunc

konu çok eski biliyorum fakat örneklerde ve konularda gezinirken ihtiyacıma en uygun örnek olarak bunu bulabildim
benim de buna benzer bir ihtiyacım var fakat excell sayfasını açmadan direkt olarak kayıt yapamıyor muyuz? gerçi sizin örneğinizde dahi excelin açılıp kapandığını görünce olmayacağına kanaat getirdim ama :)

Link to comment
Share on other sites

zamanında şöyle bir şey yapmıştım autoitte excel kullanımı hakkında:

 

https://www.mediafire.com/?fb7p7zg8pihlf9n

 

örnek çıktısı da burada:

 

http://www.mediafire.com/view/rl91xtwqfsmd1so/06.01.2014.xls

 

yani autoitle excel gayet guzel yonetilebiliyor.

 

$oExcel = _ExcelBookNew(0) ; 0 parametresi ile gorunmeyen bi excel kitabı açabilirsin.

Link to comment
Share on other sites

zamanında şöyle bir şey yapmıştım autoitte excel kullanımı hakkında:

 

https://www.mediafire.com/?fb7p7zg8pihlf9n

 

örnek çıktısı da burada:

 

http://www.mediafire.com/view/rl91xtwqfsmd1so/06.01.2014.xls

 

yani autoitle excel gayet guzel yonetilebiliyor.

 

$oExcel = _ExcelBookNew(0) ; 0 parametresi ile gorunmeyen bi excel kitabı açabilirsin.

teşekkürler hocam hemen cevap verdiniz ben geç farkettim
yaptığınız programı çalıştırdım fakat kaydet deyince hata alıyorum ancak verdiğiniz örnek excel ile anladım. benim yapmak istediğim de aynı sizinki gibi autoit ile arayüzü oluşturup excelde istediğim hücrelere yerleştirecek. açıkçası becerebilecek miyim bilmiyorum ama $oExcel = _ExcelBookNew(0) ile görünmeyen yeni bir çalışma kitabı olacak sanırım yani açık bir pencereyi şeffaflaştırmak gibi. ancak yeni bir kitap değil de tek bir excel dosyasında kayıt tutmam gerekecek. açıkçası autoit bilgim çok az olduğundan vazgeçmeyi bile düşünüyorum. saat ve tarih bilgileriyle beraber değerler girip hesaplattırıp daha sonra bunları görüntüleyebileceğim bir arayüz yapayım dedim ama çok zor. sanırım office 2010 ile excel e devam edeceğim sayfalar arası köprüler ve formüllere devam :S

Link to comment
Share on other sites

excelbookopen ile varolan bir exceli açabilirsin, bir ini dosyasına da son kaldığın satırı kaydederek çalışmana kaldığın satırdan devam edebilirsin. ve dediğin işlemler görduğun gibi autoitte kolayca yapılabiliyor ;)

basit ve etkili çözümler ini dosyası :) boş ve sakin bir kafayla uğraşmadıkça olmayacak en iyisi bir süre daha böyle idare etmek :S az önce autoit örnekleri bile aynı cevabı verdi "what are you still doing up?" :D işe tekrar el atınca yardımlarınızı isteyeceğim çok teşekkürler :) haftanın 6 günü sabah8 akşam 8-9-10 çalışınca ne vakit ne de kafa kalıyor insanda

Edited by blue7wolf
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...