Ne pas appliquer la MFC aux cellules vides

Bonjour,

J'ai fait une MFC qui colore deux cellules lorsque celles ci sont égales (par exemple si A1=B1, la MFC colore les deux cellules). Ce que je voudrais, c'est que quand les deux cellules sont vides, la MFC ne s'applique pas, donc que les cellules ne se colorent pas. Comme excel considère que deux cellules vides sont égales, elles se colorent. Comment faire pour que ce ne soit pas le cas?

Autre question, je ne suis pas sur que ce soit possible mais je tente ma chance. Je voudrais que lorsque la valeur d'une cellule est supérieure, inférieure ou égale à une autre, un 1 s'affiche dans une autre cellule. Par exemple :

si A1>B1 un 1 s'affiche en C1

si A1=B1 un 1 s'affiche en D1

si A1<B1 un 1 s'affiche en E1

et je voudrais si possible que les 1 s'additionnent. Par exemple:

si A2>B2 un 1 s'ajoute à celui de C1, donc que cela donne 2.

si A2=B2 un 1 s'ajoute à celui de D1, donc que cela donne 2.

si A2<B2 un 1 s'ajoute à celui de E1, donc que cela donne 2.

Et ainsi de suite, toujours de 1 en 1.

Merci pour votre aide.

Bonjour

Pour la MFC, mettre une formule : =ET($A1<>"";$A1=$B1) appliquée à ta plage Ax:Bx

Pour les valeurs, c'est du dénombrement

C1

=SOMMEPROD(($A$1:$A$20>$B$1:$B$20)*($A$1:$A$20<>""))

D1

=SOMMEPROD(($A$1:$A$20=$B$1:$B$20)*($A$1:$A$20<>""))

E1

=SOMMEPROD(($A$1:$A$20<$B$1:$B$20)*($A$1:$A$20<>""))

j'ai pris de A1 à A20 ; à toi d'ajuster à ton cas...

Merci beaucoup, ça marche parfaitement!

J'ai juste un petit souci, je n'arrive pas à adapter les formules sommeprod aux lignes. Pour les colonnes (par exemple si a1:a20>b1:b20) pas de problème. Donc ce que je voudrais c'est arriver à faire ceci (avec les cellules de mon tableau) :

si AG2>AH2 un 1 s'affiche en E2, si AG2=AH2 un 1 s'affiche en G2, si AG2<AH2, un 1 s'affiche en I2.

si AI2>AJ2, un 1 s'ajoute à celui de E2, si AI2=AJ2 un 1 s'ajoute à celui de G2, si AI2<AJ2 un 1 s'ajoute a celui de I2.

etc

il y a 19 "couples" par ligne, de la ligne 2 a la ligne 21 (de ag;ah à bq;br)

Pour être clair, pour chaque couple :

si première cellule > seconde alors un 1 s'affiche en E2

si première cellule = seconde alors un 1 s'affiche en G2

si première cellule < seconde alors un 1 s'affiche en I2

A chaque fois qu'un cas de figure se produit, un 1 s'ajoute (si par exemple le cas première cellule = seconde apparait 5 fois sur la ligne 2 parmi les 19 couples de la ligne, alors il y aura un 5 en G2, s'il apparaît 8 fois sur la ligne 3, alors 8 en G3, et ainsi de suite)

Pour chaque cellule des colonnes E, G et I, (des lignes 2 à 21), il faut une formule qui prenne en compte les 3 cas de figures possible de chaque couple.

J'espère avoir été clair, merci encore!

Bonjour,

Comme d'habitude ... avec un petit fichier joint ... tout s'éclaire ...

Voici le fichier joint avec le résultat que je veux obtenir (il n'y a que 3 lignes pour montrer le principe).

J'ai fait une petite erreur dans le message précédent, ce ne sont pas 19 mais 20 couples, de ae;af à bq;br.


Pour essayer d’être encore plus clair, j'aurais besoin de 3 formules qui puissent réponde à ces questions

Sur la ligne 2, combien de fois le cas de figure 1 se produit-il? (formule en E2)

Combien de fois le cas de figure 2 se produit-il? (formule en G2)

Combien de fois le cas de figure 3 se produit-il? (formule en I2)

Je rappelle les cas de figure, pour chaque couple :

1) première cellule > seconde

2) première cellule = seconde

