Macro para evitar repetir 700 veces las mismas intruscciones

22/05/2011 - 20:54 por kino2 | Informe spam
Buenas dias
Trato de montar un bucle o algo parecido, porque tener que repetir casi 700 veces un grupo de instrucciones (con ligeras variables) me parece de ignorantes...

En una macro de excell tengo un código que lo que hace es enviar por mail (a través de lotus) un fichero determinado (alojado en una ubicación concreta) a una dirección determinada (registrada en una celda concreta de una hoja excell concreta) : se trata de enviar 700 ficheros distintos (nombrados de forma distinta) a 700 direcciones de mail diferentes.

Tal y como lo tengo ahora mismo desarrollado, "cojo" un determinado fichero excell y le mando a una determinada dirección (dicha dirección la tengo registrada en una determinada celda de una hoja excell)
El numero de envíos ha pasado de 24 a casi 700 de ahí mi problema

Ejemplo: En el código que trascribo a continuación envió a la dirección que figura en la celda A1 un mail donde adjunto el fichero llamado "4019" que esta alojado en "C"

Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
Recipient = Sheets("hoja_excell_de_mails").Range("A1").Value
MailDoc.SendTo = Recip

MailDoc.Subject = "Envio de su fichero excell"
MailDoc.Body = "Buenos dias les adjuntamos su fichero excell del presente mes."
MailDoc.SaveMessageOnSend = True

Attachment1 = "C:\4019.xls"

If Attachment1 <> "" Then
On Error Resume Next
Set AttachME = MailDoc.CREATERICHTEXTITEM("attachment1")
Set EmbedObj1 = AttachME.embedobject(1454, "attachment1", "C:\4019.xls", "")
On Error Resume Next
End If

MailDoc.PostedDate = Now()
On Error GoTo errorhandler1
MailDoc.SEND 0, Recipient

Con la nueva ampliación, este grupo de instrucciones que hasta ahora lo "repetía" (con las modificaciones lógicas de la definición de la celda y el nombre del fichero) 24 veces ahora tengo que repetirlos casi 700.

Las "variables" serian:
Para las direcciones: A1, A2, A3...(en la celda A1 tengo metida una dirección de mail, en la celda A2 tengo metida otra dirección de mail...)
Para los ficheros adjuntos: no serian consecutivos...4019, 4022, 4023, 4024


Rogaría cualquier ayuda o sugerencia que me pudieran prestar.

Un saludo y muchas gracias
 

Leer las respuestas

#1 smartito
27/05/2011 - 11:14 | Informe spam
On 22 mayo, 20:54, kino2 wrote:
Buenas dias
 Trato de montar un bucle o algo parecido, porque tener que repetir casi 700
 veces un grupo de instrucciones (con ligeras variables) me parece de
 ignorantes...

 En una macro de excell tengo un código que lo que hace es enviar por mail
 (a través de lotus) un fichero determinado (alojado en una
 ubicación concreta)  a una dirección determinada (registrada en
 una celda concreta de una hoja excell concreta) : se trata de enviar 700
 ficheros distintos (nombrados de forma distinta) a 700 direcciones de mail
 diferentes.

 Tal y como lo tengo ahora mismo desarrollado, "cojo" un determinado
 fichero excell y le mando a una determinada dirección (dicha
 dirección la tengo registrada en una determinada celda de una hoja
 excell)
 El numero de envíos ha pasado de 24 a casi 700 de ahí mi problema

 Ejemplo: En el código que trascribo a continuación envió a
 la dirección que figura en la celda A1 un mail donde adjunto el fichero
 llamado "4019" que esta alojado en "C"

 Set MailDoc = Maildb.CREATEDOCUMENT
 MailDoc.Form = "Memo"
 Recipient = Sheets("hoja_excell_de_mails").Range("A1").Value
 MailDoc.SendTo = Recip

 MailDoc.Subject = "Envio de su fichero excell"
 MailDoc.Body =  "Buenos dias les adjuntamos su fichero excell del presente
 mes."
 MailDoc.SaveMessageOnSend = True

 Attachment1 = "C:4019.xls"

 If Attachment1 <> "" Then
 On Error Resume Next
 Set AttachME = MailDoc.CREATERICHTEXTITEM("attachment1")
 Set EmbedObj1 = AttachME.embedobject(1454, "attachment1",
 "C:4019.xls", "")
 On Error Resume Next
 End If

 MailDoc.PostedDate = Now()
 On Error GoTo errorhandler1
 MailDoc.SEND 0, Recipient

 Con la nueva ampliación, este grupo de instrucciones que hasta ahora lo
 "repetía" (con las modificaciones lógicas de la
 definición de la celda y el nombre del fichero) 24 veces ahora tengo que
 repetirlos casi 700.

 Las "variables" serian:
 Para las direcciones: A1, A2, A3...(en la celda A1 tengo metida una
 dirección de mail, en la celda A2 tengo metida otra dirección de
 mail...)
 Para los ficheros adjuntos: no serian consecutivos...4019, 4022, 4023, 4024

 Rogaría cualquier ayuda o sugerencia que me pudieran prestar.

 Un saludo y muchas gracias



Hola!

Tienes que meter el código que funciona en un bucle for y que lo
repita 700 veces o ponerle una bandera a la celda 701 y que sea esta
la que acabe con el bucle.

Si necesitas alguna información más no dudes en preguntar.

Saludos

Preguntas similares