RESOLU par ROLAND - Erreur d'exécution "1004"

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Je planche sans succès depuis une semaine sur un souci d'exécution de macro que je ne parviens pas à résoudre.

Voici le message du blocage : la méthode 'Range_de l'objet' global a échoué'

Voici la macro :
Code:
Sub EffRDVannule()
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Sheets("ArguAgent").Select
    Range("E4").Select
    Selection.ClearContents
    Sheets("ArguAgence").Select
    Range("E4").Select
    Selection.ClearContents
    
    Sheets("Prise RdV").Select
    ActiveSheet.Unprotect Password:="mdp"
    Range("D6,F6,G6,D8,J7,J8,L8,P7,D11,F11,D14:D20,F14:G14,H18,F20,D22,D24,F24,L10,L12,L15:L20,L22,L23,L25,N25,N20,P12:P17,R12,R18,R19,R20,Z22,R24").Select
    Selection.ClearContents
    'ActiveSheet.Shapes("RdVAttente").delete
    Range("D6").Select
    ActiveSheet.Protect Password:="mdp", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

ça plante ici :
Code:
Range("D6,F6,G6,D8,J7,J8,L8,P7,D11,F11,D14:D20,F14:G14,H18,F20,D22,D24,F24,L10,L12,L15:L20,L22,L23,L25,N25,N20,P12:P17,R12,R18,R19,R20,Z22,R24").Select

Je n'y comprends rien !!! :p

Quand je poursuis la macro par déboyage ... ça marche et la macro s'exécute jusqu'à sa fin.
Quand j'appelle cette macro par Call dans une autre macro ..... ça marche sans problème.


Un vrai casse-tête pour moi et je n'y arrive pas.

Il ne m'est pas possible de joindre un classeur test, mon classeur "pesant" plus de 2 mégas, je ne peux également pas le joindre.

En espérant avoir été clair mais je reste à votre écoute ... Pourriez-vous m'aider ?

Je vous souhaite à toutes et à tous un très bon dimanche malgré les tristes et horribles assassinats que nous venons de subir.

Amicalement,
Lionel,
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Erreur d'exécution "1004" - classeur impossible à joindre

Re

Vraiment merci d'essayer.

J'ai testé et j'ai toujours le même message d'erreur et ça bloque au même niveau.

je sais qu'il est pratiquement impossible de trouver la solution sans le fichier.
Je ne sais plus trop quoi faire ......

Je continuerai demain car là, ça m'a "pompé" et je me lève à 3 heures demain matin.

Juste une question : Application.EnableEvents = False ça bloque toutes les macros Worksheet et Workbook.

Encore merci :)

Bonne fin de dimanche et .... bonne nuit,
Amicalement,
Lionel,
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Erreur d'exécution "1004" - classeur impossible à joindre

Bonsoir Roland,
Bonsoir le Forum,

Décidément, rien à faire, toujours lla même erreur au même niveau.

J'ai tenté de suivre tes conseils et j'ai modifié comme suit :
Code:
ub EffRDVannule()
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Sheets("ArguAgent").Select
    Range("E4").Select
    Selection.ClearContents
    Sheets("ArguAgence").Select
    Range("E4").Select
    Selection.ClearContents
    
    Sheets("Prise RdV").Select
    'ActiveSheet.Unprotect Password:="Krameri"
    Range("D6,F6,G6,D8,J7,J8,L8,P7,D11,F11,D14:D20,F14:G14,H18,F20,D22,D24,F24,L10,L12,L15:L20,L22,L23,L25,N25,N20,P12:P17,R12,R18,R19,R20,Z22,R24").Select
    Selection.ClearContents
    Range("J50,F52,D54:J56,F58,D60:J62").Select
    Range("D60").Activate
    Selection.ClearContents
    Range("D6").Select
    ActiveSheet.Protect Password:="Krameri", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Je n'ai pas touché au code de la feuille.

