Kysymys kuuluu näin: Onko mahdollista excelissä tehdä macro joka avaa komentorivin ja suorittaa tietyn komennon komentorivissä ja sen pitäisi ottaa tietystä laatikosta tietty tieto siihen komentoon.
Komentorivin komennon pitäisi mennä näin
C:\Program files (x86)\Microsoft SMS Sender>SMSSender.exe /p:"tähän tieto excel taulukosta" /m:"tähän tieto excel taulukosta"
Moi roskakuski!
testaa oheisen mallin mukaista viritelmää
Private Sub CommandButton1_Click() Dim cmdline As String cmdline = "C:\Program files (x86)\Microsoft SMS Sender\SMSSender.exe" cmdline = cmdline & " /p:" & Taul1.Range("A1").Value 'esim. cmdline = cmdline & " /m:" & Taul1.Range("B1").Value 'esim. Shell cmdline, vbHide '(ei näytä ikkunaa) End Sub
Moi Nea.
VBA heittää Runtime error '424':sta, ja maalaa
cmdline = cmdline & " /p:" & Lomake.Range("D8").Value
-kohdan keltaiseksi. Teinkö jotain väärin?
Private Sub CommandButton1_Click() Dim cmdline As String cmdline = "C:\Program files (x86)\Microsoft SMS Sender\SMSSender.exe" cmdline = cmdline & " /p:" & Lomake.Range("D8").Value cmdline = cmdline & " /m:" & Tekstiviesti.Range("B10").Value shell cmdline, vbHide End Sub
Tuossa vielä koko koodi jota yritin
Moi taas roskakuski!
Virheilmo: Runtime error '424' (Object required) johtuu siitä, ettei VBA löydä objektia, johon viitataan.
Edellisessä esimerkissäni oleva viittaus: Taul1.Range("A1").Value tomii, jos työkirjan laskentataulukkojen nimet on jätetty oletusarvoihinsa (Taul1, Taul2 & Taul3).
Omassa viritelmässäsi olet ilmeisesti nimennyt parit laskentatulukot klikkaamalla ensin taulukon vasemmassa alakulmassa näkyvää otsikkonimeä hiiren oikealla ja sitten nimennyt em. talukot uudelleen nimillä Lomake & Tekstiviesti. Tämä ei vielä muuta taulukon VBA-projektille näkyvää nimeä, jonka vuoksi viritelmäsi viittaus ei toimi.
Taulun VBA-projektille näkyvä nimi (Name) ominaisuusarvo voidaan muuttaa VB-editorista käsin.
Jos asia oli, kuten epäilin niin voit tehdä viittaukset viritelmääsi seuraavan kaavan mukaan.
Private Sub CommandButton1_Click() Dim cmdline As String: cmdline = _ "C:\Program files (x86)\Microsoft SMS Sender\SMSSender.exe" _ & " /p:" & Sheets("Lomake").Range("D8").Value _ & " /m:" & Sheets("Tekstiviesti").Range("B10").Value Shell cmdline, vbHide End Sub
Kiitoksia erittäin paljon, sain homman toimimaan
Dim cmdline As String: cmdline = _ "SMSSender.exe" _ & " /p:" & Sheets("Lomake").Range("D11").Value _ & " /m:" & Sheets("Tekstiviesti").Range("B10").Value ChDir "C:\Program files (x86)\Microsoft SMS Sender\" Shell "cmd /k" & cmdline
tuollaisella koodilla
Aihe on jo aika vanha, joten et voi enää vastata siihen.