Pb boucle sous excel en VBA

Olive0185 Messages postés 17 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Voila 2 mois que je n'ai pas fait de macro et je suis coincé pour effectuer une boucle.
J'ai une liste de nom (sur la feuil1 colonne B), dont certain nom sont plusieurs fois dans liste, que je voudrais copier,sans doublons, sur la feuil2 colonne A. Tous les jours, j'ajoute des noms dans la liste feuil1, certain sont déja écrit d'autres sont nouveau.
Voici ma macro que j'ai créé

Sub RA()
Dim j As Long
j = 5

Sheets("Feuil1").Select
If Cells(j, 2).Value <> Cells(j, 2).Offset(-1, 0).Value Then
Selection.Copy
Sheets("Feuil2").Select
Range("A5").Select
ActiveSheet.Paste
Else
j = j + 1
End If
End Sub

Merci pour l'aide que vous allez m'apporter.
Olive
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    les cellules fusionnées sont à bannir dès que tu utilises VBA

    pour aller à ligne dans une cellule appui sur Alt+entrée
    1
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    sans boucle en utilisant les filtres
    p'tite démo à adapter:
    http://cjoint.com/data/jzmu3BRzF1_extraire_par_autofilter.xls

    dont voici la macro

    Sub Extraire_doublons()
    Dim lig As Long

    lig = Range("A2").End(xlDown).Row
    Range("A1").AutoFilter
    Range("A2:A" & lig).AdvancedFilter Action:=xlFilterCopy, Copytorange:=Sheets(2).Range("C1"), Unique:=True
    End Sub
    0
  3. Olive0185 Messages postés 17 Statut Membre 6
     
    OK merci ça marche.
    Mais, pas de chance il y a un "mais", j'ai un nom qui revient 2 fois, je pense que le filtrage ne s'effectue pas sur la ligne 5 mais plutot sur la ligne 6. Alors est-ce parce que ma ligne en-tête fait 2 lignes (fusion de cellule) ou parce que je commence mal mon filtrage.

    Macro adapté à mon besoin :

    Sub Extraire_doublons()
    Dim lig As Long

    lig = Range("B5").End(xlDown).Row
    Range("B4").AutoFilter
    Range("B5:B" & lig).AdvancedFilter Action:=xlFilterCopy, Copytorange:=Sheets(2).Range("A5"), Unique:=True
    End Sub

    Merci
    -1