Vba ile exe. uzantılı dosya çalıştırıp veri almak

Katılım
30 Aralık 2013
Mesajlar
22
Excel Vers. ve Dili
2013 pro
Merhaba, forumu aradım ve benzer çok konu olmasına rağmen kendime uyarlayamadım. Shell komutu ile ilgili denemediğim şey kalmadı. Vba 7.1 sürümü kullanıyorum.

Excelde makro çalıştığında masaüstündeki bir exe kısayolunu çalıştırıp (veya kaynağında çalıştırıp) bu çalıştırdığı programın içinde butonlara basarak masaüstüne metin dosyası export edecek. Yani excel vba ile hem program açmak hemde programda otomatik düzenleme yapmasını istiyorum. Shell komutunu hiçbir şekilde çalıştıramadım. Formülün taslağını paylaşırsanız uyarlama yapabilirim kendime göre.

Yardımlarınız için teşekkürler.
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,574
Excel Vers. ve Dili
2007 [TR], 2013 [TR]
shell komutu ile sadece programı çalıştırabilirsiniz. mouse ile programda istenilen yerlere tıklama işlemi daha farklı yaklaşımlar gerektirir VBA ile SendKey metodu denenebilir. Programda tıklanması gereken düğmelerin kısayol kombinasyonları var ise !!
forumda varmı bilmiyorum araştırın isterseniz.
google da "excel vba sendkeys to another application" olarak arattırın.
 
Katılım
30 Aralık 2013
Mesajlar
22
Excel Vers. ve Dili
2013 pro
sorun şu ki önce programı çalıştırabilsem diğer kısımlara yoğunlaşacağım. Oldukça kompleks kodlar yazdım sizlerin de sayesinde ama shell i çalıştıramadım. Vba 7.1 den mi acaba ? shell hiçbir emir dinlemiyor binbir çeşit hata aldım forumlardaki anlatılanları harfiyen yapmama rağmen.
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,574
Excel Vers. ve Dili
2007 [TR], 2013 [TR]
aşağıdaki kodlar gayet düzgün çalıştı bende, notepadi açıyor ve içine kullanıcı adını yazıp, enter tuşuna basıyor. shell komutunu kullanamamanızın sebebi sınırlı kullanıcı olmanız veya erişim yetkininiz olmamasından kaynaklı olabilir mi?
Kod:
Dim myPath As String, txtPath As String
Dim rc As Long
Dim wb As Workbook
  
Set wb = ActiveWorkbook
myPath = ThisWorkbook.Path & "\"
txtPath = myPath & "Test.txt"
    
rc = Shell("NOTEPAD.EXE " & txtPath, vbNormalFocus)
AppActivate rc
Application.Wait Now + TimeValue("00:00:01")
SendKeys Application.UserName, True
SendKeys "{Enter}", True
 
Katılım
30 Aralık 2013
Mesajlar
22
Excel Vers. ve Dili
2013 pro
üstad ben de basit bir shell komutu yazdım, bu seninki de aynı hatayı verdi. Dosya yolu olmadan sonradan yüklenmiş bir uygulamayı bulamıyor. Dosya yolu koyunca da "invalid procedure call or argument" hatası veriyor. Çözemedim.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Alternatif olarak aşağıdaki kodu denermisiniz.
exe uzantılı dosya işlem yaptığınız dosyanın yanında olmalı ve kırmızı renkli bölüme kendi exe uzantılı dosya adını yazınız.

Kod:
CreateObject("Shell.Application").Open (ThisWorkbook.Path & "\[COLOR="Red"]şifre parametresi.exe[/COLOR]")
Not bu uygulama zadece exe uzantılı dosyayı açmak içindir.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
windows gezgininde exe'nin üzerine çift tıklayarak açıp çalıştırıyorsanız shell ile de çalışması lazım.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
epeydir ihtiyaç duymuyordum. kısa bir arama yaptım.

Kod:
retvalue =  Shell("c:\dirname\program.exe" "Parameter1" "Parameter2, vbNormalfocus
şeklinde uygulamalar da var.

bir de Declare Function OpenProcess şeklinde bir arama yapın. Windows API ile kullanımı.
 
Katılım
22 Mart 2009
Mesajlar
118
Excel Vers. ve Dili
excel 2007
Altın Üyelik Bitiş Tarihi
28-07-2023
benim excelde şöyle bir shell komutu vardı command butona tanımlanmış.
Private Sub CommandButton12_Click()
word = Shell("D:\dosyalar\macro.exe", vbNormalFocus)
End Sub

yanlız 2. dediğin mouse ile tıklama olayı için 2. bir program daha çalıştırıp kullanman gerekir diye düşünüyorum. autoit programıyla mouse ve klavye hareketlerini tanımlayabilir bunları exe olarak hazırlayıp onu çalıştırabilirsin. bende onu kullanıyorum. kullanımı hakkında çok bilgi var nette. çok işimi kolaylaştırıyor.
 
Katılım
3 Nisan 2014
Mesajlar
395
Excel Vers. ve Dili
Excel 2019 - Türkçe
Altın Üyelik Bitiş Tarihi
14-04-2021
Merhaba,

Aşağıdaki kodlarla exe'yi açabiliyorum, sorun yok.

Açılan programda bazı butonlara tıklamam ve bazı alanlara veri girişi yapıp kayıt yapmam gerek.

Mümkün müdür böyle bir şey?

Kod:
Sub deneme()
 
On Error Resume Next
AppVal = Shell("C:\PROGRAM.EXE", 1)
If Err <> 0 Then
MsgBox "Başlatılamadı.", vbCritical, "Error"
End If
 
End Sub
 
Üst