Microsoft 365 Problème code VBA qui ne fonctionne pas

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

  • Plan d'actions DU.xlsm
    36.7 KB · Affichages: 6
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.

Cherrylie

XLDnaute Junior
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.
 

Dudu2

XLDnaute Barbatruc
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.
 

Dudu2

XLDnaute Barbatruc
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:

Dudu2

XLDnaute Barbatruc
Voilà j'ai recodé comme je pense que la fonctionnalité doit être, ce qui est assez présompteux de ma part :eek:.
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:

Dudu2

XLDnaute Barbatruc
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:

Cherrylie

XLDnaute Junior
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).
Ouah, il est super comme ça ! Et en effet, ça me semble plus clair de cette façon là ! Et même le code VBA est plus simple à comprendre !

Merci beaucoup !

Thanks Thank You GIF by j.pictures


Bon week-end !
 

Dudu2

XLDnaute Barbatruc
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:

Dudu2

XLDnaute Barbatruc
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.
 

Dudu2

XLDnaute Barbatruc
Prends plutôt ce fichier. Je n'avais pas traite le cas initial où il n'y a rien dans le tableau Plan d'actions (quand le DataBodyRange du tableau structuré est Nothing).
 

Pièces jointes

  • Plan d'actions DU.xlsm
    46.5 KB · Affichages: 7

Discussions similaires

Réponses
9
Affichages
152

Statistiques des forums

Discussions
312 112
Messages
2 085 409
Membres
102 884
dernier inscrit
Macarena