Erreur d'exécution 1004
Résolu/Fermé
Loic_7447
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
-
9 déc. 2019 à 09:47
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 - 16 déc. 2019 à 11:34
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 - 16 déc. 2019 à 11:34
A voir également:
- Erreur d'exécution 1004
- Erreur 1004 vba ✓ - Forum VB / VBA
- Erreur d'execution 1004 - Forum Programmation
- Erreur d'exécution 1004 erreur définie par l'application ou par l'objet ✓ - Forum VB / VBA
- MACRO : Problème " Erreur d'exécution '1004' " ✓ - Forum Excel
- Erreur d'execution 13 ✓ - Forum Programmation
5 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
9 déc. 2019 à 11:32
9 déc. 2019 à 11:32
Bonjour Loic, bonjour le forum,
alertestock non déclarée ?!... J'ai aussi l'impresion que datereponse devrait être une variable de type Date... Bref, impossible de te répondre sans le fichier qui va bien !...
voir par exemple https://www.cjoint.com/ pour mettre un fichier en pièce jointe.
alertestock non déclarée ?!... J'ai aussi l'impresion que datereponse devrait être une variable de type Date... Bref, impossible de te répondre sans le fichier qui va bien !...
voir par exemple https://www.cjoint.com/ pour mettre un fichier en pièce jointe.
yg_be
Messages postés
21304
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
Modifié le 9 déc. 2019 à 11:47
Modifié le 9 déc. 2019 à 11:47
bonjour, as-tu bien
à quelle ligne obtiens-tu le message d'erreur?
option expliciten début de module?
à quelle ligne obtiens-tu le message d'erreur?
Loic_7447
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
10 déc. 2019 à 08:31
10 déc. 2019 à 08:31
Merci pour vos réponses, ça m'a permis de corriger quelques détails, mais je rencontre toujours le même problème...
Le message d’erreur 1004 apparait au niveau de la ligne 8, au premier
J'ai déclaré
Option Explicit
Private Sub workbook_open()
Dim reponseclient As Date
Dim datereponse As Date
Dim Client As Variant
For Each reponseclient In ActiveSheet.Range("reponse_envoye")
If reponseclient = "" Then
For Each datereponse In ActiveSheet.Range("date_reponse")
Client = Cells(datereponse.Row, 6)
If datereponse = Date - 3 Then
MsgBox "Le client " & Client & " attend une réponse dans trois jours.", vbCritical, "Réponse sous 3 jours"
Else
End If
If datereponse = Date Then
MsgBox "Le client " & Client & " attend une réponse aujourd'hui.", vbCritical, "Réponse aujourd'hui"
Else
End If
Next
End If
Next
End Sub
Le message d’erreur 1004 apparait au niveau de la ligne 8, au premier
For each ....
J'ai déclaré
reponseclientet
datereponseen tant que Date, mais un autre message d'erreur s'affiche et me dit "La variable de type For each doit être de type Variant ou Object". Je ne sais donc pas trop quoi faire pour que mon programme fonctionne.
ALS35
Messages postés
1014
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
15 mars 2023
127
10 déc. 2019 à 09:15
10 déc. 2019 à 09:15
Bonjour,
Es-tu sûr d'être positionné sur la bonne feuille à l'ouverture du fichier ? Ce doit être la feuille dans laquelle il y a Range("reponse_envoye") et Range("date_reponse") ?
Si tu fais For Each reponseclient In ActiveSheet.Range, reponseclient doit être de type Range, idem pour datereponse.
Difficile de voir le problème sans un extrait représentatif de ton fichier.
Cordialement
Es-tu sûr d'être positionné sur la bonne feuille à l'ouverture du fichier ? Ce doit être la feuille dans laquelle il y a Range("reponse_envoye") et Range("date_reponse") ?
Si tu fais For Each reponseclient In ActiveSheet.Range, reponseclient doit être de type Range, idem pour datereponse.
Difficile de voir le problème sans un extrait représentatif de ton fichier.
Cordialement
Loic_7447
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
Modifié le 11 déc. 2019 à 11:21
Modifié le 11 déc. 2019 à 11:21
Je ne peux malheureusement pas partager mon fichier car il contient des infos confidentielles ...
J'ai refais quelques modifications en vérifiant bien la feuille à l'ouverture, le nom et le type de variables ... Mais cette fois ci, le fichier refuse de s'ouvrir en laissant la fenêtre de lancement excel affiché à l'écran (j'ai essayé sur plusieurs ordi pour le même résultat).
Voici mon nouveau code :
J'espère que vous allez pouvoir m'aider une fois de plus, merci d'avance !
J'ai refais quelques modifications en vérifiant bien la feuille à l'ouverture, le nom et le type de variables ... Mais cette fois ci, le fichier refuse de s'ouvrir en laissant la fenêtre de lancement excel affiché à l'écran (j'ai essayé sur plusieurs ordi pour le même résultat).
Voici mon nouveau code :
Option Explicit
Private Sub workbook_open()
Sheets("2019").Activate
Dim reponseclient As Range
Dim datereponse As Range
Dim Client As Variant
For Each reponseclient In ActiveSheet.Range("reponse_envoye")
If reponseclient = "" Then
For Each datereponse In ActiveSheet.Range("date_reponse")
Client = Cells(datereponse.Row, 6)
If datereponse = Date - 3 Then
MsgBox "Le client " & Client & " attend une réponse dans trois jours.", vbCritical, "Réponse sous 3 jours"
Else
End If
If datereponse = Date Then
MsgBox "Le client " & Client & " attend une réponse aujourd'hui.", vbCritical, "Réponse aujourd'hui"
Else
End If
Next
End If
Next
End Sub
J'espère que vous allez pouvoir m'aider une fois de plus, merci d'avance !
yg_be
Messages postés
21304
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
>
Loic_7447
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
11 déc. 2019 à 11:37
11 déc. 2019 à 11:37
Ne peux-tu pas supprimer les données ou les remplacer par des données non confidentielles?
Il est recommandé de ne pas utiliser
Je suggère
Je pense que la logique de ton code est incorrecte, et qu'il prend simplement un temps trop long. A quoi sert la boucle en ligne 12?
Il serait sans doute beaucoup plus simple que tu testes ton code sans l'insérer dans workbook_open. Cela te permettra d'utiliser les facilités de débogage offertes par le VBA.
Il est recommandé de ne pas utiliser
Activate.
Je suggère
Sheets("2019").Range("reponse_envoye")
Je pense que la logique de ton code est incorrecte, et qu'il prend simplement un temps trop long. A quoi sert la boucle en ligne 12?
Il serait sans doute beaucoup plus simple que tu testes ton code sans l'insérer dans workbook_open. Cela te permettra d'utiliser les facilités de débogage offertes par le VBA.
Loic_7447
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
>
yg_be
Messages postés
21304
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
12 déc. 2019 à 14:48
12 déc. 2019 à 14:48
Voici mon fichier :
https://we.tl/t-fMC5KGG3Zq
J'ai supprimé la boucle à la ligne 12, elle m'affichait le message que je souhaitais, mais en boucle.
https://we.tl/t-fMC5KGG3Zq
J'ai supprimé la boucle à la ligne 12, elle m'affichait le message que je souhaitais, mais en boucle.
yg_be
Messages postés
21304
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
>
Loic_7447
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
12 déc. 2019 à 14:50
12 déc. 2019 à 14:50
tout fonctionne maintenant?
yg_be
Messages postés
21304
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
13 déc. 2019 à 13:58
13 déc. 2019 à 13:58
suggestion:
Option Explicit
Private Sub workbook_open()
Call rappels
End Sub
Private Sub rappels()
Dim date_envoi_mail As Range
Dim date_attendue As Date
Dim Client As Variant
For Each date_envoi_mail In ActiveSheet.Range("date_client_informe")
If date_envoi_mail = "" Then
If IsDate(Cells(date_envoi_mail.Row, 8)) Then
date_attendue = CDate(Cells(date_envoi_mail.Row, 8))
Client = Cells(date_envoi_mail.Row, 6)
If date_attendue = Date - 3 Then
MsgBox "Le client " & Client & " attend une réponse dans trois jours.", vbCritical, "Réponse sous 3 jours"
Else
If date_attendue = Date Then
MsgBox "Le client " & Client & " attend une réponse aujourd'hui.", vbCritical, "Réponse aujourd'hui"
End If
End If
End If
End If
Next
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Loic_7447
Messages postés
49
Date d'inscription
jeudi 11 juillet 2019
Statut
Membre
Dernière intervention
17 novembre 2020
16 déc. 2019 à 10:30
16 déc. 2019 à 10:30
Bonjour à tous,
J'ai résolu mon problème en repartant de zéro. Une partie du problème était liée à la mise en forme du fichier (cellules fusionnées ...). J'ai donc revu cette mise en forme et adapté un nouveau programme.
Merci pour votre aide !
J'ai résolu mon problème en repartant de zéro. Une partie du problème était liée à la mise en forme du fichier (cellules fusionnées ...). J'ai donc revu cette mise en forme et adapté un nouveau programme.
Merci pour votre aide !
f894009
Messages postés
16904
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 mars 2023
1 678
16 déc. 2019 à 11:34
16 déc. 2019 à 11:34
Bonjour,
C'est ce que je vous avais recommande post 20........
C'est ce que je vous avais recommande post 20........