Bug sur macro effacement de cellules

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

thomasdu43

XLDnaute Occasionnel
Bonjour,

Je vous joins un fichier sur lequel j'ai 2 demandes :
- régler le pb d'erreur à l'application de la macro
- pouvoir modifier le contenu de cette dernière afin que le contenu des cellules des colonnes G et H (lignes 51 à 83) redevienne par défaut si il a été modifié (je m'explique, j'ai joué sur la MFC de sorte que la coche noire devienne rouge et change de cellule en cas de suppression de celle-ci - un peu compliqué à expliquer mais facile à comprendre avec le fichier 😀) et après action sur le bouton "Effacer contenu des cellules"

Merci de votre aide.

Cdt.
 

Pièces jointes

Re : Bug sur macro effacement de cellules

Bonjour,
Bonjour,

Attention aux cellules fusionnées (VBA n'aiment pas les cellules fusionnées)

.Range( _
"B2😀2,F2:J2,B4:J4,B5:J5,B6😀6,F6:J6,B8😀10,F8:J10,C13😀17,E15:J17,E22:J22,E33:J33,I21,B45:C45,F96:J102,G106:J108,A110:J115,F118:J118,B120:C120,F120:J120" _
).ClearContents

Le reste : je ne vois pas
 
Re : Bug sur macro effacement de cellules

Bonjour,

Pas sûr de comprendre.

Le bug vient en effet de tes références qui ne correspondent pas avec les cellules fusionnées :
Tu demandes d'effacer F2:I2 alors que tu as fusionnée F2:J2 -> plantage

Quand à la plage G51:H83, commet connaît-on les valeurs par défaut ?
 
Re : Bug sur macro effacement de cellules

Bonjour thomasdu43, CHALET53,

Attention aux cellules fusionnées (VBA n'aiment pas les cellules fusionnées)

Meuh non, simplement avec des cellules fusionnées au lieu de .Range(xxx).ClearContents utiliser

.Range(xxx) = "" ou .Range(xxx) = Empty

On peut alors ne prendre que la 1ère cellule des plages fusionnées.

Edit : salut Iznogood1

A+
 
Dernière édition:
Re : Bug sur macro effacement de cellules

bonsoir,

thomasdu43, tu n'as pas retenu la leçon du dernier fil !? pas de cellule fusionnée avec .ClearContents !!!
uniquement la première ! exemple B2 : D2 prende B2 c'est tout !
ensuite il faut tester si fusionnée ou pas avec .ClearContents ! voir code !

Code:
' Effacer_cellules_recueil Macro
Sub Effacer_cellules_recueil()
    Dim Ctl As Shape
    Application.EnableEvents = False
    With Worksheets("Recueil besoins")
    I = 0
    Do: I = I + 1
       R$ = Choose(I, "B2", "F2", "B4", "B5", "B6", "F6", "B8:D10", "F8:J10", "C13:D17", "E15:J17", "E22:J22", "E33", "I21", "B45", "F96:J102", "G106:J108", "A110:J115", "F118", "B120", "F120", "")
       If R$ = "" Then Exit Do
       If .Range(R$).MergeCells Then .Range(R$).MergeArea.ClearContents Else .Range(R$).ClearContents
    Loop
    For Each Ctl In .Shapes
        If Left(Ctl.Name, 9) = "Check Box" Then .Shapes(Ctl.Name).OLEFormat.Object.Value = 0
    Next Ctl
    End With
Application.EnableEvents = True
End Sub


sinon tu peux aussi laisser comme ça et remplacer .ClearContents par = ""
tout dépend de ce que tu souhaites faire !?

personnellement je ferais ainsi:
Code:
'Effacer_cellules_recueil Macro
Sub Effacer_cellules_recueil()
    Dim Ctl As Shape
    Application.EnableEvents = False
    With Worksheets("Recueil besoins")
     .Range("B2:D2,F2:I2,B4:J4,B5:J5,B6:D6,F6:I6,B8:D10,F8:J10,C13:D17,E15:J17,E22:J22,E33:J33,I21,B45:C45,F96:J102,G106:J108,A110:J115,F118:J118,B120:C120,F120") = ""
     For Each Ctl In .Shapes
      If Left(Ctl.Name, 9) = "Check Box" Then .Shapes(Ctl.Name).OLEFormat.Object.Value = 0
     Next Ctl
    End With
Application.EnableEvents = True
End Sub
 
Dernière édition:
Re : Bug sur macro effacement de cellules

Bonjour et merci.

Cependant, à l'ouverture du fichier, il est possible de lever la protection en cliquant sur "Oter la protection" sans pour autant avoir de demande de mot de passe.

Existe une possibilité pour remédier à ce problème.

Merci.

Nota : j'ai fait le choix de la seconde solution
 
Re : Bug sur macro effacement de cellules

bonsoir

qu'entends tu par remédier à ça ?

qu'il n'y ai plus de mot de passe à demander ou en mettre un ?

si tu n'en veux plus tu le supprimes et tu enregistres !?
sinon tu entres un mot de passe !

je vois pas où est le problème !?
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour