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 :

filtres excel et formule vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 20
    Par défaut filtres excel et formule vba
    bonjour, je cherche une formule en vba qui permet de trouver le nombre d'enregistrements obtenus quand des filtres automatiques sont activés dans une liste sous excel.

    Sinon mon problème est que j'ai une liste à laquelle je fais subir différents filtres et je veux copier les enregistrements obtenus dans un autre onglet mais que, si il n'y en a pas, il ne se passe rien.
    Je pensais avoir trouvé mais quand je mets ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Range("A2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
    et qu'il n'y a aucun résultat de trouvé pour ma sélection de filtres, il me copie le contenu de la cellule A2.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim LastLig As Long
     
    LastLig = Range("A65536").End(xlUp).Row
    If LastLig > 1 Then
    Range("A1:A" & LastLig).Copy Sheets("FeuilleOùCopier").Range("A3")
    End If

  3. #3
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut
    Bonsoir,

    Une autre proposition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ActiveSheet.Range("$A$1").AutoFilter Field:=10, Criteria1:="=*b0?????05*"
    X = ActiveSheet.AutoFilter.Range.Columns(10).SpecialCells(xlCellTypeVisible).Cells.Count
     
    Range("A2:C21").SpecialCells(xlCellTypeVisible).Copy Destination:=Range("A24")
    A adapter

    J'ai eu ces morceaux de code sur le forum et je les ai adapté, cela fonctionne très bien pour compter le nombre de lignes filtrées ou pour les copier.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    En adaptant à l'aide de la proposition de marc58
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim LastLig As Long
    With Sheets("Feuille Source")
        LastLig = .Range("A65536").End(xlUp).Row
        If LastLig > 1 Then .Range("A2:D" & LastLig).SpecialCells(xlCellTypeVisible).Copy Sheets("Feuille Destination").Range("A3")
    End With
    Adapter les noms des feuilles et les plages de copie et de destination

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 20
    Par défaut
    j'ai essayé quelques unes des formules que vous m'avez donné mais ça ne fonctionne pas. Je pense que je dois oublier quelque chose. est-ce que quelqu'un pourrait essayer de me l'écrire en entier.

    Le fichier où je fais des filtres s'appelle "table essai1.xls" et l'onglet "devis".
    Les filtres sont sur différentes colonnes (I, J, K) en même temps et les résultats que je souhaite copier quand il y en a sont dans la colone A.

    Le fichier où je dois copier ces données s'appelle "recap mensuel.xls" et l'onglet "R-04-09" et la copie doit se faire à partir de la cellule D304.
    Merci

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Sinon mon problème est que j'ai une liste à laquelle je fais subir différents filtres et je veux copier les enregistrements obtenus dans un autre onglet mais que, si il n'y en a pas, il ne se passe rien.
    Si tu veux des informations précises, tu dois préciser ce que tu veux
    si tu ne veux pas essayer d'adapter, c'est facile d'écrire
    est-ce que quelqu'un pourrait essayer de me l'écrire en entier.
    Si tu as la gentillesse de poster ce que tu as fais et où ça ne fonctionne pas (si cela ne t'est pas pénible )

    dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim LastLig As Long
    Dim Wbk as Workbook
    Dim stFichierComp as string
     
    stFichierComp="C\Mes Documents\recap mensuel.xls"  ' à adapter
     
    set Wbk=Workbooks.Open(stFichierComp)
    With Sheets("devis")
        LastLig = .Range("A65536").End(xlUp).Row
        If LastLig > 1 Then .Range("A2:A" & LastLig).SpecialCells(xlCellTypeVisible).Copy Wbk.Sheets("R-04-09").Range("A3") 'Tu ne dis pas où copier
    End With
    Set Wbk=Nothing
    ce code par exemple sur un bouton sur ta feuille devis du fichier table essai1.xls

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

Discussions similaires

  1. [VBA-E] debutant Filtre excel
    Par mick_ban dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/02/2007, 18h00
  2. Transformé une formule Excel en script VBA ?
    Par SFLEY dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/01/2007, 11h48
  3. VBA Excel - Evaluation formule
    Par mimic50 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2006, 17h34
  4. Formules VBA excel
    Par psunk dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/08/2006, 13h41
  5. coller formules vba excel
    Par mapmip dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/08/2006, 16h00

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