Ce qui me surprend, c'est que pour l'exécution des deux autres macro où il le même code :
Code:
Range("D6,F6,G6,D8,J7,J8,L8,P7,D11,F11,D14:D20,F14:G14,H18,F20,D22,D24,F24,L10,L12,L15:L20,L22,L23,L25,N25,N20,P12:P17,R12,R18,R19,R20,Z22,R24").Select
    Selection.ClearContents

ça marche sans problème et avec la même feuille donc même code de feuille.

Mais peut-être ai-je mal suivi ce que tu m'as dit ?

Bonne soirée à tous et à tous,
Amicalement,
Lionel,
 

Roland_M

XLDnaute Barbatruc
Re : Erreur d'exécution "1004" - classeur impossible à joindre

re

ce que je ne comprends pas c'est que je n'ai pas d'erreur avec F5 ou F8 !?

question depuis quelle feuille et quel bouton tu exécutes cette macro ?

EDIT:
pour nos amis, il faut préciser, qu'ils ne peuvent pas trouver d'erreur dans cette présentation des choses !
il ne savent pas qu'il y a des événements feuille et aussi des formules qui déclenchent des macros
quand on modif des valeurs dans certaines cellules !
un véritable imbroglio !

et c'est pour cela que je t'ai fait rajouter
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Erreur d'exécution "1004" - classeur impossible à joindre

Bonsoir Roland,

Désolé, je n'ai vu que maintenant ton message.

Oui, pas d'erreur F5 ou F8 et pas d'erreur également quand, au blocage de la macro, je poursuis en déboyant mais l'effacement ne se produit pas.

Je mets l'image de l'onglet Prise RdV qui contient les boutons macros.

Regarde la pièce jointe 348564

Bonne fin de soirée,
Amicalement,
Lionel,
 

Pièces jointes

  • Feuille prise RdV deans classeur.jpg
    Feuille prise RdV deans classeur.jpg
    49 KB · Affichages: 36
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Erreur d'exécution "1004" - classeur impossible à joindre

re

mais ce bouton appel Sub InfosRdVAttente()
qui lui appel Sub Bouton_insérerRdvattente()
et il ne se passe rien !
et c'est normal, ce n'est pas de là que tu effectues le Sub EffRDVannule() à problème !?

Maintenant, Lionel, sans vouloir être blessant, il faut bien dire que ce classeur est une véritable usine à gaz !
trop d'événements et de macros appelées depuis des formules cellules,
tout ceci est imbriqué et se déclenche, tel un feu d'artifice, sans pouvoir contrôler le suivi et ses effets !
franchement c'est ingérable !

bon courage et si je peux faire qq chose j'essayerai encore.
bonne nuit !
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Erreur d'exécution "1004" - classeur impossible à joindre

Bonjour Roland,
Bonjour à toutes et à tous,

Tout d'abord LOL :
"Maintenant, Lionel, sans vouloir être blessant, il faut bien dire que ce classeur est une véritable usine à gaz !
trop d'événements et de macros appelées depuis des formules cellules,
tout ceci est imbriqué et se déclenche, tel un feu d'artifice, sans pouvoir contrôler le suivi et ses effets !
franchement c'est ingérable !"

Tu as bien raison, j'en suis conscient et, contrairement à ce qu'on dit habituellement : "la vérité ne me blesse pas".... côté VBA, c'est le bordel LOL (je ne suis qu'un profane en VBA)

Quelle est ma logique ? :
Quand je créé un classeur, avant de me lancer dans une création et du code VBA "à l'aveugle", je fais un plan selon ma logique du déroulement des actions.

J'ai suivi cette logique tout simplement et c'est certain que n'étant pas un VBéiste, la codification est bizarre et peut paraître "ingérable".

Mais , tout fonctionne quand même dans mon classeur, mise à part cette P..... de macro.
Paradoxalement, le même code est inclus dans deux autres macros qui fonctionnement parfaitement et avec les codes de la feuille Prise RdV (dont les mêmes).

Effectivement, c'est coton !!!

Pour tenter d'avancer, je te joins une photo t’expliquant pourquoi le bouton sur lequel tu arrives en cliquant sur "Vendeur dernière information" n'est pas actif si certaines cellules ne sont pas complétées.

