Etant donné qu'il s'agit de mon 1er message de l'année je vous souhaite avant tous une belle et heureuse année !
Une année sans soucis sans serait pas mal !!
Je vous pose mon 1er
J'ai dans le fichier en B2:B61 des noms dans lequel il peut y avoir des cellules vides, je souhaiterais les copier sans vide et sans doublons en A2:A61
le fait de filtrer ta colonne B et d'en mettre le résultat en colonne A, efface tout ce qu'il y a dans cette A...
Si ta zone de base de donnée est en C, ton crtèrère en B, ton résultat peut être lui en A
Ici j'ai mis la zone des données en C, le critère de recherche en B1 et résultat sous A1
tu as donc NomPrénom NomPrénom NomPrénom en A1,B1,C1 et les données sous C1
Bonjour Gosselin
Merci pour ta réponse
Je comprends à peu près ta réponse mais le code provient d'une macro exécutée en automatique.
Ce que tu me dis est que :
Colonne C : j'ai mes données
Colonne B : mes critères
Colonne A : mon résultat
Hors moi je n'ai pas de critères
J'ai simplement une liste en "B2:B61" que je souhaite extraire sans vide est sans double en "A2:A61"
Option Explicit
Sub Filtrer_sans_vide_sans_doublon()
Columns("b:b").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("a1" _
), Unique:=True
Columns(1).SpecialCells(xlCellTypeBlanks).Delete
End Sub
Une autre façon de traiter en amont les cellules vides (avec un tri)
Code:
Sub Macro1()
With Range("B1:B61")
.Sort Range("B1:B61"), xlAscending, , , , , , xlYes
.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("A1"), Unique:=True
End With
End Sub
NB: 00 (meilleurs vœux ) Suggestion:
En cas d'absence de cellules vides, ajouter à ton code On Error Resume Next
sinon ta macro plantera si en lieu et place de Columns(1), on indique Range("B1:B61")
ou dans le cas pas forcément si rare de disposer d'une colonne B entièrement non vide
(plus rare quand même si Excel 2010 ou 2013 mais ici (Excel 20003) on peut avoir vite fait de remplir 65536 cellules )