Imposer la feuille dans laquelle il faut chercher les donnees

JPS

XLDnaute Nouveau
Je monte actuellement une petite application de rédaction d'un mail automatique avec outlook.
Je dois donc récupérer plusieurs adresses mails destinataire sur la feuille "GENERAL".

Le programme fonctionne tant que que la feuille en question est la feuille active.
Si la feuille active (par exemple la feuille "test") est active, les adresses ne sont plus recherchées alors que j'ai imposé l'utilisation de la feuille "GENERAL".

Je ne peux pas joindre de fichier car il dépasse 293 ko mais voici le code utilisé.


Sub ENVOI_SYN()
' Création de l'e-mail d'envoi

Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Dim tableauDestinataires() As String
Dim nbDestinataires As Integer
nbDestinataires = 0
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")


' Recherche des destinataires

With Sheets("GENERAL")
On Error Resume Next
For Each cell In Columns("D").Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like "?*@?*.?*" And _
LCase(Cells(cell.Row, "I").Value) = "@" Then
ReDim Preserve tableauDestinataires(nbDestinataires)
tableauDestinataires(nbDestinataires) = cell.Value
nbDestinataires = nbDestinataires + 1
End If
Next cell
End With

' Création de l'e_mail

Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = tableauDestinataires
.Subject = Sheets("GENERAL").Range("B8") & " - " & Sheets("GENERAL").Range("B9") & " - " & Sheets("GENERAL").Range("B10") & " - TEKTO ING - TRANSMISSION DE DOCUMENTS D'EXECUTION - POUR SYNTHESE"
.Body = "Bonjour," & vbCrLf & vbCrLf & "Veuillez trouver ci-joint :"
.Display

End With
On Error GoTo 0
Set OutMail = Nothing
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True


End Sub

Merci pour les tuyaux .
 

Tentative

XLDnaute Occasionnel
Re : Imposer la feuille dans laquelle il faut chercher les donnees

Bonjour,

En passant, tu aurais dû poster dans "Forum Excel" et non dans "Utilisation du Forum" ....
Ceci dit :

Il me semble que lorsqu'on utilise With Sheets(xxx) les objets doivent être précédés du point, justement pour imposer le with

Exemple :
With Sheets("GENERAL")
On Error Resume Next
For Each cell In .Columns("D").Cells.SpecialCells(xlCellTypeConstants)
If .cell.Value Like "?*@?*.?*" And _
LCase(Cells(.cell.Row, "I").Value) = "@" Then
ReDim Preserve tableauDestinataires(nbDestinataires)
tableauDestinataires(nbDestinataires) = .cell.Value


Tentative
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Imposer la feuille dans laquelle il faut chercher les donnees

bonjour
pas de point devant cell qui est une variable déclarée objet range,un point devant cells
Code:
With Sheets("GENERAL")
On Error Resume Next
For Each cell In .Columns("D").Cells.SpecialCells(xlCellTypeConstant s)
If cell.Value Like "?*@?*.?*" And _
LCase(.Cells(cell.Row, "I").Value) = "@" Then
ReDim Preserve tableauDestinataires(nbDestinataires)
tableauDestinataires(nbDestinataires) = cell.Value
 

Statistiques des forums

Discussions
312 276
Messages
2 086 711
Membres
103 377
dernier inscrit
fredy45