3) première cellule < seconde

Idem pour les lignes 3 à 21. (Vous pouvez me dire juste les formules pour la ligne 2 et je l'adapterai aux autres lignes).

Merci beaucoup.

10huitzi.xlsx (9.85 Ko)

Bonjour,

La question que tu poses m'a l'air d'ètre bien éloignée du titre du sujet ...

Ci-joint une UDF à tester ...

En espèrant que cela t'aide ...

16huitzi.xlsm (18.12 Ko)

C'est bon j'ai réussi à trouver où mettre le code! J'ai également changé le titre de la discussion qui correspond plus à ce que je veux.

Maintenant j'aurais une dernière chose à vous demander, dans le même esprit mais (je pense) un peu plus compliqué. J'espère que ça ne nécessitera pas de changer le code déjà fait. J'aurais certainement du le demander avant mais je pensais qu'une formule suffirait.

Voici donc ce que je voudrais faire :

Par exemple si dans les couples des colonnes ae;af et de la ligne 2

  • si deux cellules ne sont pas égales (peu importe que ae2<af2 ou ae2>af2) et qu'une est égale à 0 et l'autre supérieure ou égale à 3, mettre un 1 en q2 et r2
  • si une est égale à 1 ou 2 et l'autre égale à 0, mettre un 1 uniquement en r2
  • si une est supérieure ou égale à 3 et l'autre supérieure à 0 (toujours à condition qu'elles ne soient pas égales) mettre un 1 uniquement en q2

La difficulté est qu'il faut lier deux colonnes à une ligne :

colonnes ae;af et ligne 2 =>résultats en q2 et r2

colonnes ag;ah et ligne 3=>résultats en q3 et r3

colonnes ai;aj et ligne 4 =>résultats en q4 et r4

etc jusqu'à colonnes bq;br et ligne 21 => résultats en q21 et r21.

En espérant que ce soit clair et pas trop compliqué à faire

Merci encore pour votre aide!

Bonjour,

Le principe d'une fonction personnalisée ... c'est que tu as besoin d'avoir cette fonction dans ton fichier ...

Function CasFig(rng As Range, x As Long)
Dim i As Long, j As Long, tot As Long
i = rng.Cells(1, 1).Row
For j = rng.Cells(1, 1).Column To rng.Cells(1, rng.Count - 1).Column Step 2
  If Cells(i, j) <> "" Then
    Select Case x
      Case 1
      If Cells(i, j) > Cells(i, j + 1) = True Then tot = tot + 1
      Case 2
      If Cells(i, j) = Cells(i, j + 1) = True Then tot = tot + 1
      Case 3
      If Cells(i, j) < Cells(i, j + 1) = True Then tot = tot + 1
    End Select
  End If
Next j
If tot > 0 Then CasFig = tot Else CasFig = ""
End Function

En espèrant que l'explication soit assez claire ...

Edit : Pour la matricielle ... qui va bien ... il faut que Tulipe intervienne ...

C'est bon j'ai réussi à trouver où mettre le code! Désolé pour le titre, c'est vrai qu'on s'éloigne du sujet mais je n'arrive pas à le changer...

Maintenant j'aurais une dernière chose à vous demander, dans le même esprit mais (je pense) un peu plus compliqué. J'espère que ça ne nécessitera pas de changer le code déjà fait. J'aurais certainement du le demander avant mais je pensais qu'une formule suffirait.

Voici donc ce que je voudrais faire :

Par exemple si dans les couples des colonnes ae;af et de la ligne 2

  • si deux cellules ne sont pas égales (peu importe que ae2<af2 ou ae2>af2) et qu'une est égale à 0 et l'autre supérieure ou égale à 3, mettre un 1 en q2 et r2
  • si une est égale à 1 ou 2 et l'autre égale à 0, mettre un 1 uniquement en r2
  • si une est supérieure ou égale à 3 et l'autre supérieure à 0 (toujours à condition qu'elles ne soient pas égales) mettre un 1 uniquement en q2

La difficulté est qu'il faut lier deux colonnes à une ligne :

colonnes ae;af et ligne 2 =>résultats en q2 et r2

