Bonjour,
j'ai un petit souci sur lequel je bloque en ce moment ..
je dois réaliser un fichier excel pour le boulot, et je bloque sur un point :
Le futur fichier excel contiendra beaucoup de feuilles différentes, sur lequel un utilisateur devra entrer des valeurs numériques, qui doivent ensuite être envoyées vers la feuille 1
Pour l'érgonomie, j'ai décidé de placer des indicateurs couleurs pour voir du premier coup d'oeil si toutes les valeurs ont été saisies :
Pour l'instant je travaille sur une seule feuille, qui me servira de base pour toutes les suivantes
Une cellule sert de "feu tricolore" en fonction des données saisies dans un tableau :
Rouge = données manquantes / mal renseignées
Orange = saisie des données ok, mais pas encore envoyées sur la page 1
Vert = saisie et envoi OK
Cette couleur se retrouve également sur les onglets de feuille en bas
Pour réaliser cela, j'utilise une première cellule (P7) qui vérifie si le tableau est complet avec :
A partir de cette valeur, je peux obtenir mes couleurs rouges et orange dans la cellule P12 grâce à la mise en forme conditionnelle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =NB.VIDE(L5:N13)
Vous aurez remarqué la cellule P8 qui affiche copié
Code : Sélectionner tout - Visualiser dans une fenêtre à part = SI(P8="Copié"; "Copié"; SI(P7>0; "NOK"; "ENVOYER"))
Associé à ça, dans mon VBA j'ai ce bout de code qui me permet de colorer les onglets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 If Range("P12") = "Copié" Then ActiveSheet.Tab.ColorIndex = 4 ActiveSheet.Shapes("BoutonCopieF1").Visible = True 'Si données incorrectes, onglet rouge, bouton copie masqué ElseIf Range("P12") = "NOK" Then ActiveSheet.Tab.ColorIndex = 3 ActiveSheet.Shapes("BoutonCopieF1").Visible = 0 'Si données prêtes à être envoyées, onglet orange et bouton copie visible ElseIf Range("P12") = "ENVOYER" Then ActiveSheet.Tab.ColorIndex = 46 ActiveSheet.Shapes("BoutonCopieF1").Visible = True End If
Le problème vient ensuite :
J'utilise un commandbutton pour copier les valeurs dans la feuille 1, le clic écrit "Copié" en cellule P8, ce qui me permet d'obtenir ma cellule et mon onglet en vert, super !
Le souci est que une fois que le terme "copié" est inscrit, même si le tableau est vidé, l'onglet reste vert, alors que j'aimerais qu'à la première cellule vide du tableau (lorsque P7 <> 0 en fait), les indicateurs retombent dans le rouge
APrès avoir passé pas mal de temps à réfléchir (je suis débutant en VBA je précise), il me semble qu'une solution serait de mettre en P8 quelquechose du genre :
Je sais pas si je suis très clair, mais à vue de nez est-ce que quelqu'un penserait à une solution en voyant ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SI commandbutton cliqué ---> Value = "Copié" Sinon, SI P7>0; "NOK"; "ENVOYER"
Parceque là j'admet que je bloque ..
Merci d'avance![]()
Partager