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 :

valeurs différentes dans une colonne


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut valeurs différentes dans une colonne
    Bonjour,
    Voila, j'ai une colonne qui contient des noms de famille. Chaque nom apparait plusieurs fois et la colonne est trié par ordre alphabétique donc ils sont tous regroupés.
    Je voudrais savoir si c'était possible de récupérer la valeur du 1er nom, puis la valeur du 2ème nom, puis la valeur du 3ème nom, et ainsi de suite.
    Je suis débutante en vb et j'ai vraiment besoin de votre aide.
    J'espere que j'ai été assez clair dans ce que je demaindais.
    Merci d'avance
    Cordialement

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,

    Pour distinguer des homonymes vous n'avez d'autre choix que soit ajouter le prénom derrière le nom ou alors utiliser une référence qui peut être un n° ou une abréviation mais en tout cas elle doit être unique. Dans ce cas on recherche sur la référence et pas sur le nom.
    Cordialement.

    RJ

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    As-tu quelque chose a nous proposer?
    Le but du forum n'est pas de faire mais d'aider.

    A partir de ton code, on pourra te donner des pistes.
    ++
    Minick

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Le problème c'est que je n'ai rien écrit encore et que je ne sais pas par quoi commencer.
    J'ai dans l'idée de créer une procédure qui me donnera la valeur et qui aura comme paramètre la ième valeur. Mais je n'arrive pas a écrire quelque chose dans cette procédure.
    Si vous pouviez juste me donner une piste pour que au moins je puisse écrire quelque chose.
    Merci d'avance

    Cordialement

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Re,

    Une des solutions pourrait etre de passer par un filtre elabore (cela suppose qu'il y a une ligne d'entete)
    supposons que les Nom sont en colonne A, en A1 l'entete et a partir de A2 les noms.
    Pour voir comme ca fonctionne va dans le menu Outils/Macro/nouvelle macro.
    Ensuite va dans le menu Données/ Filtrer / Filtre Elabore...
    Coche Copier vers un autre emplacement
    Plage, selectionne la colonne A
    Copier dans, selectionne C1 (par exemple)
    Coche Extraction sans doublons
    Valide
    arrete l'enregistreur et tu auras une base de code.

    Je le repete, c'est une des solutions possibles (via un filtre elabore), on fonction de ce que tu veux faire cela n'est peut etre pas la meilleur.

    A te relire
    ++
    Minick

  6. #6
    Membre éclairé Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Points : 879
    Points
    879
    Par défaut
    bonjour psoret et à tous,

    une autre solution possible est de passer par un tableau dynamique,
    j'ai supposé que les nom sont sur la Feuil1 colonne A et le résultat est mit en colonne G

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub ListeSansDoublon()
    Dim liste(), i As Integer
    With Sheets("Feuil1")
    ReDim Preserve liste(1)
    liste(1) = .Range("A1")
    For i = 2 To .Range("A65536").End(xlUp).Row + 1
      If IsError(Application.Match(.Range("A" & i), liste, 0)) Then
        ReDim Preserve liste(i)
        liste(i) = .Range("A" & i)
      End If
    Next
    .Range("G1").Resize(UBound(liste, 1&), 1&) = Application.Transpose(liste)
    End With
    End Sub
    isabelle

    Merci de m'aider à votre tour en indiquant si le problème est résolu.
    faite un clic sur le bouton en bas à gauche de la page.
    http://club.developpez.com/regles/#L4.12

  7. #7
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour psoret rjamin Minick sabzzz le forum je rejoins Minick un filtre bien plus simple!!! autremement une macro en utilisant Dictionary traitement sur la meme colonne A pour exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub es()
     Dim c As Variant, m As Object
         Application.ScreenUpdating = False
           Set m = CreateObject("Scripting.Dictionary")
             For Each c In Range("a2", Cells(Rows.Count, "a").End(xlUp))
               m(c.Value) = IIf(m.Exists(c.Value), m(c.Value) + 1, 1)
                 Next c
          Range("a2:a" & Cells.Find("*", , , , , xlPrevious).Row).ClearContents
          [a2].Resize(m.Count, 1) = Application.Transpose(m.keys)
          [a2:a65536].Sort Key1:=Range("a2"), Order1:=xlAscending, Header:=xlGuess
      End Sub
    SALUTATIONS

Discussions similaires

  1. [XL-2007] Compter le nombre de valeurs différente dans une colonne
    Par Mist-e-Fire dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/04/2013, 09h01
  2. Réponses: 1
    Dernier message: 22/05/2012, 19h15
  3. Réponses: 2
    Dernier message: 17/06/2010, 16h03
  4. valeur max dans une colonne
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/08/2007, 22h09
  5. Nombre de valeurs différentes dans une colonne
    Par KrusK dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/08/2005, 14h18

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