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 :

Définir des noms automatiquement


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut Définir des noms automatiquement
    Bonjour à tous,


    J'aimerai définir des noms, mais de façon automatique (j'en ai environ 1000 à faire)

    Je ne m'y connais pas du tout en macro, et j'aimerai savoir si quelqu'un pourrait me guider ?


    je vous mets un extrait de comment ce présente mon classeur excel
    FOURNISSEUR MARQUE
    ABEILLE SANS MARQUE
    ABEILLE SIROP
    BACARDI - MARTINI FRANCE 42 BELOW FEIJOA
    BACARDI - MARTINI FRANCE 42 BELOW FAERFA
    BACARDI - MARTINI FRANCE 42 BELOW FAZADA

    Un fournisseur peut être rattaché à une ou plusieurs marques.

    et j'aimerai trouvé une solution que de tout créé à la main.

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut,

    J'aimerai définir des noms, mais de façon automatique (j'en ai environ 1000 à faire)
    Des Noms sur quoi et pour quoi faire ?

    à bientôt
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    pour créer des listes de choix dynamiques via la fonction indirect

    je veux afficher dans une première liste tous mes fournisseurs, et dans une deuxième liste, les marques associées en fonction du fournisseur choisi

  4. #4
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Il va falloir être beaucoup plus clair dans l'explication de ton problème parce que là, je ne comprends absolument pas ce que tu souhaites.

    Est-ce que tu veux faire une génération aléatoire de noms uniques de fournisseurs ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Voila un code qui va créer les plages nommées à condition que les fournisseurs soient triés et se suivent
    Pas de contrôle si la plage est déjà existante

    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
    Dim i As LongDim strFournisseur As String
    Dim ShPlage As Range
     
     
    strFournisseur = Me.Range("A1").Value
     
     
    For i = 1 To Me.Range("A" & Rows.Count).End(xlUp).Row + 1
        If Me.Range("A" & i).Value <> strFournisseur Then
     
            ThisWorkbook.Names.Add Name:=Me.Range("A" & i).Offset(-1, 0).Value, RefersToLocal:=ShPlage
            Set ShPlage = Me.Range("B" & i)
            strFournisseur = Me.Range("A" & i).Value
     
        Else
            If ShPlage Is Nothing Then
                Set ShPlage = Me.Range("B" & i)
            Else
                Set ShPlage = Union(ShPlage, Me.Range("B" & i))
            End If
        End If
     
    Next i
    Jérôme

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    j'ai en colonne A, une liste dédoublonné de 1000 fournisseurs, et en colonne B, une liste de 3000 marques

    1 fournisseur peut avoir 1 ou plusieurs marques associées.

    je veux afficher dans un autre onglet via des listes deroulantes dynamiques dans une colonne A le fournisseurs (qui sera une liste déroulante de tous mes fournisseurs), et dans une colonne B, une liste déroulante dynamique de toutes mes marques :


    si je choisi le fournisseurs "ABEILLE", je veux pouvoir afficher dans ma colonne marque, uniquement les marques rattachées au fournisseur soit SANS MARQUE ou SIROP

  7. #7
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Pour la première liste, c'est pas compliqué.
    Tu sélectionnes toutes les cellules de tes fournisseur et tu leur donnes le nom "ListeFournisseurs" (Onglet Fonction > Définir un nom).
    Ensuite, tu sélectionnes la cellule dans laquelle tu veux placer ta liste déroulante.
    Tu vas dans Ruban Données > Validation des données.
    Pour "Autoriser", tu choisis "Liste".
    Tu laisses cochés les options "Ignorer si vide" et "Liste déroulante".
    Dans "Source", tu tapes "=ListeFournisseurs".

    Par contre, faire la même chose avec une liste variable en fonction du contenu d'une cellule, c'est beaucoup plus coton.
    La seule solution que je vois, c'est de mettre une macro liée à l'évènement Change de la feuille de calcul qui aille directement modifier la liste de la cellule de droite chaque fois que celle de gauche sera modifiée.
    Mais ça va être lourd en terme d'exécution et complexe en terme de codage.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    Menhir a dit
    Par contre, faire la même chose avec une liste variable en fonction du contenu d'une cellule, c'est beaucoup plus coton.
    La seule solution que je vois, c'est de mettre une macro liée à l'évènement Change de la feuille de calcul qui aille directement modifier la liste de la cellule de droite chaque fois que celle de gauche sera modifiée.
    Mais ça va être lourd en terme d'exécution et complexe en terme de codage.
    Eh bien en fait pas tant que ça !!!!!

    Voici donc mon astuce:
    1°) Créer une première liste (Là tout le monde est d'accord)
    2°) Récupérer la position dans cette liste de l'élément sélectionner et s'en servir pour charger une autre liste.

    Cela sous-entend plusieurs listes définies à l'avance

    Voici mon exemple joint : Exo-12_Liste_filtree.xls

    Car un exemple vaux mieux qu'un long discours. (le fichier est en format 2003 et il fonctionne très bien sous 2007. je ne l'ai pas tester en 2010 et 2013 mais je ne pense pas qu'il y ait des problèmes)
    Du temps ou j'étais formateur c'était l'un de mes exercice préférer que je faisait subir à mes élèves

    Dans mon exemple j'ai 5 listes mais je pense que pour notre ami cela risque d'être ... beaucoup plus, donc pas mal de travail en perspective

    Je n'ai malheureusement pas plus simple à proposer mais j'ai peur que cela soit quand même trop fort pour notre amis qui a dit :
    ... Je ne m'y connais pas du tout en macro, ...
    Si quelqu'un à une solution encore plus simple je suis preneur.

    à bientôt
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 138
    Points : 54
    Points
    54
    Par défaut
    Bonjour à tous,

    Merci de m'avoir aidé, mais j'ai opté pour créer les listes à la main.

    j'ai bien aimé ta macro pour afficher le résultat de ce que l'on cherche, mais celà serai trop compliqué de le faire (j'ai environ 13000 lignes à remplir)

    Je vais essayer de fouiller un peu pour voir s'il n'y a pas une façon plus rapide !

    Merci à vous

  10. #10
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Si tu veux t'y attaquer par VBA, il faudrait aller voir du côté de la propriété Validation de l'objet Range désignant la cellule qui contient la validation de données (la liste déroulante).
    Il faudra modifier sa propriété Formula1 en y indiquant la formule qui ne représente que les cellules que tu souhaites.
    Attention à les indiquer en références absolu (avec des $ si tu es en référence A ou sans parenthèses si tu es en références L1C1).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/02/2015, 13h54
  2. Réponses: 4
    Dernier message: 10/04/2008, 22h23
  3. Réponses: 4
    Dernier message: 26/03/2008, 09h43
  4. Réponses: 6
    Dernier message: 09/06/2007, 22h50
  5. [VB Excel] Problème avec le nom automatique des TCD
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/12/2005, 13h30

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