Excel Conditionnelle

Fermé
gnizniz Messages postés 7 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 24 mars 2005 - 23 mars 2005 à 21:45
 Laetitia - 9 févr. 2010 à 18:43
Bonjour,

j'ai encore besoin de vous...

quelqu'un saurait-il me dire comment formuler une conditionnelle de telle sorte que : si la valeur d'une cellule est égale à une des valeurs d'une matrice alors...

Que cela ne vous empêche pas de faire de beau rêves...

Merci d'avance pour votre contribution!
A voir également:

7 réponses

jepi67 Messages postés 68 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 17 février 2010 55
23 mars 2005 à 22:18
Bonsoir,

Tu peux essayer la suivante, mais ta demande est un peu imprécise :

=SI(RECHERCHEV(MaValeur;MaMatrice;1)=MaValeur;RECHERCHEV(MaValeur;MaMatrice;2);"Une autre valeur SVP")

Si tu n'obtiens pas de réponse satisfaisante fait un tours sur le Forum Excel du site VériTi plutôt que sur un site pluridisciplinaire

Bon courage
Jepi67 vous salut.
La ténacité n'empêche courtoisie et modestie.
1
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528
24 mars 2005 à 08:24
Bonjour jepi67,

Je t'ai fabriqué une petite fonction : PARMI
Function PARMI(Valeur, Matrice) As Boolean
    PARMI = False
    For Each cellule In Matrice
        If cellule.Value = Valeur Then
            PARMI = True
            Exit Function
        End If
    Next
End Function
Pour savoir si la valeur "14" se trouve dans une matrice "Plage", par exemple, PARMI(14;Plage) te renvoie VRAI ou FAUX.
Tu peux donc écrire : =SI(PARMI(Valeur;Matrice);Choix1;choix2)
Essaie, et dis-moi si ça te va.
Ajx.
0
Sabrina > Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024
24 mars 2005 à 08:53
Merci beaucoup pour votre contribution, avec tout ça je devrais bien m'en sortir.
Cependant (interdiction de se moquer même si je suis blonde:-) je n'utilise habituellement que les fonctions basiques d'excel, je ne sais donc pas comment éditer une nouvelle fonction...
0
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528 > Sabrina
24 mars 2005 à 09:22
Bonjour Sabrina,

- Ouvre le classeur dans lequel tu veux utiliser cette fonction.
- Ensuite, fais : Outils/Macro/Visual Basic Editor
==> Tu te retrouves dans l'environnement de développement Visual Basic
Tu dois avoir, dans la partie gauche de ton écran, un volet qui ressemble à l'Explorateur Windows, intitulé : Projet - VBAProject (si ce n'est pas le cas, fais : Affichage/Explorateur de Projet)
Dans ce volet, tu dois apercevoir ton "Projet" :
VBA Project(Nom de ton Classeur)
Si tu développe ce projet, tu reconnais le nom de tes feuilles de classeur...
Donc :
- sélectionne la ligne VBA Project(Nom de ton Classeur), puis
- fais : Insertion/Module
==> Un module appelé Module1 apparaît dans l'explorateur
- copie la petite fonction que j'ai postée sur ce post
- colle-la dans le volet de droite de l'écran (partie entièrement blanche)
Et c'est tout. Tu peux fermer l'éditeur VBA et revenir dans la partie Excel de ton classeur.

La nouvelle fonction apparaît avec les autres fonctions standard d'Excel, dans la rubrique "Personnalisées".

