Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: VB ja Excel Makro

roskakuski [07.03.2012 12:31:42]

#

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"

neau33 [07.03.2012 14:03:43]

#

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

roskakuski [07.03.2012 14:33:50]

#

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

neau33 [08.03.2012 15:03:21]

#

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

roskakuski [09.03.2012 09:52:59]

#

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

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta