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

Macros et VBA Excel Discussion :

Création d'une classeur générant un code suivant des critères


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut Création d'une classeur générant un code suivant des critères
    Bonsoir, dans le but de ma formation (BTS) je doit réaliser une étude et celle-ci porte sur la codification d'un poste.

    Pour être concret, l'entreprise produit X modèles de produit et j'aimerais entre autre crée une base de donnée suivant des critères tels que :

    - l'année de réalisation
    - le modèle (par exemple : modèle bois, modèle pvc, modèle aluminium)
    - les options

    etc..

    Me débrouillant avec les outils de bases, j'ai commencer une version test de mon étude dans un classeur, malheureusement je me retrouve bloquer.
    Dans un premier temps j'ai prit la décision de partir sur un tableau croisé dynamique mais n'y arrivant pas j'ai abandonner l'idée et je suis partie sur la création de " bouton défilant " mais je n'y arrive pas non plus! J'arrive à obtenir un code mais celui-ci ne correspond pas à ce que je veut.

    Voici par image ce que j'essaye de vous faire comprendre.

    Nom : 1.png
Affichages : 127
Taille : 5,3 Ko

    Nom : 2.png
Affichages : 132
Taille : 19,2 Ko

    Base de donnée :

    Nom : 3.png
Affichages : 128
Taille : 28,7 Ko

    J'ai tenter de sélectionner tout les 2004 ensemble mais sans succès puisque c'est la cellule que je nomme..

    Je vous remercie d'avance, cordialement, Fred.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 173
    Par défaut
    Bonjour,

    je ne suis pas sûr d'avoir compris ton problème. Mais si tu prends la valeur de l'item sélectionné dans ta liste déroulante et que tu retranche 2003, tu n'obtiens pas ce que tu veux ?

    Par exemple l'utilisateur choisit un 2004 (que ce soit le premier ou le centième) et toi tu prends Item.Value - 2003 et donc ça fait 1
    S'il choisit un 2005, tu fais item.value -2003 et ça fait 2.

    C'est ça ton problème ? Ou j'ai rien compris ?

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    Salut, merci de ta réponse rapide.

    Pour faire simple je voudrais définir par exemple toutes les cellules 2004 par un chiffre ou une lettre.
    De même pour 2005, 2006 mais aussi Modèle 1, 2, 3 etc.. (voir "IMG base de donnée")

    Pour l'instant il y à plusieurs 2004 hors le premier 2004 = 1, le second = 2 etc.. et donc le premier 2005 au final vaut 20 peut-être bien. J'aimerais donc définir les cellules, car j'ai choisie comme " cellule varier " via la macro, celà me génère un code hors dans le principe c'est ce que je veut mais j'aimerais personnalisé le code si on peut dire sa car comprenez moi bien qu'il y à en 2004 un modèle différent du modèle suivant ce qui génère un code différent au final.

    Par exemple :

    - 2004/Modèle 1/Déco 1 = 1/1/1
    - 2005/Modèle 1/Déco 1 = 2/1/1

    Et si il est possible par exemple de définir 2004 par une lettre, faite moi part de l'astuce

    Exemple :

    - 2004/Modèle 1/Déco 1 = A/1/1

    Cordialement, Fred.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je n'ai quasiment rien compris à ton problème.

    Le peu que j'ai compris :
    Tu veux pouvoir, dans des listes déroulantes, choisir une année, un modèle et une déco.
    Dans un second temps, il faudrait que ce choix année/modèle/déco affiches trois codes correspondant.
    C'est bien ça ?

    Commence par créer trois listes, chacune de deux colonnes : une liste année, une liste modèle et une liste déco.
    Dans chacune de ces liste, la colonne 1 indiquera le libellé et la colonne 2 le code.

    Sélectionne tous les libellé du tableau années et donne leur le nom "Lib_annee".
    Pour donner un nom : Onglet Formule > Définir un nom.
    Tu fais la même chose pour les autres tableaux en donnant les noms "Lib_modele" et "Lib_deco".

    Tu places dans les trois cellules où tu veux faire la saisie une validation de données.
    Ruban données > Validation de données > Autoriser = Liste > Source "=Lib_annee"
    Tu fais la même chose dans les cellules d'à côté avec Lib_modele et Lib_deco.

    Là, tu as déjà la saisie. Il ne reste plus qu'à transformer les saisies en code.

    Pour ça, dans une autre cellule, tu places une fonction RECHERCHEV qui va rechercher l'année dans ton tableau de des années et renvoyer le code correspondant.
    Même chose pour les deux autres données avec les deux autres tableaux.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 173
    Par défaut
    D'accord avec Menhir, c'est pas très clair tout ça. Je sais pas qui a mis dans sa signature qu'une question bien formulée c'est 100% de la réponse, mais c'est clair qu'il y a du vrai.

    Bon voici une piste à partir de la façon donc j'ai compris le problème (interprétation personnelle);

    Tu ouvre un classeur vierge et tu mets une ComboBox.
    En C14:C22, tu mets :
    2005
    2004
    2004
    2005
    2005
    2005
    2005
    2005
    2006

    Puis dans le code de ta feuille, tu mets :

    Option Explicit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Sub toto()
        Dim plage As Range
        Dim cellule As Range
        Set plage = Range(Range("C15"), Range("C15").End(xlDown))
     
        For Each cellule In plage
            ComboBox1.AddItem (cellule.Value)
        Next cellule
    End Sub
     
    Private Sub ComboBox1_Click()
        Debug.Print ComboBox1.ListIndex
        Debug.Print ComboBox1.List(ComboBox1.ListIndex)
        Debug.Print ComboBox1.List(ComboBox1.ListIndex) - 2003
        Debug.Print CodeAnnee(ComboBox1.List(ComboBox1.ListIndex) - 2003)
    End Sub
     
    Function CodeAnnee(ByVal nombre As Integer) As String
        If nombre = 1 Then
            CodeAnnee = "A"
        ElseIf nombre = 2 Then
            CodeAnnee = "B"
        Else
            CodeAnnee = "C"
        End If
    End Function
    Ensuite, tu lances la Sub toto(), puis tu sélectionnes un élément de ta ComboBox. Dans la fenêtre Exécution le Débug.Print fait apparaitre ce que j'ai compris que tu cherches à faire (mais est-ce ce que tu cherches à faire ? )

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Bonjour,

    pour transformer en lettre il y a plus simple avec la fonction Chr$

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    Je vais reexplique ce que je rechercher histoire qu'on se lance sur le même projet.

    Il existe des années, suivant elle il existe plusieurs modèles et enfin dans un modèle il existe plusieurs déco.

    Par exemple : 2004, R5, Rouge et 2004, R5, Verte.

    Ce qui fait trois critère : année, modèle, déco.

    Je veut donc suivant ces 3 critère que cela génére un code comme 1/1/1 pour 2004/Modèle 1/Déco 1.

    Je sais utiliser excel sans être un expert et vos code " Vba " je n'en est aucune connaissance mais si il faut absolument connaître sa alors j'apprendrais.

    Voilà j'ai fait au plus simple possible, en espérant que sa convienne.

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par tma2012cauret Voir le message
    Ce qui fait trois critère : année, modèle, déco.
    Je veut donc suivant ces 3 critère que cela génére un code comme 1/1/1 pour 2004/Modèle 1/Déco 1.
    C'est exactement ce que fais la procédure que j'ai décrit. Tu as pris la peine d'essayer ?

  9. #9
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    Ddans mon premier message il y a ma base de donné avec les listes comme tu a demander.
    J'ai surtout voulu reexpliquer du fait que personne ne semblait avoir compris, merci encore.

    Bonsoir, j'ai avancer un peu!
    En effet je bloque à ta dernière instruction avec la fonction " RECHECHEV ".. J'ai chercher multiples tutoriel sur internet mais sans succès du fait que c'est pas pour la même utilisation que moi.

    Je vous montre donc par IMG où je suis rendu, j'aimerais que vous m'indiquiez quelle cellule sélectionner (valeur chercher, table matrice, no index_col)

    Nom : fred.png