Si ça ne colle pas, reviens...
Armojax.
0
Laetitia > Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024
9 févr. 2010 à 18:43
Super cette formule! Merci beaucoup. Moi j'ai presque le même problème en un peu plus compliqué :-p et je n'ai pas trouvé de réponse, sur aucun forum (en même temps j'ai peut-être mal cherché)
Je m'explique.
Je cherche une formule qui me permette de dire: si, dans une plage de données (A3:C3), il y a une donnée qui correspond à l'une des données présentes dans telle autre plage (U2:U8), alors renvoyer cette donnée (en D4 par exemple).

Evidemment, cela implique qu'il n'y ait pas de cas de conflit, par exemple, dans la plage A3:C3, qu'il n'y ait pas plusieurs valeurs présentes dans la plage (U2:U8) mais a priori c'est le cas.

En tout cas merci beaucoup pour votre aide!
0
=si(esterreur(rang(mavaleur;mamatrice;1));"pastrouvé";"trouvé)
0
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528
24 mars 2005 à 09:45
Bonjour random,

D'accord avec toi... si les valeurs de la matrice sont des nombres.
PARMI permet de rechercher également des strings dans tout type de plage...


Re Sabrina,

Si tu ne manipules que des nombres, la solution de random est excellente...
Ajx.
0
gnizniz Messages postés 7 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 10:04
Merci à tous. Effectivement vous m'avez fourni de très bonnes solutions et de si bonnes explications que j'ai réussi à les appliquer!!

Cependant en les aplliquant je me suis rendue compte que je n'avais pas résolu mon problème que je vais tenter de vous exposer plus clairement.

Sur une feuille 1 , j'ai une matrice "dates facture" à côté d'une matrice "conso journalière". En effet, de la date D1 à la date D2 j'ai une conso journalière x, puis de la date D2 à la date D3 j'ai une conso journalière y ....
Sur une feuille 2, j'ai créé une matrice "jours" avec tous les jours de l'année à côté de laquelle je veux afficher la "conso jounrnalière" correspondante.

In fine, le but est de calculer la conso mois par mois alors que j'ai des relevés de compteurs à des dates aléatoires

Je suis désolée si je ne suis pas claire mais j'ai du mal à transcrire mon problème sans les mains.
0
gnizniz Messages postés 7 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 10:31
J'ai trouvé comment vous exposé mon problème.
En fait, je voudrais que lorsque qu'une valeurs de la matrice "jours" (cellule A32 feuille 2 par ex) a été reconnue dans la matrice "dates facture" (celle A 63 feuille 1 par ex), alors la cellule B32 feuille 2 prenne la valeur de la cellule B 63 feuille 1, sinon la cellule B32 feuille 2 prenne la veleur de la cellule B 31 feuille 1.
0
gnizniz Messages postés 7 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 11:58
J'ai refléchi au sujet de ta première réponse qui me convient mieux que les tableaux dynamiques auxquels je ne suis pas du tout familiarisée.

=si(esterreur(rang(mavaleur;mamatrice;1));"pastrouvé";"trouvé)

L'idéal serait qu'à la place de "pastrouvé" s'affiche la valeur contenu dans la cellule de la même colone et de la ligne précédente que "ma valeur" et à la place de "trouvé" s'affiche la valeur de la cellule de la même ligne mais de la colonne adjacente de "mamatrice".

tu vois?
0
jepi67 Messages postés 68 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 17 février 2010 55
24 mars 2005 à 19:08
Bonjour à tous,

Très intéressante cette fonction personnalisée.

Est-ce que l'argument "trouvé" dans la formule (du post <12>) pourrait renvoyer l'adresse de la cellule lorsque la condition est VRAI ?

Jepi67 vous remercie et vous salut.
La ténacité n'empêche courtoisie et modestie.
0
random Messages postés 1612 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 30 mars 2006 155
24 mars 2005 à 10:23
tu rajoutes une colonne devant ta date
tu y mets la fonction=mois(demadate)
tu demandes le tri
puis sous total
ou tu utlises le tableau croisé dynamique
ou les fonctions de base de données
0
gnizniz Messages postés 7 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 10:36
Merci Random, mais pour ça je n'ai pas trop de difficulté.
Je viens de reformuler le problème peut me serais-je mieux fait comprendre.
En fait toute la difficulté de mon projet c'est d'automatiser des calculs que je sais faire de façon plus mannuelle sous excel mais que les personnes qui vont utiliser mon projet ne seront pas faire.
C'est pour cela que je dois rendre automatique la création d'une matrice jours avec dans la colonne voisine mais sur la même ligne la valeur "conso moyenne qui lui correspond" La suite des calculs ne me pose pas de problème, enfin pour l'instant...
Tu vois?
0
random Messages postés 1612 Date d'inscription vendredi 26 novembre 2004 Statut Membre Dernière intervention 30 mars 2006 155 > gnizniz Messages postés 7 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 10:54
avec les tableaux dynamiques la mise à jour est automatique
ou presque
données actualiser
0
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 528
24 mars 2005 à 18:47
Gnizniz,

Si j'ai bien compris, dans ta feuille 1 tu as dans une colonne des dates de relevés, et en correspondance dans la colonne d'à côté les consos correspondantes.
Dans ta feuille 2, tu as une colonne avec tous les jours de l'année, et tu veux mettre en correspondance les consos.

Essaie ça :
1) Dans ta feuille 1, sélectionne ta matrice de relevés (dates et consos) et donne lui un nom, Relevés, par exemple.
(Pour donner un nom : Insertion/Nom/Définir.../, entrer un nom, puis OK).

2) Dans ta feuille2, utilise RECHERCHEV dans les cellules de conso :
=RECHERCHEV(A1;Relevés;2)
(A1 : les dates de la colonne Jours)

Si RECHERCHEV trouve la date dans Relevés, il mettra la conso correspondante, sinon, il mettra la conso de la date précédente.

En espérant que c'est bien ça qu'il te faut.
Ajx.
0
jepi67 Messages postés 68 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 17 février 2010 55
29 mars 2005 à 16:45
Bonjour à tous,

Après une petite pause pascale je reviens sur ce fil en espérant que vous avez tous passé de bonnes fêtes.

Merci Armojax pour les fonctions de recherche qui marchent TB.

Pour ton dernier post à l'intention de Gnizniz, je propose de remplacer =RECHERCHEV(A1;Relevés;2) par une conditionnelle pour éviter d'afficher les consos de la date précédente, les jours ou il n'y a pas eu de relevé ou jours chômés, soit =SI(RECHERCHEV(A1;Relevé;1)=A1;RECHERCHEV(A1;Relevé;2);"Pas de relevé")

Jepi67 vous salut.
La ténacité n'empêche courtoisie et modestie.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gnizniz Messages postés 7 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 24 mars 2005
24 mars 2005 à 23:22
Merci à tous pour votre aide, ça fait sincèrement plaisir.
J'essaierai tout ça demain si mon maitre de stage m'en laisse le temps.
Sinon je vous dirais ce we parce que là je n'ai vraiment plus les yeux en face des trous!

Bon week end à tous!
0
BONJOUR
Je veut une fonction pour faire mes etats de rapprochement;
exemple: je veut que cette fonction detecte les monatnt eqiuivelent dans deux colone défirante
slautation
0
BOnjour,

Je dispose d'un tableau de suivi deformation avec des dates de recyclage. J'aimerais avoir une alerte de couleur 1 mois avant ll'échéance des dates de recyclage.
Jusqu'à présent la mise en forme conditionnelle ne m'avait posé de pb mais là comme je rentre des dates il n'y a rien à faire ca ne marche pas.

Merci d'avance. C'est très urgent
0