1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

Toutes versions recopier une celulle si plusieurs cellulles corespondent dans une collone

Discussion dans 'Forum Excel' démarrée par nicoph3, 10 Février 2019.

  1. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    bonjour, excusez moi déja pour le titre et pour la tentative d'explicationci dessous
    je cherche à recopier le mot d'une colonne correspondant à une ligne si les données sont identique

    par exemple :
    A1=lundi B1=08:00 C1=math
    A2=mardi B2=09:00 C2=anglais
    A3=mercredi B3=10:00 C3=sport
    ...
    A8=lundi B8=09:00 C8=gestion

    je souhaiterais que si j’écris dans une cellule disons E1 lundi et que dans E2 j'ecris 09:00
    ça écrit automatiquement gestion dans E3 et que si dans E1 j'ecris mardi et dans E2 j'ecris 09:00
    ça écrit automatiquement anglais dans E3.

    j’espère que vous arriverez a me comprendre malgres mes pietres explications

    merci
     
    Dernière édition: 10 Février 2019
  2. Chargement...

    Discussions similaires - recopier celulle plusieurs Forum Date
    recopier les celulles d'un tri Forum Excel 29 Janvier 2013
    Recopier automatiquement données dans une autre feuille Forum Excel 3 Janvier 2019
    XL 2016 recopier des lignes automatiquement Forum Excel 2 Janvier 2019
    Probleme pour recopier formule Forum Excel 18 Décembre 2018
    XL 2016 recopier une partie des cellules Forum Excel 31 Octobre 2018

  3. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Bonsoir @nicoph3,

    Voir le fichier joint.
    Formule matricielle en G1:
    Code (Visual Basic):
    =SIERREUR(INDEX(C1:C5;GRANDE.VALEUR(SI(SI(A1:A5=E1;B1:B5;"")=TEMPS(HEURE(F1);0;0);LIGNE(B1:B5);"");1));"")
    nota: vous auriez pu joindre un fichier exemple :cool:.
     

    Pièces jointes:

    nicoph3 aime votre message.
  4. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    bonjour , merci pour votre aide, ok je penserai à joindre un fichier en exemple la prochaine fois
    veuillez me pardonner je suis nouveau sur le forum

    j'ai peut etre mal choisi mon exemple je n'ai pas besoin d'un planning
    j'aurais tres bien pu prendre des fruits et légumes ou tout autre chose

    mais votre travail n'est pas pour autant perdu je me sers de + en + d'excel
    et j'ai déja à l'idée de l'utiliser et en + ca m'apprend des choses

    donc je vais changer mon exemple en piece jointe

    dsl si je t'ai fait perdre du temps et merci encore
     

    Pièces jointes:

  5. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    j'ai oublier de préciser que j'en ai besoin sur les cases du dessous également
    E2 F2 G2
    E3 F3 G3

    etc
     
  6. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Re @nicoph3,

    Pas de problème ;)

    Voir fichier joint...
     

    Pièces jointes:

    Dernière édition: 10 Février 2019
    nicoph3 aime votre message.
  7. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    bravo @mapomme en cherchant de mon coté j'avais réussi a faire de cette facon :

    =SI(SOMMEPROD(($A$2:$A$11=F3)*($B$2:$B$11=G3)*($C$2:$C$11))=0;"";(SOMMEPROD(($A$2:$A$11=F3)*($B$2:$B$11=G3)*($C$2:$C$11))))

    au début je comprenais pas pourquoi le chiffre trouveé n'etait pas bon et puis j'ai compris qu'il ajouter le doublon que tu avais mis en exemple.

    est ce que ton code est adaptable si on rajoute des colonnes ?
    et peut on le faire fonctionner si on a non pas 2 criteres comme dans l'exemple en mettant marque et model
    mais si on a que le model par exemple , ou ca complique trop les choses et il vaut mieux laisser 3 criteres quitte a laisser une collone vide.

    je t'ai mis une exemple en feuille 2

    merci beaucoup, je vais essayer de mon coté , et je veux bien un avis de ta part sur ma formule
    et meme si je me doute que la tienne et plus adapté que la mienne peux tu m'expliquer un peu stp ?

    Edit : quand je tente sur une nouveille feuille en copiant ta feuille vers une nouvelle ca me met :"la valeur que vous avez tapée n'est pas valide. Un utilisateur a restreint les valeurs que peut prende cette cellulle .

    dans le tableau B quand je veux ecrire une marque et un model

    *********************

    mais dans une autre feuille en copiant uniquement les valeurs et en rentrant
    cette formule basée sur la tienne j'arrive a chercher les résultats dans la collone des motos
    =SIERREUR(INDEX(C$2:C$11;EXP(LN(MAX((A$2:A$11=F11)*(B$2:B$11=G11)*LIGNE(A$2:A$11)))));(INDEX($L$2:$L$6;EXP(LN(MAX(($J$2:$J$6=F11)*($K$2:$K$6=G11)*LIGNE($J$2:$J$6)))))))

    par contre ca me met #nombre quand le resultat n'est pas bon , ce qui ne me dérange pas
    mais je suppose que c'est pas tres "propre" et je sais pas comment rajouté d'autres collonne
    et dans mon projet je vais en avoir plusieurs, peut etre existe il une autre facon de procédé

    I dont now , en tous cas j'ai remarqué que ta formule à déja l'avantage d'avoir moins de caractères ^^
     

    Pièces jointes:

    Dernière édition: 13 Février 2019
  8. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
  9. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Re @nicoph3 :),

    Pour deux critères ou plus, voir dans le fichier joint un cas général (avec trois critères).
     

    Pièces jointes:

    Dernière édition: 16 Février 2019 à 10:32
    nicoph3 et zebanx aiment cela.
  10. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    ok merci,

    • comment faire pour rechercher dans plusieurs tableaux ?

    est il de possible de
    • non pas mettre la première ni la dernière valeur trouvé mais de me signalé en résultat si il y a doublon
    • me signalé si les données écrites en G2 H2 I2 ne correspondent pas a un des tableaux au lieu de laisser vide
    pour ma derniere question suffit de mettre un mot choisi entre les guillement a la fin ?

    =SIERREUR(INDEX(D:D;PETITE.VALEUR(SI((A2:A17=G2)*(B2:B17=H2)*(C2:C17=I2)=0;"";LIGNE(A2:A17));1));"non trouvé")
     
    Dernière édition: 16 Février 2019 à 11:59
  11. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    par contre dans des lignes vides ca me met non trouvé également
    alors que je souhaite le mettre uniquement si les valeurs écrites ne corespondent pas
    et laissser vide si les cases sont vide mais bon c'est pas le + important ca reste un détail
     
  12. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    proprement parlant :
     

    Pièces jointes:

  13. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Re @nicoph3,

    Voir formule en H5 dans le fichier joint:
    Code (Visual Basic):
    =SI(NB.SI(G2:I2;"")>0;"";SI((NB.SI.ENS(A2:A4;G2;B2:B4;H2;C2:C4;I2)+NB.SI.ENS(K2:K4;G2;L2:L4;H2;M2:M4;I2))=0;"non trouvé"; SI((NB.SI.ENS(A2:A4;G2;B2:B4;H2;C2:C4;I2)+NB.SI.ENS(K2:K4;G2;L2:L4;H2;M2:M4;I2))>1;"doublons";SI(NB.SI.ENS(A2:A4;G2;B2:B4;H2;C2:C4;I2)=1;INDEX(D:D;SOMMEPROD((A2:A4=G2)*(B2:B4=H2)*(C2:C4=I2)*LIGNE(A2:A4)));INDEX(N:N;SOMMEPROD((K2:K4=G2)*(L2:L4=H2)*(M2:M4=I2)*LIGNE(A2:A4)))))))
    edit : bonjour @zebanx ;)
     

    Pièces jointes:

    nicoph3 aime votre message.
  14. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    ok excuse moi j'aurais du etre plus clair des le début mais je ne savais pas tres bien formulé comme tu as pu t'en rendre compte

    pour finir comment faire si je rajoute item9 10 11 et 12 en colonne P Q R S ?

    j'ai essayer :
    Code (Text):
    =SI(NB.SI(G2:I2;"")=3;"";
    SI((NB.SI.ENS(A2:A4;G2;B2:B4;H2;C2:C4;I2)+NB.SI.ENS(K2:K4;G2;L2:L4;H2;M2:M4;I2))=0;"non trouvé";
    SI((NB.SI.ENS(A2:A4;G2;B2:B4;H2;C2:C4;I2)+NB.SI.ENS(K2:K4;G2;L2:L4;H2;M2:M4;I2))>1;"doublons";
    SI(NB.SI.ENS(A2:A4;G2;B2:B4;H2;C2:C4;I2)=1;
    INDEX(D:D;SOMMEPROD((A2:A4=G2)*(B2:B4=H2)*(C2:C4=I2)*LIGNE(A2:A4)));
    INDEX(S:S;SOMMEPROD((P2:P4=G2)*(Q2:Q4=H2)*(R2:R4=I2)*LIGNE(A2:A4)));
    INDEX(N:N;SOMMEPROD((K2:K4=G2)*(L2:L4=H2)*(M2:M4=I2)*LIGNE(A2:A4)))))))
    mais ca me met "vous avez taper un nombre trop important pour cette fonction :(

    edit j'ai rajouté
    Code (Text):
    NB.SI.ENS(K2:K4;G2;L2:L4;H2;M2:M4;I2)
    que j'avais oublier mais ca marche pas non plus
     
    Dernière édition: 16 Février 2019 à 16:01
  15. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Re,

    1. il faudrait un fichier exemple
    2. je pense qu'il vaut mieux passer ensuite par une fonction personnalisée en VBA (les formules risquant d'être ingérables)
    A ce soir au plus tôt...
     
    nicoph3 aime votre message.
  16. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    re ,

    du coup j'ai mis 20 item en 5 tableau (ce qui se rapproche beaucoup + de la réalité du projet)
    et j'ai mis les cases à écrire en feuille 2

    à part si ce n'est pas possible , je pense qu'on est sur la dernière ligne droite

    je tiens a renouvellement mes excuses , je sais ce que je veux mais je n'ai pas su bien l'exprimer des le départ et j'ai abusé de ton temps
    et je tiens surtout a renouveler mes remerciement pour ton temps et la qualité de tes réponses malgré mes piètres explications.
     

    Pièces jointes:

  17. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Re @nicoph3,

    Avec une fonction personnalisée (écrite en VBA). Le code de la fonction est dans module1
    La fonction s'appelle ChercherDanstableaux.

    Ses arguments sont en nombre variables. Les trois premiers sont obligatoires:
    1. la plage des critères à vérifier
    2. le numéro de la colonne dans les tableaux de recherche qui contient la valeur à renvoyer
    3. un premier tableau où rechercher
    4. aucun, un ou plusieurs autres de tableaux où rechercher
    On va parcourir tous les tableaux ligne par ligne. Si les valeurs des premières colonnes d'une ligne sont égales aux critères, alors on a une correspondance et on renvoie la valeur de la colonne mentionnée en deuxième argument.

    Plusieurs cas se présentent:
    • les critères sont tous vides : on retourne le texte "Critères à vide"
    • Il n'y a aucune correspondance : on retourne le texte "non trouvé"
    • il n'y a qu'une seule correspondance : on retourne la valeur de la colonne indiqué en 2ème argument
    • il y a plus d'une correspondance : on retourne le texte "doublons"
    Voir exemple dans le fichier joint...
     

    Pièces jointes:

    nicoph3 aime votre message.
  18. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    woaw au top , petite question si je dois séparer les cases de recherche

    c'est a dire qu'on ecrit pas en B2 C2 et E2 mais en B2 F2 et H2 on formule ca comment ?
     
  19. mapomme

    mapomme XLDnaute Barbatruc

    Inscrit depuis le :
    1 Novembre 2011
    Messages :
    5191
    "J'aime" reçus :
    863
    Sexe :
    Masculin
    Habite à:
    Angers
    Utilise:
    Excel 2010 (PC)
    Re @nicoph3,

    Pour ce cas, j'utilise une fonction auxiliaire VersTableauBis(...) qui va rassembler les critères dispersés dans un seul tableau à une seule dimension. Le code de la fonction ChercherDansTableaux a été modifié pour traiter, non plus une plage de critères, mais un tableau à une dimension en entrée.

    Voir l'utilisation dans le fichier joint.

    Function ChercherDansTableaux(xCriteres, ColonneValeur As Long, Plage1 As Range, ParamArray plageN())
    • xcritères est un tableau à une seule dimension contenant les critères à remplir
    • ColonneValeur est la numéro de la colonne dont on va retourner la valeur si les valeurs des premières colonnes de la ligne correspondent aux critères
    • Plage1 est le premier tableau où on va rechercher les critères (ligne par ligne)
    • PlageN est un ensemble de tableaux supplémentaires dans lesquels rechercher les critères. PlageN contient un tableau, plusieurs tableaux ou encore aucun tableau (PlageN est absent)
    on retourne le texte :
    • "Critères à vide" si tous les critères sont vides
    • "non trouvé" si aucune ligne du et des tableaux de recherche ne vérifie les critères
    • "doublons" si plusieurs lignes du et des tableaux de recherche vérifient les critères
    • la valeur de la colonne numéro ColonneValeur de la ligne de correspondance si une et une seule ligne vérifie les critères.


    Function VersTableau(ParamArray Cellules())

    • Cette fonction renvoie un tableau à une dimension.
    • Ce tableau comporte les valeurs des cellules figurant en argument.
    • Les arguments sont des plages de cellules.
    • Pour un bon fonctionnement, il faut que chaque plage en entrée ne soit constituée que d'une seule ligne ou bien d'une seule colonne
    • On lit les plages en ligne de la gauche vers la droite
    • On lit les plage en colonne du haut vers le bas
    • Si une des plages d'entrée au moins n'est ni en ligne et ni en colonne alors une erreur se produit(#REF!)

    Le code est dans module1. Il est un petit peu commenté.
     

    Pièces jointes:

    Dernière édition: 17 Février 2019 à 13:05
    nicoph3 aime votre message.
  20. nicoph3

    nicoph3 XLDnaute Nouveau

    Inscrit depuis le :
    25 Janvier 2019
    Messages :
    16
    "J'aime" reçus :
    0
    mission accomplie ! merci beaucoup , bonne continuation.
     

Partager cette page