Extraire plusieurs CP d'une liste

Bonjour,

Je sollicite à nouveau votre aide toujours précieuse.

J'ai une liste de noms avec les codes postaux, et je dois extraire uniquement que certains codes postaux (ex le 27200, 27930, 28000 et 45000) Ma question est, peut on le faire en une seule fois ?

Par avance merci de votre aide

Salut,

il te suffit de cliquer sur la petite flèche juste à côté de l'intitulé de ta colonne "ZIP" et de sélectionner uniquement les codes qui t'intéressent. Les autres seront automatiquement cachés

Bonjour Kassou, Rékiss, le forum,

je dois extraire uniquement que certains codes postaux (ex le 27200, 27930, 28000 et 45000) Ma question est, peut on le faire en une seule fois ?

Un essai par macro:

  • On filtre suivant tes 4 critères
  • On transfert les lignes filtrées sur la feuille "Résultat"
Spoiler
Sub CopieSuivantCritères()
 Dim dl1 As Long, dl2 As Long

  Application.ScreenUpdating = False
  Application.DisplayAlerts = False

   With Sheets("Résultat")
    dl2 = .Range("A" & Rows.Count).End(xlUp).Row + 1
    If dl2 > 2 Then .Range("A2:C" & dl2).ClearContents: dl2 = .Range("A" & Rows.Count).End(xlUp).Row + 1
   End With

   With Sheets("Operation _ Fitting Advance...")
    dl1 = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("A2:C" & dl1).AutoFilter field:=2, Criteria1:=Array("27200", "27930", "28000", "45000"), Operator:=xlFilterValues
    .Range("A2:C" & dl1).SpecialCells(xlVisible).Copy Sheets("Résultat").Range("A" & dl2)
    '.Range("A2:C" & dl1).SpecialCells(xlVisible).Delete
     If .FilterMode = True Then .ShowAllData
   End With

   Sheets("Résultat").Activate

  Application.ScreenUpdating = True
  Application.DisplayAlerts = True
End Sub

Cordialement,

Bonsoir xorsankukai,

C'est tout à fait ça sauf que mon fichier contient plusieurs milliers de lignes et que j'ai plusieurs centaines de CP à extraire, il n'est donc pas pratique de saisir dans VBA tous les CP dont j'ai besoin.

Mais merci de ton aide

dizaines de CP et non centaines

Re,

Merci pour ton retour,

j'ai plusieurs centaines dizaines de CP à extraire

Ils sont où ? dans une liste ?

Voici un nouveau test....

source:.....https://www.excel-downloads.com/threads/vba-filtrer-sur-une-liste-de-valeurs-dynamiques.188003/

  • J'ai rajouté un onglet critères
  • Tu mets tes codes postaux à extraire en colonne A (à partir de A2)
  • Tu exécutes la macro
Spoiler
Private Sub CommandButton1_Click()

 Dim dl1 As Long, dl2 As Long, c As Range
 Dim Arr()

  Application.ScreenUpdating = False
  Application.DisplayAlerts = False

   With Sheets("Résultat")
    dl2 = .Range("A" & Rows.Count).End(xlUp).Row + 1
    If dl2 > 2 Then .Range("A2:C" & dl2).ClearContents: dl2 = .Range("A" & Rows.Count).End(xlUp).Row + 1
   End With

   With Sheets("Critères").Range("A2:A" & Sheets("Critères").Range("A" & Rows.Count).End(xlUp).Row)
      ReDim Arr(1 To .Rows.Count)
       For Each c In .Cells
        a = a + 1
         Arr(a) = "=" & c.Value
       Next
    End With

    With Sheets("Operation _ Fitting Advance...")
     dl1 = .Range("A" & Rows.Count).End(xlUp).Row
           .Range("A2:C" & dl1).AutoFilter Field:=2, Criteria1:=Arr, Operator:=xlFilterValues
           .Range("A2:C" & dl1).SpecialCells(xlVisible).Copy Sheets("Résultat").Range("A" & dl2)
           '.Range("A2:C" & dl1).SpecialCells(xlVisible).Delete
        If .FilterMode = True Then .ShowAllData
    End With

   Sheets("Résultat").Activate

  Application.ScreenUpdating = True
  Application.DisplayAlerts = True

End Sub

Bonne soirée,

Bonjour xorsankukai,

Super, je te remercie beaucoup

Bonne journée

Bonjour,

Je vais corser la chose .... càd est ce qu'il est possible d'extraire tous les cp d'un même département - ex : je veux extraire tous les cp du département 10 (10001, 10002, 1003 etc.... )

Est ce que c'est possible ?

Bon, il m'a suffit de mettre une * après les 2 premiers chiffres.

Encore merci

Bonjour xorsankukai,

Je viens de m'apercevoir que dans l'onglet Critères, je peux mettre que 2 cp... au delà ça ne fonctionne plus.... j'ai regardé la macro mais je ne vois pas ou on peut changer cela.... Aurais tu une idée

Merci d'avance

Re,

Bon, il m'a suffit de mettre une * après les 2 premiers chiffres.

Effectivement, j'avais aussi fait l'essai avec *, mais j'avais un bug si plusieurs valeurs saisies avec *,

On peut essayer de ruser ainsi:

  • on conserve l'onglet "critères" et sa colonne A, on rajoute une colonne D (Départements)dans la feuille "Operation _ Fitting Advance..."(une formule extrait les 2 premiers chiffres de gauche).
  • Si tu rentres des valeurs à 2 chiffres dans les critères, on filtre sur la colonne D
  • Si tu rentres 5 chiffres, on filtre sur la colonne B (c'est la cellule A2 qui détermine le filtrage).

Attention toutefois, soit toute la colonne est à 2 chiffres, soit toute la colonne est à 5 chiffres.

Cordialement,

Il est plus intéressant pour moi de mettre 2 chiffres avec * de cp car dans un cp il y a X département (ex 75, il me faut tout les arrondissements).

Néamoins, comme je le disais précédemment, je ne peux pas mettre plus de 2 cp dans la colonne critères ça ne marche pas

Re,

Néamoins, comme je le disais précédemment, je ne peux pas mettre plus de 2 cp dans la colonne critères ça ne marche pas

As-tu testé mon fichier ?

Rentre plusieurs critères en colonne A à partir de A2:

  • si tu rentre 2 chiffres (et 2 chiffres seulement, sans *), on filtre alors par départements
2 2 bis
  • si tu rentres 5 chiffres, on filtre par codes postaux.
1 1 bis

Cordialement,

Super maintenant ça marche... impécable

Merci Mille fois xorsankukai... ton aide m'a été bien précieuse

Rechercher des sujets similaires à "extraire liste"