colonnes ag;ah et ligne 3=>résultats en q3 et r3

colonnes ai;aj et ligne 4 =>résultats en q4 et r4

etc jusqu'à colonnes bq;br et ligne 21 => résultats en q21 et r21.

En espérant que ce soit clair et pas trop compliqué à faire

Merci encore pour votre aide!

Bonjour,

Content que tu aies pu trouvé où il faut placer les macros ...

Dès que j'ai un moment ... j'essayerai de comprendre ... ta nouvelle question ...

Ok merci beaucoup, je sais que ce que je demande est assez compliqué, j'ai essayé d'être le plus clair possible.

Je précise juste que, comme précédemment, les 1 doivent s'ajouter chaque fois qu'un cas de figure se produit.

bonjour

peiniblement ;et pas sur sur

avec les matricielles tridactyles

12huitzi.xlsm (17.46 Ko)

cordialement

Bonjour,

Comme Tulipe ... pas sûr ... pas sûr ...

Ci-joint la version 2 ... pour les Deltas en Colonne Q et R ...

A tester ... et à retester ... pour savoir si les décomptes des couples fonctionnent comme tu le désires ...

Au fait, Ruben, ... sans indiscrétion, à quoi peuvent servir ces décomptes assez alambiqués ....

8huitzi-v2.xlsm (20.19 Ko)

Merci beaucoup pour votre aide, mais je me suis rendu compte que j'ai mal expliqué ce que je voulais... vraiment désolé

Contrairement à ce que j'ai dis, l'ordre des cellules importe. Donc, par exemple si dans les colonnes ae;af :

ae2>af2 avec ae2 > ou = à 3 et af2 = 0 alors 1 en q2 et r2

ae2>af2 avec ae2 > ou = à 3 et af2 > 0 alors 1 en q2

ae2>af2 avec ae2 < 3 (donc ae2 = 1 ou 2) et af2 = 0 alors 1 en r2

pareil si ae3>af3, 1 en q3 et/ou r3 selon les mêmes cas que ci dessus.

si ae4>af4 1 en q4 et/ou r4 (toujours selon les mêmes cas, ceci étant valable de ae;af à bq;br).

en revanche, si ae<af (sur toute la colonne) 1 en q2 et/ou r2 selon les cas.

si ah<ag, 1 en q3 et/ou r3

si ai<aj, 1 en q4 et/ou r4

si ak<al, 1 en q5 et/ou r5

etc jusqu'à bq<br, 1 en q21 et/ou r21

Pour résumer, si première cellule>seconde, 1 dans les cellules correspondantes à la ligne des colonnes q et r (encore une fois selon les cas).

Si première<seconde, alors 1 uniquement en q2/r2 pour ae;af, q3/r3 pour ah;ag q4/r4 pour ai;aj et ainsi de suite jusqu'à q21/r21 pour bq;br.

Quant à savoir à quoi sert tout ça, c'est parce que je fais des classements sportifs avec des règles assez alambiquées, d'où la difficulté. Et ça m'apprend à utiliser excel!

Si ça vous parait trop dur, inutile de vous prendre la tête, vous m'avez déjà énormément aidé!

Bonjour,

Désolé ... mais pour moi ... ta nouvelle explication est encore moins claire que la précédente ...

Pourquoi ne pas joindre un fichier Excel explicatif et démonstratif ...et y décortiquer précisément une à une toutes tes étapes ............. pour tenter d'y voir une logique ...

Voila le fichier, j'espère que c'est plus clair comme ça!

Ici je ne montre le principe que sur ae;af mais c'est valable pour tous les couples de colonnes jusque bq;br.

Merci!

6huitzi2.xlsx (11.77 Ko)

Bonjour,

Merci pour ton exemple illustré ...

Si la vérification des cas est assez claire ... il y a une règle qui vraiment m'échappe ...

ae>af ... chaque fois qu'un cas est vérifié ... le résultat est afffecté à la ligne où se trouve le couple ...

MAIS

ae<af .... chaque fois qu'un cas est vérifié ... le résultat est afffecté à la ligne 2 et uniquement à la ligne 2 ...

Why ...???

Rechercher des sujets similaires à "pas appliquer mfc vides"