Sélectionner une plage de taille variable après avoir filtré les doublons

Vorens

XLDnaute Occasionnel
Bonjour,


Je souhaite pouvoir séléctionner une plage en colonne A allant de A2 à Axx (la taille selon le resultat du filtrage des doublons que je fais avant.

Comment puis-je séléctionner la plage, c'est a dire les valeurs restante après le passage d'un filtre anti doublons.

Ci-dessous un bout du code que j'ai fais, il manque la fin qui ne fonctionne pas encore, la partie qui séléctionne la plage

Code:
'Filtrer les doublons dans la commande
        Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
'Copie de la list des recettes


    NoLastCell = Range("a1").End(xlDown).Row
  
ligne1 = Range("a2").Select
ligne2 = Range("A" & NoLastCell).Select

range (ligne1:ligne2).select

merci de votre aide

Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Sélectionner une plage de taille variable après avoir filtré les doublons

Bonjour Vorens,
Essai ceci :
VB:
Sub filtre()
Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
NoLastCell = Range("a1").End(xlDown).Row
Range("A2:A" & NoLastCell).Select
End Sub
Cordialement
 

Vorens

XLDnaute Occasionnel
Re : Sélectionner une plage de taille variable après avoir filtré les doublons

Bonjour Efgé

Merci pour la réponce, cela fonctionne parfaitement !

J'ai une autre question à présent (oui j'ai toujours des questions) :)

J'ai une collonne listant des numéro d'alarme qui changement tout le temps, je cherche à savoir comment faire pour compter le nombre de fois que l'alarme 1200 intervients dans le tableau mais je ne sais pas à l'avance les numéros d'alarme qui vond aparaître mais je souhaite savoir combiens de fois chauqûe numéro apparaît dans la colonne. Connais tu une fonction qui peut faire sa ?

Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Sélectionner une plage de taille variable après avoir filtré les doublons

Re
Il y a suremnt des solutions, mais là il faudrait voir la structure de ton fichier (sans données confidentielles) pour savoir où sont tes numéros et où mettre la liste et les nombres.
A te re lire.
cordialement
 

Vorens

XLDnaute Occasionnel
Re : Sélectionner une plage de taille variable après avoir filtré les doublons

Re,

Mon fichier de base est beaucoup trop gros pour être posté en revanche je peux donner un auter fichier de test que j'ai réaliser pour test mes fonctions avant des les intergrer au projet principal.


Les alarmes sont listées sur la feuille 3 et c'est de cette liste que j'aimerais tier les différents numéro d'alarme et combiens de fois il apraraisse, ses informations serons ensuite copier dans une interface utilisateur mais les diférents manipulation peuvent etre directement intégrée dans la feuille 3. En gros j'aimerais pouvoir copier / coller un petit tableau résumant les alarmes de ce style:

Alarme 2000 est suvenue 12x
Alarme 123 est survenue 2x
etc

Merci encore pour l'aide

Cordialement
 

Pièces jointes

  • RechercheVExemple.xls
    206 KB · Affichages: 63
  • RechercheVExemple.xls
    206 KB · Affichages: 73
  • RechercheVExemple.xls
    206 KB · Affichages: 73
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Sélectionner une plage de taille variable après avoir filtré les doublons

Re
Regarde si tu peux te débrouiller avec ça:
VB:
Sub liste()
Dim D As Object, i As Long, Col As Long, ColDest As Long, F As Worksheet
Col = 1 'Mettre le numéro de la colonne ou se trouve les alarmes (A = 1, B = 2, C = 3, etc...)
ColDest = 2 'Mettre le numéro de colonne ou l'on va coller les alarmes sans doublon
Set F = Sheets("Feuil3") ' Mettre le nom de la feuille*
Set D = CreateObject("Scripting.Dictionary")
With F
    For i = 2 To .Cells(Rows.Count, Col).End(xlUp).Row
        D(.Cells(i, Col).Value) = D(.Cells(i, Col).Value) + 1
    Next i
    .Cells(2, ColDest).Resize(D.Count, 1) = Application.Transpose(D.Keys)
    .Cells(2, ColDest + 1).Resize(D.Count, 1) = Application.Transpose(D.Items)
End With
End Sub
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Sélectionner une plage de taille variable après avoir filtré les doublons

Re
Je n'avais pas vu ton edition avec le fichier exemple.
Comme je pense que tu as beaucoup d'alarmes, une autre version plus rapide:
VB:
Sub liste()
Dim D As Object, i As Long, Col As Long, ColDest As Long, F As Worksheet, Plg As Variant
Col = 1 'Mettre le numéro de la colonne ou se trouve les alarmes (A = 1, B = 2, C = 3, etc...)
ColDest = 2 'Mettre le numéro de colonne ou l'on va coller les alarmes sans doublon
Set F = Sheets("Feuil3") ' Mettre le nom de la feuille*
Set D = CreateObject("Scripting.Dictionary")
With F
    Plg = .Range(.Cells(2, Col), .Cells(Rows.Count, Col).End(xlUp)).Value
    For i = LBound(Plg, 1) To UBound(Plg, 1)
        D(Plg(i, 1)) = D(Plg(i, 1)) + 1
    Next i
    .Cells(2, ColDest).Resize(D.Count, 1) = Application.Transpose(D.Keys)
    .Cells(2, ColDest + 1).Resize(D.Count, 1) = Application.Transpose(D.Items)
End With
End Sub
 

Statistiques des forums

Discussions
312 177
Messages
2 085 977
Membres
103 078
dernier inscrit
diomy