Microsoft 365 Problème code VBA qui ne fonctionne pas

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 !

Cherrylie

XLDnaute Junior
Bonjour à tous,

J'ai un problème avec le code VBA de mon fichier : j'ai un message d'erreur qui s'affiche me disant qu'il n'y a pas de cellules correspondantes.

Je suis totalement débutante en VBA (ce code a été fait par job75) mais je cherche à progresser donc je vous serai extrêmement reconnaissante de bien vouloir m'aider.

Merci d'avance et bon week-end à tous !

Cherrylie
 

Pièces jointes

Solution
Bon, finalement j'ai fait les 2 solutions d'affichage sur option.
Et j'ai mis l'Unité en 1er. Mais tu peux déplacer la colonne où tu veux (avantages des tableaux structurés).

Edit: Fichier supprimé. Voir ci-dessous.
J'ai un dernier petit souci, la ligne égale à 9 se grise systématiquement alors qu'elle correspond au critère de niveau de risque souhaité. Je n'arrive pas à modifier le code pour que ça se remette en blanc. Visiblement, c'est parce qu'un "1" se met dans la colonne K. Le problème, c'est que selon moi, le code est bon :
VB:
 Set d = CreateObject("Scripting.Dictionary")
    d.CompareMode = vbTextCompare 'la casse est ignorée
    Set P = [A10].CurrentRegion.Resize(, 11) 'colonne K supplémentaire masquée
    tablo = P 'matrice, plus rapide
    
    For i = 2 To UBound(tablo)
        x = tablo(i, 1) & tablo(i, 2) & tablo(i, 3) & tablo(i, 4)
        tablo(i, 11) = IIf(d.exists(x) Or tablo(i, 4) <= limite, 1, "") 'repère
        d(x) = i 'mémorise la ligne
    Next i

Si j'ai bien compris, cette partie du code signifie que : si il existe une valeur et qu'elle est supérieure ou égale à la limite fixée, alors un "1" se mettra en colonne K. C'est bien ça ?

Merci.
 
Si j'ai bien compris, cette partie du code signifie que : si il existe une valeur et qu'elle est supérieure ou égale à la limite fixée, alors un "1" se mettra en colonne K. C'est bien ça ?
Oui c'est ça.
Je dois dire que ce code est complexe et utilise des artifices que j'ai du mal à comprendre.
Si la ligne doit être grisée parce que le niveau de risque (colone Niveau de risque) est plus petit que le risque saisi en D6, je vois pas du tout l'utilité de ce 1 en colonne K pour faire la MFC.
Il suffit de faire la MFC par rapport à D6.
 
Et plus je regarde ce Plan d'action, plus je le trouve étrange.
Par exemple, il y a 2 lignes "Organisation du travail" sans aucune référence à leur Unité dans la synthèse, donc on ne sait pas en gestion de risque à quoi on a à faire.

Je vais te proposer un code from scratch listant en lignes tous les couples existants (Risque, Unité) et reporter leurs valeurs en plan d'action, puis faire générer la MFC ad hoc.

Edit: En plus le tableau de la feuille Synthèse est blindé de cellules fusionnées, l'enfer du codage.
 
Dernière édition:
Voilà j'ai recodé comme je pense que la fonctionnalité doit être, ce qui est assez présompteux de ma part 😱.
J'ai transformé le tableau Plan d'actions en un tableau structuré ce qui est beaucoup plus "carré" en Excel.

La colorisation (ou plutôt "patternisation") est faite dans le code.
A noter qu'au lieu de cette colorisation on pourrait générer un filtre sur la colonne Niveau de risque pour ne faire apparaitre QUE les lignes répondant au critère. Ce serait plus logique et je peux modifier ça si tu veux.

Edit: Fichier supprimé. Voir ci-dessous.
 
Dernière édition:
Bon, finalement j'ai fait les 2 solutions d'affichage sur option.
Et j'ai mis l'Unité en 1er. Mais tu peux déplacer la colonne où tu veux (avantages des tableaux structurés).

Edit: Fichier supprimé. Voir ci-dessous.
 
Dernière édition:
Et j'ai remarqué qu'il faut aussi conserver les valeurs précédentes des autres colonnes pour un couple (Unité, Risque) donné, évidemment.
D'où cette version.

Edit: Fichier supprimé. Voir ci-dessous.
 
Dernière édition:
Attention !
Tu peux modifier une valeur de risque dans la feuille Synthèse.
Tu peux ajouter un couple (Unité, Risque) dans la feuille Synthèse.

Mais si tu modifies les libellés d'un couple (Unité, Risque) dans la feuille Synthèse, tu perdras les valeurs des autres colonnes déjà saisie (Actions... Commentaire) dans la feuille Plan d'actions. Mais je pense que cet effet de bord était déjà présent avant.
 
- 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

  • Question Question
Microsoft 365 Problème Code VBA
Réponses
9
Affichages
396
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
799
Réponses
3
Affichages
90
Réponses
1
Affichages
377
Retour