Roland.jpg

Merci pour tout ce que tu fais,
Je reste à ton écoute,
Bonne journée,
Amicalement,
Lionel,
 

Pièces jointes

  • Roland.jpg
    Roland.jpg
    56.9 KB · Affichages: 30

Roland_M

XLDnaute Barbatruc
Re : Erreur d'exécution "1004" - classeur impossible à joindre

re

bonjour à tous,

tu m'en diras tant !
maintenant oui, je peut reproduire ton erreur !
déjà j'ai vu que tu avais mis en rem le code feuille !
donc erreur si on modif des cellules protégées !
j'ai enlevé cette rem et malgré tout j'ai encore cette erreur !?

j'y regarde et si je trouve qq chose je reviens ...
 

Roland_M

XLDnaute Barbatruc
Re : Erreur d'exécution "1004" - classeur impossible à joindre

re

pour te faire patienter, une première bonne nouvelle !
j'ai découvert une source erreur causée par des cellules fusionnées !
j'ai bouclée en affichant chaque champ que tu as dans ton range avec select multiple
et l'erreur est tombée sur D8 cellule fusionnée ne peut modifier !

je continue ...
 

Roland_M

XLDnaute Barbatruc
Re : Erreur d'exécution "1004" - classeur impossible à joindre

re

j'y suis presque !
il ne s'agit pas là de protection mais de cellules fusionnées
avec lesquelles tu ne peut utiliser .ClearContents comme pour une seule cellule !
d'où ce test que j'ai mis:
If Range(R$).MergeCells Then Range(R$).MergeArea.ClearContents Else Range(R$).ClearContents

ensuite une autre erreur est survenue à cause de ceci:
si tu as des cellules fusionnées exp D54:J56 il faut simplement appeler "D54" seul et idem pour "D60"

à tout de suite ...
 

Roland_M

XLDnaute Barbatruc
Re : Erreur d'exécution "1004" - classeur impossible à joindre

re

alors voilà, si tu veux bien reprendre et essayer ce Sub complet !
j'espère que ça ira car je n'ai pas testé plus loin comprenant pas le déroulement
ni les réponses à apporter aux questions qui suivent, mais le Sub lui s'effectue bien et tout s'efface !
si problème dans tes Sub semblables tu auras toujours un modèle !

Code:
'si tu as des cellules fusionnées exp D54:J56 il faut simplement appeler "D54" seul et idem avec "D60"
'et avec ce test If Range(R$).MergeCells Then Range(R$).MergeArea.ClearContents Else Range(R$).ClearContents
Sub EffRDVannule()
    Application.EnableEvents = False: Application.ScreenUpdating = False
    Sheets("ArguAgent").Range("E4").ClearContents
    Sheets("ArguAgence").Range("E4").ClearContents
    Sheets("Prise RdV").Visible = True: Sheets("Prise RdV").Select
    ActiveSheet.Unprotect Password:="Krameri"
    I = 0 'j'ai mis ensemble "J50", "F52", "D54", "F58", "D60"
    Do: I = I + 1
       R$ = Choose(I, "D6", "F6", "G6", "D8", "J7", "J8", "L8", "P7", "D11", "F11", "D14:D20", "F14:G14", _
            "H18", "F20", "D22", "D24", "F24", "L10", "L12", "L15:L20", "L22", "L23", "L25", "N25", "N20", "P12:P17", _
            "R12", "R18", "R19", "R20", "Z22", "R24", _
            "J50", "F52", "D54", "F58", "D60", "")
       If R$ = "" Then Exit Do
       If Range(R$).MergeCells Then Range(R$).MergeArea.ClearContents Else Range(R$).ClearContents
    Loop
    Range("D6").Select
    ActiveSheet.Protect Password:="Krameri", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
    Application.EnableEvents = True: Application.ScreenUpdating = True
End Sub

EDIT: chez moi le classeur, une fois enregistré, ne pèse plus qu'environ 800Ko au lieu des 1,8Mo !?
 
Dernière édition:

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko