XL 2010 méthode range de l'objet worksheet a échoué

arvin

XLDnaute Occasionnel
bonjour à tous , désolé par avance mais ce code fonctionnait très bien et depuis patatras.....
le principe : on a une feuille avec une liste de nom et mails, la macro va chercher si elle trouve un nom dans une feuille et lui envoyer un mail
pourriez vous débuger?
merciii
Public Sub WshAgents_RechercherInfosMails()

'----------------------------------------------------------------------------------------------------------------------------
' AGENTS : Recherche les informations (NomAgent, PrenomAgent, EmailAgent, HoraireAgent, PosteAgent) avant envoi des mails
'----------------------------------------------------------------------------------------------------------------------------

On Error GoTo Erreur

Dim MonOutlook As Object, MonMessage As Object, ZoneTableau As Name
Dim WshLendemain As Worksheet, Onglet As Worksheet
Dim NomAgent As String, PrenomAgent As String, EmailAgent As String, SecteurAgent As String, HoraireAgent As String, PosteAgent As String, NomZone As String

InitialisationDebutMacro

' Recherche de la feuille correspondant au planning du lendemain
For Each Onglet In ActiveWorkbook.Sheets
If ExistenceZone(Onglet, "DatePlanning") = True Then
If Onglet.Range("DatePlanning").Value = Date + 1 Then
Set WshLendemain = Sheets(Onglet.Name)
Exit For
End If
End If
Next Onglet

If WshLendemain.Name <> Empty Then

With WshAgents.Range("TableauAgents")

' Parcours de tous les agents dans le tableau de la feuille 'Liste agents'
For rAgent = 1 To .Rows.Count - 1

' Renseigne les informations sur l'agent
NomAgent = .Cells(rAgent, cAgents_Nom).Value
PrenomAgent = .Cells(rAgent, cAgents_Prenom).Value
EmailAgent = .Cells(rAgent, cAgents_Email).Value

' Parcours de tous les tableaux (zones nommées)
For Each ZoneTableau In ThisWorkbook.Names

' Si tableau (zone nommée) provient de la feuille 'Liste agents'
If ZoneTableau.Name Like WshLendemain.Name & "!Tableau*" And ZoneTableau.RefersTo Like "=" & WshLendemain.Name & "*" Then

' Récupération du nom du tableau
NomZone = Right(ZoneTableau.Name, Len(ZoneTableau.Name) - InStr(ZoneTableau.Name, "!"))

With WshLendemain.Range(NomZone)

' Parcours des colonnes (matin, après-midi) et lignes du tableau
For cZoneTableau = .Columns.Count - 1 To .Columns.Count ' colonne 4 à 5

For rZoneTableau = 1 To .Rows.Count

' Si agent trouvé dans le tableau (sans tenir compte des caractères spéciaux)
If NomAgent & " " & PrenomAgent = ChaineEpure(.Cells(rZoneTableau, cZoneTableau).Value, NomAgent & " " & PrenomAgent) And EmailAgent <> Empty Then

SecteurAgent = CorrespondanceSecteur(NomZone)
HoraireAgent = .Cells(0, cZoneTableau).Value
PosteAgent = .Cells(rZoneTableau, 1)

If Not (.Cells(rZoneTableau, cZoneTableau).Value Like "*Dép*") And Not (.Cells(rZoneTableau, cZoneTableau).Value Like "*dép*") _
And Not (.Cells(rZoneTableau, cZoneTableau).Value Like "*Dep*") And Not (.Cells(rZoneTableau, cZoneTableau).Value Like "*dep*") _
And Not (.Cells(rZoneTableau, cZoneTableau).Value Like "*Arr*") And Not (.Cells(rZoneTableau, cZoneTableau).Value Like "*arr*") Then

If .Cells(rZoneTableau, cZoneTableau).Value Like "*" & ChrW(64) & "*" Then

WshAgents_EnvoyerMail NomAgent, PrenomAgent, EmailAgent, SecteurAgent, HoraireAgent, PosteAgent, "11h -> 12h30"

Else

WshAgents_EnvoyerMail NomAgent, PrenomAgent, EmailAgent, SecteurAgent, HoraireAgent, PosteAgent, Empty

End If

End If

End If

Next rZoneTableau

Next cZoneTableau

End With

End If

Next ZoneTableau

Next rAgent

End With

End If

InitialisationFinMacro

Exit Sub

Erreur:

ErreurMacro "Mod_Agents/WshAgents_RechercherInfosMails"

End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Arvin,
Utilisez les balises </> pour le code c'est plus lisible.

Si ça eût marché et que ça ne marche plus, c'est que quelque chose à changer.

Il a du mal à trouver "objet worksheet". Avez vous modifiez des noms de feuilles ? Supprimé ou rajouté des feuilles ? ....
Et essayez de nous dire sur quelle ligne le bug apparait. Lors de l'erreur vous avez surement une fenêtre avec le bouton débogage, ce qui vous donnera la ligne incriminée.
Sinon fournissez un fichier test, ce sera plus simple.
 

arvin

XLDnaute Occasionnel
Bonsoir Arvin,
Utilisez les balises </> pour le code c'est plus lisible.

Si ça eût marché et que ça ne marche plus, c'est que quelque chose à changer.

Il a du mal à trouver "objet worksheet". Avez vous modifiez des noms de feuilles ? Supprimé ou rajouté des feuilles ? ....
Et essayez de nous dire sur quelle ligne le bug apparait. Lors de l'erreur vous avez surement une fenêtre avec le bouton débogage, ce qui vous donnera la ligne incriminée.
Sinon fournissez un fichier test, ce sera plus simple.
Merci beaucoup : ai pris un ancien fichier et tout fonctionne ....effectivement, des feuilles ont été rajoutées, je vais expertiser tranquillement ;) merci encore
 

Discussions similaires

Réponses
9
Affichages
282

Statistiques des forums

Discussions
297 960
Messages
1 964 647
Membres
200 628
dernier inscrit
pop600