Rechercher : dans
Par :

Excel Conditionnelle

Dernière réponse le 12 jun 2008 à 14:37:21 gnizniz, le 23 mar 2005 à 21:45:17 
 Signaler ce message aux modérateurs

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!

Meilleures réponses pour « Excel Conditionnelle » dans :
Excel - Mises en forme conditionnelles illimitées VoirMises en Forme Conditionnelles Illimitées Introduction Principe Code Fichier joint Introduction La Mise en Forme Conditionelle (ou MFC) permet d'appliquer, à une cellule ou à plusieurs cellules sélectionnées, différents formats qui...
Mettre en forme les commentaires Excel VoirMettre en forme les commentaires Excel Vous souhaitez associer un commentaire explicatif (genre Pop-Up) à une cellule: vous positionnez votre curseur sur la cellule à commenter vous cliquez droit sur la cellule, puis sur "Insérer un...
Transformer un fichier Microsoft Excel (.xls) en PDF VoirTransformer en fichier PDF un fichier Microsoft Excel (.xls) Rien de plus simple ! Ouvrez votre fichier *.xls avec OpenOffice.org Réglez éventuellement la mise en page par le menu Format / Page... Dès lors, 2 solutions pour transformer en...
VBScript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (VBScript associe le mot clé true à...
Perl - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Tableur - Les expressions conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Les structures conditionnelles peuvent être associées entre elles. Pour pouvoir mener à bien...

1

jepi67, le 23 mar 2005 à 22:18:13
  • +1

Bonsoir,

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

=SI(RECHERCHEV(MaValeur;MaMatrice;1)=MaValeur;RECHERCHEV(MaV­aleur;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.

Répondre à jepi67

2

Armojax, le 24 mar 2005 à 08:24:20

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.

Répondre à Armojax

3

Sabrina, le 24 mar 2005 à 08:53:05

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

Répondre à Sabrina

4

Armojax, le 24 mar 2005 à 09:22:18

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.

Répondre à Armojax

5

random, le 24 mar 2005 à 09:33:16

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

Répondre à random

6

Armojax, le 24 mar 2005 à 09:45:19

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.

Répondre à Armojax

7

gnizniz, le 24 mar 2005 à 10:04:33

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.

Répondre à gnizniz

9

gnizniz, le 24 mar 2005 à 10:31:07

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.

Répondre à gnizniz

12

gnizniz, le 24 mar 2005 à 11:58:55

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?

Répondre à gnizniz

14

jepi67, le 24 mar 2005 à 19:08:14

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.

Répondre à jepi67

15

Armojax, le 24 mar 2005 à 21:46:52

Bonsoir jepi67,

La petite variante ci-dessous doit correspondre à ce que tu veux :

Function ADRCELL(Valeur, Matrice As Range) As String
    ADRCELL = "#N/A"
    For Each Cellule In Matrice
        If Cellule.Value = Valeur Then
            If Application.ReferenceStyle = xlA1 Then
                ADRCELL = Replace(Cellule.Address(), "$", "")
            Else
                ADRCELL = Replace(Cellule.Address(ReferenceStyle:=xlR1C1), "R", "L")
            End If
            Exit Function
        End If
    Next
End Function
Si la valeur demandée est trouvée, la fonction renvoie l'adresse de la cellule (dans le style A1 ou L1C1 selon l'option en cours). Si la valeur n'est pas trouvée, elle renvoie "#N/A".

Répondre à Armojax

8

random, le 24 mar 2005 à 10:23:34

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
elle est pas belle, la vie ?

Répondre à random

10

gnizniz, le 24 mar 2005 à 10:36:18

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?

Répondre à gnizniz

11

random, le 24 mar 2005 à 10:54:23

Avec les tableaux dynamiques la mise à jour est automatique
ou presque
données actualiser elle est pas belle, la vie ?

Répondre à random

13

Armojax, le 24 mar 2005 à 18:47:56

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.

Répondre à Armojax

17

jepi67, le 29 mar 2005 à 16:45:46

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.

Répondre à jepi67

16

gnizniz, le 24 mar 2005 à 23:22:09

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!

Répondre à gnizniz

18

gaza, le 13 mai 2008 à 15:41:08

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

Répondre à gaza

19

 GP13960, le 12 jun 2008 à 14:37:21

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

Répondre à GP13960