A voir également:
- Vba - arret d'une macro après 1ere execution
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Forcer l'arrêt d'une application pc - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
11 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 oct. 2009 à 11:45
14 oct. 2009 à 11:45
Salut,
Il faudra peut être sortir de la boucle For avec Exit For
Il faudra peut être sortir de la boucle For avec Exit For
jai essayé de placer exit for après le end if et avant, ca ne fonctionne pas, il envoit toujours le mail malgré que ma valeur est prie: "mail envoyé".
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 oct. 2009 à 12:15
14 oct. 2009 à 12:15
Re,
Essaie comme ça
106485010510997108
Essaie comme ça
Sub TaProcedure() Application.EnableEvents = False Dim date48 As Date Dim datejour As Date date48 = 48 datejour = Now Dim lig As Long For lig = 158 To [E65536].End(xlUp).Row If datejour - Cells(lig, 5) > date48 / 24 And Cells(lig, 5) <> "" Then Cells(lig, 26) = "en retard" Call Audit.audit48_Click Exit For End If Next lig Cells(lig, 26) = "Mail envoyé" Application.EnableEvents = True End Sub--
106485010510997108
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
14 oct. 2009 à 13:58
14 oct. 2009 à 13:58
Re,
J'ai lu en peu en diagonale.
En fait le Exit For n'a rien à avoir.
Ta boucle ne fait rien saut le If...End If
C'est l'evenement worksheet_change qui pose des problèmes.
Essaie de mettre ta macro dans un module et tu verras s'il y a encore des problèmes.
J'ai lu en peu en diagonale.
En fait le Exit For n'a rien à avoir.
Ta boucle ne fait rien saut le If...End If
C'est l'evenement worksheet_change qui pose des problèmes.
Essaie de mettre ta macro dans un module et tu verras s'il y a encore des problèmes.
Ok je vais tester ca, par contre si ca marche comment je remplace mon évenement worksheet_change?
je pourrai m'adapater avec thisworkbook_open je pense
je pourrai m'adapater avec thisworkbook_open je pense
Pourquoi lorsque je place ma macro dans un module en public sub et que je l'appel avec workbook_open, ma macro ne s'execute pas, j'ai même essayer de la placer derriere un bouton_click et l'appeler avec workbook_open et elle ne se lance pas, une idée ?
Salut,
Si je me rappelle bien, j'ai déjà eu ce problème en ce qui concerne le lancement automatique :
il faut mettre ton code dans ThisWorkbook et pas dans un module ou une feuille.
Par contre, je n'ai pas d'explication du pourquoi on doit faire ça dont je suis sûr !
Bon courage !
ed
Si je me rappelle bien, j'ai déjà eu ce problème en ce qui concerne le lancement automatique :
il faut mettre ton code dans ThisWorkbook et pas dans un module ou une feuille.
Par contre, je n'ai pas d'explication du pourquoi on doit faire ça dont je suis sûr !
Bon courage !
ed
Maintenant, même si ma valeur est à "mail envoyé" le mail est toujours envoyé avec la tableau, je ne comprends pas !
J'ai enfin trouvé, j'ai modifié la macro, le problème était qu'a chaque ouverture du fichier excel, le test était refait, donc dans le workbook_open j'ai placé à peu près la même macro sauf que j'ai supprimé l'étape de test :
Private Sub envoi_mail_retard()
Application.EnableEvents = False
Dim date48 As Date
Dim datejour As Date
date48 = 48
datejour = Now
Dim lig As Long
For lig = 158 To [E65536].End(xlUp).Row
If Cells(lig, 26).Value = "en retard" Then
Call envoi_mail
.cells(lig, 26).Value = "Mail envoyé"
End If
Next lig
Application.EnableEvents = True
End Sub
merci !
Private Sub envoi_mail_retard()
Application.EnableEvents = False
Dim date48 As Date
Dim datejour As Date
date48 = 48
datejour = Now
Dim lig As Long
For lig = 158 To [E65536].End(xlUp).Row
If Cells(lig, 26).Value = "en retard" Then
Call envoi_mail
.cells(lig, 26).Value = "Mail envoyé"
End If
Next lig
Application.EnableEvents = True
End Sub
merci !