Affichages : 118
Taille : 32,5 Ko

    Merci d'avance, cordialement.

  10. #10
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par tma2012cauret Voir le message
    En effet je bloque à ta dernière instruction avec la fonction " RECHECHEV ".. J'ai chercher multiples tutoriel sur internet
    Tu as pensé, plus simplement, à regarder dans l'aide de Excel ?

  11. #11
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    Si bien sûr mais sans succès, c'est pas dans le même but que moi donc peu de concordance! A chaque fois il existe 3 colonne pour 1 critère.

  12. #12
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut

    Je ne comprends pas ce que tu veux dire par "c'est pas dans le même but".
    L'aide n'a pas de "but", elle explique juste la syntaxe de la fonction de manière générique.

  13. #13
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    La syntaxe de la fonction demande 3 donnees et je suis incapable de les choisir dans MON tableur qui na rien avoir de prés ou de loin avec l'aide excel. C'est pour sa que j'ai reposter un msg disant que je bloque ici.

  14. #14
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Dans l'aide Excel, il est écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RECHERCHEV(valeur_cherchée; table_matrice; no_index_col; [valeur_proche])
    La suite expliquant précisément ce que représente chacun de ces paramètres.

    Alors ? C'est quoi que tu ne comprends pas dans ces données et dans leur explication ?

  15. #15
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    J'ai mis par img ma base de donner, faudrait simplement que tu me dise quoi prendre par rapport a la syntaxe car pour toi sa parait évident mais pas pour moi c'est bien pour sa que j'ai poster un msg ici ..

    EDIT 13h26 :

    J'ai réussie mais je ne comprend pas l'intérêt, sa ne reporte que le chiffre de la colonne code.
    Voici par image ce que sa donne et ce que j'attend comme explication.

    Nom : fredo.png
