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 :

Extraire des valeurs filtrées d'un tableau vers une nouvelle feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2019
    Messages : 29
    Par défaut Extraire des valeurs filtrées d'un tableau vers une nouvelle feuille
    Bonjour,

    Je débute sur Excel aussi bien qu'en Visual basic mais je cherche à extraire les données de plusieurs lignes d'un tableau sur une autre feuille.

    J'ai un tableau à 4 colonnes avec respectivement : des marques de voitures, leurs modèles, la ville et leurs plaques d'immatriculation.
    En passant par une macro VBA, mon but est de récupérer toutes les Peugeot et Citroën immatriculées dans le 05. Je veux donc que sur ma feuille 2, ma première colonne soit la marque du véhicule et la deuxième sa plaque d'immatriculation (uniquement en 05).
    L'idéal pour moi serait de créer une condition de recherche sur la colonne "Marque" pour identifier les "Peugeot" et "Citroën" et de les afficher dans une nouvelle feuille avec uniquement la colonne plaque d’immatriculation associée (mais imposer une recherche sur le critère "05" de cette colonne).
    Pour finir, l'autre difficulté que j'ai et que ma macro doit être adaptable à n'importe quel tableau de n'importe quelle taille (il n'y aurait que les noms de colonnes identiques).

    Est-ce possible et si oui, quelqu'un aurait-il une solution pour m'aider ?

    En vous remerciant par avance.

    PS : - Vous trouverez en pièce jointe un fichier avec le tableau en question.
    - J'ai adapté mon tableau pour le forum mais ce sur quoi je travaille est bien plus complexe. C'est pour ça qu'il faudrait que je passe obligatoirement par une macro avec appui sur un bouton pour transférer automatiquement les infos qui m’intéresse sur une autre feuille (avoir une syntaxe VBA que je pourrais adapter).
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Bonjour,

    Voici un début de solution en considérant que les données de base sont dans un tableau dynamique nommé 'Tableau1' et que divers boutons exécutent les filtrages avant de recopier cela. Pour faire le filtre par département, une colonne supplémentaire a été ajoutée, colonne qui contient le n° du département.

    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
    40
    41
    42
    43
    44
    Option Explicit
     
    Sub Supprim_filtre()
       ActiveSheet.ListObjects("Tableau1").Range.AutoFilter
    End Sub
     
    Sub Filtre_05()
        ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=5, Criteria1:="5"
    End Sub
     
    Sub Filtre_Peugeot()
        ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="Peugeot"
    End Sub
     
    Sub Filtre_Citroën()
        ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="Citroën"
    End Sub
     
    Sub Copier()
       Dim sMarque As String, wsMarque As Worksheet, tMarque As ListObject
       With Range("Tableau1")
          sMarque = Range("A" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value
       End With
       If sMarque = "" Then
          MsgBox "Pas de marque !", , "Anomalie"
          Exit Sub
       End If
       Set tMarque = Sheets("Tout").ListObjects("Tableau1")
       On Error Resume Next
       Sheets(sMarque).Select
       If Err.Number > 0 Then
          Err.Clear
          If MsgBox("Créer une feuille pour " & sMarque & "?", vbYesNo, "Nouvelle feuille ?") = vbNo Then
             Exit Sub
          Else
             Set wsMarque = Sheets.Add(After:=Sheets(Sheets.Count))
             wsMarque.Name = sMarque
          End If
       End If
       On Error GoTo 0
       Sheets(sMarque).Cells.Clear
       tMarque.Range.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(sMarque).Range("A1")
       Range("A1").Select
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2019
    Messages : 29
    Par défaut
    Bonjour EricDgn et merci de ta réponse.

    Comment fonctionne la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=5, Criteria1:="5"
    A quoi correspond le champ "Field" et comment savoir quelle valeur lui assigner ?

    Merci d'avance pour la réponse.

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Field:=5 ... cela concerne la 5e colonne du tableau, càd le Département
    Criteria:="5" ... 5 est la valeur recherchée (le département étant converti en nombre, 05 est devenu 5)

    Cordialement.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2019
    Messages : 29
    Par défaut
    Super, merci de ta réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/06/2016, 20h20
  2. Réponses: 16
    Dernier message: 17/02/2016, 16h34
  3. Extraction colonnes d'un tableau vers une autre feuille
    Par argaz01 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/06/2010, 15h16
  4. macros pour trier un tableau vers une nouvelle feuille excel
    Par argaz01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2010, 14h00
  5. [XL-2007] Copie d'un tableau vers une autre feuille
    Par bob254 dans le forum Excel
    Réponses: 2
    Dernier message: 08/04/2010, 13h22

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