Todo se publica por Israel Cassales
-
Saludos, trate de ayudarle en su tema y vine a consultar su presentación para saber su grado de experiencia que ayude a saber la forma, conceptos o términos para dirigirse a usted adecuadamente. Saludos cordiales.|
-
Por lo que describe es posible que la función FILTRAR() sea la adecuada para obtener el resultado deseado. En caso contrario, para una ayuda mejor estructurada le recomiendo que en su presentación nos diga un poco de su experiencia y nos ayude a saber en que conceptos o términos se puede uno dirigir a usted. También puede recibir una ayuda más específica si comparte un libro de ejemplo (de ejemplo, no el original) donde escriba manualmente el resultado que busca obtener. Lamento no poder participar más en su consulta, pero no me es posible aportar algo adicional con los datos descritos, aunque es posible algún miembro avanzado del foro o Maestro pueda aportar algo más.
-
Es lo recomendable si quieres mantener el formato de texto del destino, ¿ya hiciste la prueba, te sirvió?
-
¿Copias y pegas heredando todo como viene el portapapeles o pegas usando la opción de pegar como valores?
-
Si el registro de los datos es manual como indica, entonces antes de escribir el numero 2212-05-7 le recomiendo poner el apostrofe (coma alta (')) con eso debería ser suficiente. '2212-05-7
-
Me da gusto, concluyo mi participación en la consulta.
-
No hay problema, concluyo mi participación en el tema. Saludos.
-
¿Cómo? Si en este momento lo acabo de seguir, está público para cualquiera.
-
Pues no sé que decirte, a mí me funciona como debe ser. ENLACE
-
Con lo que me comparte me sigue pareciendo que es el separador de argumentos donde esta el problema.
-
Envío de mensajes whatsapp desde excel
tema contestó a Israel Cassales en Pakus Macros y programación VBA
Me parece muy interesante el trabajo que estás haciendo, de verdad. Recomendaciones de VBA pues están algunos enlaces en la web, solo activa tu traductor de ser necesario LEARN VBA EXCEL VBA PROGRAMMING INTRODUCCION A VBA -
Envío de mensajes whatsapp desde excel
tema contestó a Israel Cassales en Pakus Macros y programación VBA
Bueno la función es la clave en esta idea, por eso la pregunta de dónde la consultaba. Yo no tengo experiencia para pasar la credenciales de Google para verificar la agenda por esa razón te recomendaría una hoja de Excel que se llame por ejemplo Agenda de Google y que el rango esta en A:C, en A el número, en B el nombre y en C no sé, el puesto. Debería quedar algo así: Function ContactoEnAgenda(Tel As String) As Boolean Dim Agenda As Range Dim Celda As Range ' Define el rango de la hoja "Agenda de Google" (ajusta el nombre de la hoja según corresponda) Set Agenda = Worksheets("Agenda de Google").Range("A:C") ' Busca el número de teléfono en la columna A For Each Celda In Agenda.Columns(1).Cells If Celda.Value = Tel Then ContactoEnAgenda = True Exit Function ' Sale de la función si encuentra el número End If Next Celda ' Si no se encuentra el número, devuelve False ContactoEnAgenda = False End Function Una vez creado lo anterior el código completo debería funcionar así: Sub EnvíoMensajesW2() Dim Teléfono As String Dim Imagen As String Dim Texto As String Dim WhatsAppApp As Object ' Variable para la aplicación de WhatsApp ' Abre WhatsApp si no está abierto On Error Resume Next Set WhatsAppApp = GetObject(, "WhatsApp.Application") On Error GoTo 0 If WhatsAppApp Is Nothing Then Shell "C:\Program Files\WhatsApp\WhatsApp.exe", vbNormalFocus Application.Wait (Now + TimeValue("00:00:05")) ' Espera unos segundos para que WhatsApp se abra completamente End If For Each Celda In Envío.Range("Clientes[TELÉFONO]") Teléfono = Celda.Value Texto = Celda.Offset(0, 6).Value Imagen = Celda.Offset(0, 7).Value ' Verifica si el número está en la agenda de Google antes de enviar If ContactoEnAgenda(Teléfono) Then With Envío .Pictures.Insert(Imagen).Name = "ImagenW" .Shapes("ImagenW").Copy AppActivate "WhatsApp" Application.Wait (Now + TimeValue("00:00:03")) SendKeys "^f", True Application.Wait (Now + TimeValue("00:00:03")) SendKeys Teléfono, True Application.Wait (Now + TimeValue("00:00:03")) SendKeys "{Tab}", True Application.Wait (Now + TimeValue("00:00:03")) SendKeys "~", True Application.Wait (Now + TimeValue("00:00:03")) SendKeys Texto, True Application.Wait (Now + TimeValue("00:00:03")) SendKeys "~", True Application.Wait (Now + TimeValue("00:00:03")) SendKeys "^v", True Application.Wait (Now + TimeValue("00:00:03")) SendKeys "~", True .Shapes("ImagenW").Delete End With Else ' El número no está en la agenda de Google, pasa al siguiente End If Next Celda End Sub Function ContactoEnAgenda(Tel As String) As Boolean Dim Agenda As Range Dim Celda As Range ' Define el rango de la hoja "Agenda de Google" (ajusta el nombre de la hoja según corresponda) Set Agenda = Worksheets("Agenda de Google").Range("A:C") ' Busca el número de teléfono en la columna A For Each Celda In Agenda.Columns(1).Cells If Celda.Value = Tel Then ContactoEnAgenda = True Exit Function ' Sale de la función si encuentra el número End If Next Celda ' Si no se encuentra el número, devuelve False ContactoEnAgenda = False End Function Es lo que podría aportar. Haz pruebas a ver qué tal, también está la posibilidad de que algún usuario avanzado o Maestro aporte algo adicional. -
Envío de mensajes whatsapp desde excel
tema contestó a Israel Cassales en Pakus Macros y programación VBA
Hi, Una idea sería agregar una verificación al código con una función que valida si el número existe o no en la agenda, por otro ¿la agenda es una tabla de Excelo es la agenda del Windows? Podrías usar CountIf. Function ContactoEnAgenda(Tel As String) As Boolean ' Ejemplo: ' ContactoEnAgenda = (Application.WorksheetFunction.CountIf(Range("Agenda[TELÉFONO]"), Tel) > 0) End Function La función devuelve True si el número está en la agenda y False si no lo está. Y en tu código dentro del bucle For Each la mandas llamar. ' Verifica si el número está en la agenda antes de enviar If ContactoEnAgenda(Teléfono) Then With Envío .Pictures.Insert(Imagen).Name = "ImagenW" .Shapes("ImagenW").Copy Es lo que podría sugerir -
En ese caso debes definir y guardar la conexión en tu código, algo así: Sub ejecutarConsulta() Dim servidor As String Dim basedatos As String Dim usuario As String Dim contrasena As String servidor = "TUSERVER" basedatos = "TU BASE" usuario = "usuario" contrasena = "********" ' Definir la consulta Dim consulta As String consulta = "CONSULTA DE EJEMPLO"
-
Parece que es el separador de argumentos, tú usas punto y coma (;) mientras que yo solo la coma (,)
-
Lo lamento nuevamente porque no me gusta cuestionar la interpretación de los archivos que no son de mi propiedad; pero, desde (mi) lectura esas NO ANSWER no son falsas, es la misma llamada (sí) timbrando en destinos diferentes de los cuales ninguno contesto, tal como lo describe usted en su libro. Por curiosidad ¿Por qué importan las que no se contesten? ¿Es por algún tema de atención o servicio? Si es así, el reporte que comparte muestra que nadie lo atendió. Aunque como le comentaba no me corresponde cambiar la interpretación. Con la información adicional que comparte y si lo he entendido bien, un punto de partida para lograr lo que busca sería volver únicos los números de las llamadas. FUNCION UNICOS Después vaya discriminando por contestadas y no contestadas versus el número de veces que timbró, ya con ese dato, si usa la hora para restar las que sean las mismas podría contarlas y me parece que le deberían llevar al resultado que busca. Haga pruebas y regrese a comentar. Algo así para empezar...
-
Hi, Por lo que entiendo el valor buscado es compuesto y cambia regularmente concatenando textos de otras celdas. Aunque por otro lado, si el valor existe como tal en la hoja TAMAÑO MOLECULA me parece que (sí) podrías recortar el valor o volverlo único. La idea para que sirva dependerá de que el valor a buscar exista en la hoja donde se encuentran los datos, entendí que no estás usando IZQUIERDA o DERECHA porque entonces ya no lo encontrarías, ¿pero qué pasa si recortas el origen y el destino? Opciones para hacerlo hay varias, quitar los espacios, concatenar la primera letra, agregar un número, etc... Sin embargo, si no se desea modificar el origen y el destino, entonces la recomendación propia de Microsoft debería serte útil, usa INDICE con COINCIDIR, de acuerdo con la ayuda de la web, estas no tienen esas limitaciones. Entonces debería ser algo así: =INDICE(rango de la tabla; COINCIDIR(valor_buscado; rango de la fila; 0); COINCIDIR(valor_buscado; rango de la columna; 0))
-
Lo lamento, trate de aportar algo pero me quedan cosas a la suposición y suponer no es lo más adecuado. O tal vez simplemente no entendí. ¿Como determina usted que (sí) se contesto la llamada, si el origen (su informe) le dice que no? Parece que en su configuración tiene un carrusel, donde (si) no se contesta en algún destino, pasa a otro y así hasta que alguien conteste o se pierda la llamada. En ese ejemplo se ve que paso por 5 antes de obtener una respuesta; entonces su software al no tener algún consumo en el tiempo se lo muestra como 0s. Parece que usted determina lo contrario si el número de origen, la hora y la fecha de algún bloque se obtuvo alguna respuesta, entonces ¿por qué todo el bloque cuenta como llamada realizada? Porque en ese caso uno podría creer que lo más sencillo es filtrar por ANSWERED y tendría el resultado ordenado por llamadas completas sin realizar nada más. Esas incógnitas me impiden ser de utilidad en su consulta, tal vez si hiciera un ejemplo de cómo quiere que quede el resultado y no solo mostrar el origen de la información, sino como lo necesita, entonces es posible que algún miembro avanzado del foro o Maestro le puedan aportar alguna ayuda más específica.
-
Me parece que lo que usted quiere es filtrar, así que participaré con esta idea. =FILTRAR(RECALL!$A$3:$H$7,RECALL!$G$3:$G$7='LISTADO DE RESULTADOS'!C2) Si le sirve, es cuestión de que la edite a su gusto en su libro.
-
COLOCAR UN LINK PARA IR A UN ARCHIVO PDF
tema contestó a Israel Cassales en OCTAVIO GONZALEZ Excel General
Bueno, como te vi conectado me espere un poco. En realidad es sencillo, por ejemplo si tu cuenta es de Google busca iniciar sesión en Drive, ahí en donde dice nuevo cargas el PDF, una vez arriba lo abres y de lado derecho verás un botón grande que dice compartir, puedes compartir con cuentas específicas o con cualquiera, tu decides. Luego ese enlace lo copias y lo usas donde quieras. Saludos. -
COLOCAR UN LINK PARA IR A UN ARCHIVO PDF
tema contestó a Israel Cassales en OCTAVIO GONZALEZ Excel General
h_tps://drive.google.com/file/d/1uikGYnk1rZGIAmcKSkHb1wrt4Xln235u/view Cambia h_tps:// Por https:// Y el ejemplo te quedaría así. Ya en tu enlace quedaría completo, aquí es así para no incumplir las normas. -
COLOCAR UN LINK PARA IR A UN ARCHIVO PDF
tema contestó a Israel Cassales en OCTAVIO GONZALEZ Excel General
Los pasos son similares, antes que nada necesita una cuenta de Gmail o de Microsoft o de Mega o de cualquiera que permita alojar archivos y compartir. ¿Cual tiene? o ¿Cual piensa crear? -
COLOCAR UN LINK PARA IR A UN ARCHIVO PDF
tema contestó a Israel Cassales en OCTAVIO GONZALEZ Excel General
Si es una RED local hay varios factores a revisar además de la ubicación, debes considerar permisos, firewall, que las PC origen y destino permitan verse y un largo etc. Para que cualquier equipo pueda acceder al archivo me parece conveniente para ti seria alojarlo en la WEB, ya sea Google o One Drive, le das los permisos correspondientes y así cualquiera podrá verlo. Saludos.