Llamadas de teléfono desde excel

Me gustaría que al hacer click el la celda f7, ¿excel pueda copiar automáticamente 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 teléfono.
(xxxxxx)

1 Respuesta

Respuesta
1
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
Hola experto,
Gracias por tu ayuda, no sou muy avançado en excel, me podrías dizir donde esta la sección de código, seguramente esta a delante de mis narizes e no la vea.
Pensé que podría ser donde se introduze las fórmulas pero no es.
¿Dónde podera ser?
Gracias
(xxxxxx)
Carlos Gomes
Hola experto,
Ey descubierto donde esta la sección de código de la hoja pero me olvide de dizir que la celda f7 abarca 3 celdas (fgh 7) están formateadas juntas.
Probé con una celda sola e funciona pero con las tre celdas juntas no me funciona, ¿cómo puedo cambier el código para redirigirla a las 3 celdas juntas que tengo?
Muchas gracias
(xxxxxx)
Carlos Gomes
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á
Hola experto,
Probé 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 cuando le doy doble click a la celda que contiene el numero de teléfono.
Bueno pensé en una manera a ver se lo hace más fácil.
Cree un objeto a lado de la celda que es un pequeño teléfono, ¿podera ser más fácil entonces se creeamos un modulo (macro) que al darle click nos trayga el programa e nos copie la información de la celda g7 y h7 que están combinadas juntas al clipboard?
Dime tu que piensas.
Un saludo
(xxxxxx)
Carlos Gomes
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
Hola experto,
Fenomenal ahora funciona, pero no copia el valor de la celda automáticamente al clipboard (numero de teléfono). Solamente me abre el programa.
Gracias por la ayuda.
(xxxxxx)
Carlos Gomes
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
Félix Año Nuevo.
Finaliza la pregunta.
Hola experto,
Muchas gracias por la ayuda, servio fenomenal la rutina avançada que me diste.
Era mesmo eso que quería.
Feliz año nueva para ti e los tuyos.
Carlos Gomes

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas