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 :

creer une liste dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut creer une liste dynamique
    salut tout le monde

    bon, j ai un truc pas trop evident a faire et j avoue que je suis completement a la ramasse.

    En gros j ai une liste de secteur dans une colonne qui se repettent, c'est a dire par exemple il peu y avoir 3 Banque, 2 Services publics, 5 loisirs et je ne sais quoi encore.

    je voudrais donc savoir si par l intermediaire d une macro, il, etait possible de faire un petit trie de cet liste pour m'en ressortir une autre avec un seul secteur a chaque fois

    sachant que cette liste est situé dans une colonne genre colonne A par exemple
    Et que la nouvelle liste suite de la macro sortent en C

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Par défaut
    Bonjour,

    Un peu plus de détails et peut-être un fichier joint ne serait pas du luxe...

  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut
    malheureusement je ne pe pas transmettre de piece jointe, je vais donc tenter d expliquer plus simplement ce dont j ai besoin:

    Dans la colonne A d'un classeur excel, j ai une suite de mot qui peuvent se repeter et tout ca dans le desordre. C est a dire:

    A1: Chimie
    A2: Automobile
    A3: Industrie
    A4: Chimie
    A5: Services
    A6: Banque
    A7: Banque
    A8: Chimie
    Et cela continue sur plusieurs lignes...

    On remarque que la Chimie sort 3 fois, que la banque 2 fois

    Il me fodrai une macro qui me permette de trier ca, c'est a dire une nouvelle liste avec les mots mais qui cette fois ne sont cités qu une seul fois.

    j espere que je suis plus clair

    Merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,
    je crois qu il y a de nombreuse reponse a ce sujet
    dans la recherche tape liste sans doublon ou trie sans doublon
    tu devrai trouver assez facilement ton bonheur

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Par défaut
    Par formule, formule matricielle à valider par Ctrl+maj+entrée et à tirer vers le bas
    C1 doit rester vide...
    =INDEX($A:$A;MIN(SI(Nom<>"";SI(NB.SI(C$2:C2;Nom)=0;LIGNE(Nom)))))&""



    Par macro:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    Option Explicit
     
      Sub epurer ()
     
      Dim triage As Collection
      Dim nbre As Long, cptr As Long
     
      'ActiveSheet.Unprotect
      Application.ScreenUpdating = False
     
     
      nbre = Application.CountA(Range("A:A"))
      Set triage = New Collection
     
      On Error Resume Next
      cptr = 1
      While cptr <= nbre
     
              triage.Add Cells(cptr, 1).Value, CStr(Cells(cptr, 1).Value)
              cptr = cptr + 1
      Wend
      On Error GoTo 0
     
      nbre = triage.Count
     
      ' Ecrit la zone épurée (ici dans des cellules mais peut-etre adapté à des listbox et combobox)
      Range("C:C").ClearContents
      cptr = 1
      While cptr <= nbre
          Cells(cptr, 1) = triage(cptr)
          cptr = cptr + 1
      Wend
     
      'ActiveSheet.Protect
     
     
      End Sub

    En espèrant que

    Edit: excuses moi Patbou, je n'avais pas rafraichis...

  6. #6
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut
    En espèrant que
    merci mon cher michel tu m as sorti d une grosse prise de tete cela fonctionne parfaitement

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Par défaut
    peut être un peu tard...
    une toute simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Extraire_doublons()
    Dim lig As Long
     
    lig = Range("A2").End(xlDown).Row
    Range("A1").AutoFilter
    Range("A2:A" & lig).AdvancedFilter Action:=xlFilterCopy, Copytorange:=Range("C1"), Unique:=True
    End Sub

  8. #8
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Par défaut
    Il n est jamais trop tard

    Merci beaucoup

Discussions similaires

  1. [C#] Comment créer une liste d'image dynamiquement ?
    Par gwenhael dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/09/2006, 11h30
  2. Réponses: 1
    Dernier message: 16/01/2006, 17h36
  3. Créer une liste avec taille inconnue
    Par C_C dans le forum Prolog
    Réponses: 3
    Dernier message: 19/11/2005, 12h46
  4. Compiler et créer une librairie dynamique en C
    Par fidififouille dans le forum Linux
    Réponses: 3
    Dernier message: 30/11/2004, 16h36
  5. [MFC] creer une liste avec des check????
    Par ginounet dans le forum MFC
    Réponses: 4
    Dernier message: 16/06/2004, 11h47

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