2 votes

Comment formater conditionnellement une cellule en fonction des différents résultats de la cellule ?

enter image description here

Je crée une feuille de calcul qui lit les codes-barres pour scanner un article à l'entrée ou à la sortie. J'ai utilisé VB pour faire cela à chaque fois que je scanne un code-barres. Il ajoute donc une date et une heure horizontalement sur une ligne à chaque fois que le code-barres est scanné, de sorte que les cellules alternées sont intitulées "entrée" et "sortie", puis lisent une heure et une date.

Ce que je cherche à faire, c'est formater la cellule qui contient le code-barres pour qu'elle s'affiche en vert si l'article est entré et en rouge si l'article est sorti. Il s'agirait alors d'une référence rapide lorsque l'on consulte la feuille de tous les articles.

Y a-t-il un moyen de le faire ? Je ne suis pas très doué en Excel et j'ai un peu de mal à le faire maintenant !

1voto

JG7 Points 170

Il pourrait être utile pour vous d'avoir une colonne qui indique clairement "Out" ou "In" en fonction du nombre de balayages. Le code peut être placé dans une nouvelle colonne pour chaque ligne et devrait vous permettre de connaître cette information. Notez que je suppose qu'un nombre impair de balayages indique le statut "Out" et qu'un nombre pair de balayages représente le statut "In".

Ajoutez ceci à une nouvelle colonne :

=IF(MOD(COUNTA($B2:$ZZ2),2)=0,"In", "Out")

Où B est la première colonne d'horodatage et ZZ est le point le plus éloigné où l'on peut imaginer que les scans sortent.

COUNTA() compte le nombre de cellules non vides. MOD() effectue l'opérateur modulo qui indique le reste après division. IF() définit une valeur en fonction du résultat vrai ou faux d'un test.

À partir de là, vous pouvez utiliser le formatage conditionnel pour colorer la colonne "IN/OUT" de la couleur appropriée en fonction de sa propre valeur.

Si vous ne pouvez pas ajouter une colonne Étant donné que le code VBA devrait être modifié et que cela n'est pas acceptable, vous pouvez simplement utiliser cette formule à la place de la formule que je vous ai donnée ci-dessous pour votre mise en forme conditionnelle :

=MOD(COUNTA(C1:ZZ1),2)>0

Cette formule permet de vérifier si l'article est épuisé. Utilisez cette formule pour vérifier s'il est entré :

=MOD(COUNTA(C1:ZZ1),2)<1

Je pense que c'est une excellente utilisation du formatage conditionnel !

Commencez par sélectionner la colonne des codes-barres et allez au formatage conditionnel dans le ruban du haut.

Sélectionnez "Nouvelle règle".

Choisissez la dernière option dans la liste Type de règle : "Utiliser une formule pour déterminer les cellules à mettre en forme".

Dans la barre de formule, utilisez ce code et tapez ceci

=ISNUMBER(FIND("Out",$A2))

Où A2 représente l'emplacement de la colonne In/Out. Notez que le signe dollar conserve la colonne A mais ajuste la règle pour chaque ligne vers le bas.

Choisissez maintenant le formatage que vous souhaitez (c'est-à-dire la couleur de fond de la cellule du code-barres).

Vous répéterez ensuite ces étapes pour le formatage avec un fond vert lorsque l'élément est "In".

Edit : Juste pour information, la fonction FIND() essaie de trouver le texte donné dans un emplacement spécifié. Si elle trouve le texte que vous recherchez, elle renvoie l'endroit dans la chaîne où le texte a commencé, sinon elle renvoie une erreur. Nous pouvons ensuite utiliser ISNUMBER() pour vérifier si la valeur renvoyée était un nombre et, par conséquent, si elle se trouvait dans la cellule spécifiée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X