Es una tarea atípica, pero sucede: tienes que enviar a cien usuarios sus cien nuevas contraseñas, y ¿cómo, a mano o algo así? Si tienes una suite de office con Excel y Outlook en Windows (pues yo no tengo), puedes hacerlo desde una hoja de Excel, ¡tengo una solucion, casi, fácil e elegante!
Primero debe activar Macros en Excel y agregar la pestaña Developer a ribben – encuentre cómo por simismo, aquí tengo una imagen sobre Macros
Se me olvido, cuando tenia Windows, tomar una captura de pantalla de la pestaña Developer, hay un icono de Macros a la izquierda, haga clic en él y agregue una macro como aca
Code de macros:
Sub Create_Mail_From_List() ' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, and Outlook 2010. Dim OutApp As Object Dim OutMail As Object Dim cell As Range Dim strbody As String For Each cell In Worksheets("Text").Range("E10:E12") strbody = strbody & cell.Value & vbNewLine Next Application.ScreenUpdating = False Set OutApp = CreateObject("Outlook.Application") On Error GoTo cleanup For Each cell In Worksheets("Data").Columns("B").Cells.SpecialCells(xlCellTypeConstants) If cell.Value Like "?*@?*.?*" And _ LCase(Worksheets("Data").Cells(cell.Row, "D").Value) = "yes" Then Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = cell.Value .Subject = Worksheets("Text").Range("E6") & " " & Worksheets("Data").Cells(cell.Row, "C").Value & " " & Worksheets("Text").Range("G6") .Body = Worksheets("Text").Range("E7") & " " & Worksheets("Data").Cells(cell.Row, "C").Value & " " & Worksheets("Text").Range("G7") & vbNewLine & Worksheets("Text").Range("E8") & vbNewLine & Worksheets("Text").Range("E9") & " " & Worksheets("Data").Cells(cell.Row, "E").Value & " " & Worksheets("Text").Range("G9") & vbNewLine & strbody 'You can also add files like this: '.Attachments.Add ("C:\test.txt") .Send 'Or use Display. End With On Error GoTo 0 Set OutMail = Nothing End If Next cell cleanup: Set OutApp = Nothing Application.ScreenUpdating = True End Sub
Hacemos las pestañas, es importante cómo se llaman y en qué celdas estan
Primera pestaña Texto
Aquí en ciertos lugares se inserta el texto, que se insertará en la letra del mail.
Segunda pestaña Data
La pestaña más importante, en esta tabla de exel vlook recoge la información de otras pestañas, y resulta que Macros no sabe cómo cooperar con fórmulas en la tabla, ¡no puede tomar el resultado!
En la columna B , toma la ID de la columna A y busca el correo en la pestaña Contactos .
=VLOOKUP(A1; $Contacts.$A:$E;2;0)
IMPORTANTE: VLOOKUP solo puede buscar de izquierda a derecha. Toma lo que está a la izquierda y busca lo que está a la derecha
En la columna C , tomamos la ID de la columna A y buscamos el nombre en la pestaña Contactos .
=VLOOKUP(A1; $Contacts.$A:$E;3;0)
En la columna E , toma la ID de la columna A y busca la palabra en la pestaña Word_List .
=VLOOKUP(A1; $Word_List.$A:$B;2;0)
En la columna D si es yes , la macro envía un correo electrónico; de lo contrario, no se enviarán
Tercera pestaña Contacs
Detalles de contactos aquí
Cuarta pestaña Word_List
Aquí id y palabras
Cómo hacer que las macros de VBA funcionen con VLOOKUP en una tabla
Hasta ahora, no hay manera, ¡pero hay un truco vergonzoso que aún te permite cumplir tu plan!
En la pestaña Data , debe copiar toda la información e ingresarla inmediatamente como valores para que las fórmulas desaparezcan.
Después de eso, en la pestaña Developers , debe hacer clic en el segundo icono a la izquierda y ejecutar la macro. El resultado del trabajo se ve en una captura de pantalla al comienzo del artículo (sí, esta es una captura de pantalla real)
Deja una respuesta