Inicio > Microsoft Excel > caranbis > llamadas de telefono desde excell

llamadas de telefono desde excell

Experto:
Usuario: Anónimo Fecha: 29/12/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
21/12/2008
Usuario
Hola experto,
Me gustaria que al hacer click el la celda f7, excell pueda copiar automaticamente el valor en ella al clipbord e me abra un determinado programa llamado voipbuster al mismo tiempo? Ay yo puedo pegar el numero en el programa y llamar?  Esta es la ruta del programa.
"E:\Archivos de programa\VoipBuster.com\VoipBuster\VoipBuster.exe"
El programa es un programa de llamadas por telefono.
carlosprettyboy@hotmail.com
Muchas gracias
 
Carlos Gomes
21/12/2008
carlosgomes, experto respondiendo en Microsoft Excel
Experto
Pega esto a la hoja correspondiente, NO EN UN MODULO, sino en la sección de código de la hoja donde están los teléfonos.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Double
If Target.Address = "$F$7" Then
x = Shell("E:\Archivos de programa\VoipBuster.com\VoipBuster\VoipBuster.exe", vbNormalFocus)
'SendKeys "^v"
End If
End Sub
21/12/2008
Usuario
Hola experto,
Gracias por tu ayuda, no sou muy avançado en excel, me poderias dizir donde esta la seccion de codigo, seguramente esta a delante de mis narizes e no la vea.
Pense que poderia ser donde se introduze las formulas pero no es.
Donde podera ser?
Gracias
carlosprettyboy@hotmail.com
Carlos Gomes
21/12/2008
Usuario
Hola esperto,
Ey descubierto donde esta la seccion de codigo de la hoja pero me olvide de dizir que la celda f7 abarca  3 celdas (fgh 7) estan formateadas juntas.
Probe con una celda sola e funciona pero con las tre celdas juntas no me funciona, como puedo cambier el codigo para redirigirla a las 3 celdas juntas que tengo?
Muchas gracias
carlosprettyboy@hotmail.com
Carlos Gomes
22/12/2008
carlosgomes, experto respondiendo en Microsoft Excel
Experto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Double
If Target.Address = "$F$7" OR Then
x = Shell("E:\Archivos de programa\VoipBuster.com\VoipBuster\VoipBuster.exe", vbNormalFocus)
'SendKeys "^v"
End If
End SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Double
If Target.Address = "$F$7" OR Target.Address = "$F$8" OR Target.Address = "$F$9" Then
x = Shell("E:\Archivos de programa\VoipBuster.com\VoipBuster\VoipBuster.exe", vbNormalFocus)
'SendKeys "^v"
End If
End Sub

SINO:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Double
If Target.Address = "$F$7" OR Target.Address = "$G$7" OR Target.Address = "$H$7" Then
x = Shell("E:\Archivos de programa\VoipBuster.com\VoipBuster\VoipBuster.exe", vbNormalFocus)
'SendKeys "^v"
End If
End Sub

Alguno de esos dos supongo que te funcionará
22/12/2008
Usuario
Ola experto,
Probe las 2 pero ninguna funciona.
Ey quitado la f7 e ahora solo me quieda g7 y h7 combinadas juntas.
Pero la rutina que me enviaste mismo quitando la f7 de la rutina continua sin funcionar quando le doy doble click a la celda que contiene el numero de telefono.
Bueno pense en una manera a ver se lo hace mas facil.
Cree  un objeto a lado de la celda que es un pequeño telefono, podera ser mas facil entonces se creeamos un modulo (macro) que al darle click nos trayga el programa e nos copie la informacion de la celda g7 y h7 que estan combinadas juntas al clipboard?
Dime tu que piensas.
Un saludo
 
carlosprettyboy@hotmail.com
 
Carlos Gomes
24/12/2008
carlosgomes, experto respondiendo en Microsoft Excel
Experto
Pienso que habría un clic de más.
Intenta de nuevo con este if.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Double
If activecell.row = 7 and (activecell.column = 6 or activecell.column = 7 or activecell.column = 8 ) Then
x = Shell("E:\Archivos de programa\VoipBuster.com\VoipBuster\VoipBuster.exe", vbNormalFocus)
'SendKeys "^v"
End If
End Sub
24/12/2008
Usuario
Hola experto,
Fenomenal ahora funciona, pero no copia el valor de la celda automaticamente  al clipboard (numero de telefono). Solamente me abre el programa.
Gracias por la ayuda.
carlosprettyboy@hotmail.com
 
Carlos Gomes
29/12/2008
carlosgomes, experto respondiendo en Microsoft Excel
Experto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Double
If activecell.row = 7 and (activecell.column = 6 or activecell.column = 7 or activecell.column = 8 ) Then
selection.copy
x = Shell("E:\Archivos de programa\VoipBuster.com\VoipBuster\VoipBuster.exe", vbNormalFocus)
'SendKeys "^v"
End If
End Sub

Ó: (Versión avanzada)
'"To use the DataObject in your code, you must set a reference to the Microsoft Forms 2.0 Object Library."
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim DataObj As New MSForms.DataObject
Dim x As Double
Dim stringtemp as string
If activecell.row = 7 and (activecell.column = 6 or activecell.column = 7 or activecell.column = 8 ) Then
stringtemp = activecell.value
DataObj.SetText stringtemp
DataObj.PutInClipboard
x = Shell("E:\Archivos de programa\VoipBuster.com\VoipBuster\VoipBuster.exe", vbNormalFocus)
'SendKeys "^v"
End If
End Sub
Tomado de:
http://www.cpearson.com/excel/Clipboard.aspx
Felix Año Nuevo.
Finaliza la pregunta.
29/12/2008
Usuario
Hola experto,
Muchas gracias por la ayuda, servio fenomenal la rutina avançada que me diste.
Era mesmo eso que queria.
Feliz año nueva para ti e los tuyos.
Carlos Gomes
Enlaces patrocinados