Affichages : 105
Taille : 173,8 Ko

    Je vous remercie d'avance.

  16. #16
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    Ci-joint le fichier excel, j'ai mit en application toutes les aides de toi Menhir mais après je bloque, peut-être avec le fichier en aide sa aidera plus à comprendre mon problème qui sais.
    Fichiers attachés Fichiers attachés

  17. #17
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par tma2012cauret Voir le message
    mais après je bloque
    On peut vraiment dire que tu fais de gros efforts pour t'expliquer...

    peut-être avec le fichier en aide sa aidera plus à comprendre mon problème qui sais.
    Une autre façon de dire "faites le travail à ma place, moi j'ai autre chose à faire".

  18. #18
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 17
    Par défaut
    Tu cherche un peu la petite bête, sa partait d'une bonne intention de joindre le fichier.

    Tu ma expliquer des démarches que j'ai appliquer, une fois appliquer je ne sais pas par quoi continuer etant donner que sans ces explications je serait encore moins loin dans l'avancer de mon projet. J'ai donc appliquer tes explications comme je te les dit plus haut mais je suis bloquer du fait que lorsque je choisie dans le bouton défilant il s'affiche toujours presque 10 " 2004 " et non 1 " 2004 " ce qui est le problème depuis le début.

    Voilà, en espérant que tu ne le prenne pas mal cet fois ci, j'ai peut-être été trop simpliste dans mon message précédent mais mon intention n'était pas de donner le boulot à un autre au contraire je préfère comprendre

    Merci.

Discussions similaires

  1. Création d'une webForm par le code
    Par pipleton dans le forum Visual Studio
    Réponses: 1
    Dernier message: 15/06/2012, 08h22
  2. Réponses: 12
    Dernier message: 13/08/2008, 18h04
  3. Réponses: 2
    Dernier message: 22/08/2006, 20h24
  4. [VB.NET] Probleme de création d'une picturebox dans le code
    Par stringman62 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/02/2006, 17h56

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