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 :

Copier le résulta d'un filtre vers un tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Par défaut Copier le résulta d'un filtre vers un tableau
    Bonjour,

    Lorsque j'exécute mon code, toutes les lignes sont copiées dans une variable array "Offres", or je ne veux copier que les lignes résultant du filtre.
    La cellule qui contient la valeur de mon filtre est sur la feuille "Menu" en "B2"
    Les lignes à filtrer sont sur sur la feuille "Offres"

    Peut être avez-vous une solution ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sheets("Offres").Select
      ActiveSheet.Range("A1").Select
      Selection.AutoFilter
        ActiveSheet.Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:= _
            Sheets("Menu").Range("B2")
      With Sheets("Offres").AutoFilter.Range
        ReDim Offres(.Rows.Count, .Columns.Count)
        Offres = .Value
      End With
      Selection.AutoFilter

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Intéresse-toi à SpecialCells(xlCellTypeVisible)

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    je n'ai pas de réponse mais je me permet de faire des petites modifications
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim xlsheet as worksheet
    set xlsheet = thisworkbook.worksheets("Offres")
    with xlsheet
          .Range("A1").AutoFilter
          .Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:= _
            thisworkbook.worksheet("Menu").Range("B2")
          .worksheet("Offres").AutoFilter.Range
          ReDim Offres(.Rows.Count, .Columns.Count)
          Offres = .Value
     End With
    Pour un peu moins de select avec un specialcell sur le type , tu peux donc selectionner le type de contenu , tu l'utilise avec un range , tu as tt ce qu'il faut sur le site officiel , mais je crois que tu ne peux l'utiliser que sur le type ....

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim xlsheet as worksheet
    set xlsheet = thisworkbook.worksheets("Offres")
    with xlsheet
          .Range("A1").AutoFilter
          .Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:= _
            thisworkbook.worksheet("Menu").Range("B2")
          .worksheet("Offres").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
          ReDim Offres(.Rows.Count, .Columns.Count)
          Offres = .Value
     End With
    Serait-ce cela la solution ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    la plage étant discontinue, tu risques d'avoir des problèmes pour transférer sans boucle tes données dans ton tableau ?
    ça m'interpelle ce point, tu peux nous confirmer ce qu'il en est ?

    si ça coince, je te conseille d'exporter ton résultat dans une feuille, et d'ensuite récupérer les valeurs

    exemple
    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
    Sub Filtre()
    Dim Critere As String ' adapter selon le type de données si besoin
    Dim Sh As Worksheet
    Dim Offres()
     
    Critere = ThisWorkbook.Worksheet("Menu").Range("B2").Value
    Set Sh = ThisWorkbook.Worksheets("Offres")
    Sheets("Feuil4").Cells.Delete ' la feuille de stockage tampon
     
    With Sh
        .AutoFilterMode = False
     
        With .Range("A1")
            .AutoFilter 1, Critere  ',xlFilterValues
        End With
     
        .Range(.Cells(1, 1), .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count)).SpecialCells(xlCellTypeVisible).Copy Sheets("Feuil4").Range("A1")
    End With
     
    Offres = Sheets("Feuil4").UsedRange.Value
    Set Sh = Nothing
    End Sub

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Par défaut
    J'ai une erreur :
    "membre de méthode ou de donnée introuvable"

    J'ai essayé en remplaçant Worksheet par Worksheets, mais j’obtiens la même erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With xlsheet
          .Range("A1").AutoFilter
          .Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:= _
            ThisWorkbook.Worksheets("Menu").Range("B2")
          .Worksheets("Offres").AutoFilter.Range.SpecialCells (xlCellTypeVisible)
          ReDim Offres(.Rows.Count, .Columns.Count)
          Offres = .Value
      End With

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Bonjour,

    que veux-tu faire exactement ? (contradiction entre le titre de la discussion et le code initial)
    Quel est le but, la destination ?



    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo



Discussions similaires

  1. [XL-2007] Copier des lignes d'une plage vers un tableau
    Par Excel_man dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 31/03/2013, 03h40
  2. copier le contenu d'un text vers un tableau
    Par brahim999 dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/06/2006, 17h40
  3. Réponses: 12
    Dernier message: 22/02/2006, 15h28
  4. Réponses: 1
    Dernier message: 21/01/2006, 14h45
  5. Copier un enregistrement d'une table vers une autre
    Par le lynx dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/01/2006, 09h56

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