IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Copie cellule sous condition


Sujet :

Excel

  1. #1
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut Copie cellule sous condition
    Bonjour,

    J'ai sur une feuille Excel nommée "Liste", une base de donnée contenant le nom des clients (colonne A), la marque du véhicule (colonne B), le modèle (col. C) et l'immatriculation (col. D).
    J'ai une feuille par marque de véhicule dans ce classeur (Peugeot, BMW, Renault,...)
    Je voudrais avoir une sorte de ventilation automatique avec copie du nom et de l'immatriculation du véhicule en fonction de la marque.
    Je m'explique, en ajoutant des lignes dans la feuille "Liste", j'aimerai que les noms et plaques d'immatriculations des clients se "copient" dans les autres feuilles. Par exemple si je rentre dans ma feuille liste un client avec une Peugeot, je voudrais que son nom et la plaque d'immatriculation se copient dans la feuille "Peugeot", pareil si c'est une BMW,...
    J'ai pensé à utiliser un TCD mais cette solution ne correspond pas à tous mes besoins. J'ai également essayé avec la fonction RECHERCHEV() mais cela ne fonctionne pas non plus, cette fonction me renvoie le nom du premier client et en tirant la formule j'ai toujours le même client qui s'affiche.

    Je vous remercie par avance de votre aide car je suis vraiment bloqué...

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 479
    Points : 3 865
    Points
    3 865
    Par défaut
    Salut

    Voici une solution. Dans ton onglet Liste tu ajoutes tes données et la feuille "renault" se met à jour avec une formule matricielle (à valider avec CTRL MAJ ENTER).

    Pour clients
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI(Liste!$B$1:$B$17;"renault")>=LIGNES(Liste!$1:1);INDEX(Liste!$A$1:$A$17;PETITE.VALEUR(SI(Liste!$B$1:$B$17="renault";LIGNE(Liste!$B$1:$B$17));LIGNES(Liste!$1:1)));"")
    Pour immatriculation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI(Liste!$B$1:$B$17;"renault")>=LIGNES(Liste!$1:1);INDEX(Liste!$D$1:$D$17;PETITE.VALEUR(SI(Liste!$B$1:$B$17="renault";LIGNE(Liste!$B$1:$B$17));LIGNES(Liste!$1:1)));"")
    Attention, j'ai encodé la formule pour une plage jusqu'à la ligne 17! A toi de modifier et d'étirer selon tes envies.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Je viens de tester et ça marche niquel!!!
    Un grand merci!
    Je veux bien une explication de ta formule par contre si ça ne te dérange pas!

  4. #4
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 479
    Points : 3 865
    Points
    3 865
    Par défaut
    Re-,

    NB.SI(plage;critère)

    Description : Permet de compter le nombre de cellules d'une plage qui répondent à un critère donné.

    plage : correspond à la plage de cellules dans laquelle on désire compter le nombre de cellules répondant au critère spécifié dans la formule
    critère : correspond à la condition qu'une cellule doit remplir pour être comptée par la formule


    PETITE.VALEUR(plage;n)

    Description : Renvoie la n-ième plus petite valeur d'une série de données. Il est possible de sélectionner une valeur en fonction de son rang. Ainsi, la fonction PETITE.VALEUR peut renvoyer la valeur la plus faible (rang 1), la deuxième valeur la plus faible (rang 2) et ainsi de suite.

    plage : correspond à la plage de données dans laquelle il faut ressortir la n-ième plus petite valeur.
    n : correspond au rang de la valeur à renvoyer.


    LIGNE(référence)

    Description : Permet d'obtenir le numéro d'une ligne.

    Référence : Correspond à la cellule pour laquelle vous voulez obtenir le numéro de ligne. Si l'argument référence est omis, la référence correspondra à la cellule dans laquelle la fonction LIGNE apparaît.



    INDEX(tableau;no_ligne;no_col)

    Description : Affiche une valeur contenue dans un tableau en fonction d'un numéro de ligne et de colonne.

    tableau correspond à la plage de cellule dans laquelle la recherche sera effectuée.
    no_lig correspond à la ligne du tableau dont une valeur doit être renvoyée.
    no_col correspond à la colonne du tableau dont une valeur doit être renvoyée.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Super merci c'est top. J'étais persuader de devoir passer par du VBA. Ta fonction reste aussi complexe remarque
    Encore merci!

  6. #6
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    En fait j'aurais une autre question. Serait-il possible qu'en créant une liste déroulante afin de choisir le nom du client, la marque ainsi que la plaque qu'on retrouve sur la même ligne mais en colonne B et C s'affichent automatiquement?
    D'avance merci!

  7. #7
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 479
    Points : 3 865
    Points
    3 865
    Par défaut
    Bonjour,

    Voici le fichier.

    J'ai créé un onglet "ListeDéroulante". Tu modifies la liste en A2 et les données B2 et C2 se mettent automatiquement à jour.

    J'ai d'abord créé un nom de plage dynamique. Cette plage s'appelle "Clients" et se met à jour en fonction des enregistrement que tu feras. J'ai créé la liste déroulante. Ensuite, j'ai utilisé RECHERCHEV pour les récupérations de données.
    Fichiers attachés Fichiers attachés

  8. #8
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    C'est ce que je recherchais
    Merci beaucoup!
    Toujousr aussi efficace ce forum!

  9. #9
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Encore une petite question finalement. Est-ce que c'est possible qu'une fois le client sélectionné dans "ListeDéroulante", celui-ci soit "surligné" ou coloré dans "Liste"?

  10. #10
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 479
    Points : 3 865
    Points
    3 865
    Par défaut
    Salut,

    Voici

    1. J'ai créé un nom (ChoixClient - obligé car ne fonctionne pas avec référence à une autre feuille) pour la cellule A2 de la feuille ListeDéroulante
    2. J'ai créé une MFC sur la ligne ainsi pour la ligne A2: D2

    La formule est "=$A2=ChoixClient"
    Fichiers attachés Fichiers attachés

  11. #11
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Je viens de tester cela marche parfaitement! Un grand merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Copie cellule sous condition d'une feuille sur une autre en VBA
    Par Natchway dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/01/2015, 18h12
  2. [XL-2010] Copie de cellules sous conditions en boucles
    Par viper37 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/07/2011, 17h36
  3. [XL-2003] Copie de cellules sous condition
    Par pheonix00fr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/11/2010, 23h03
  4. [XL-2007] copie de cellules sous conditions
    Par gaauthier dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/09/2010, 12h40
  5. colorer des cellules sous conditions
    Par coenonympha dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/07/2008, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo