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 :

Filter, copy, paste


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 25
    Par défaut Filter, copy, paste
    Bonjour,

    Je suis nouvelle sur VBA et je rencontre pas mal de pb pour mon developpement d'une appli.

    Ce que je voudrais faire: c'est copier les données filtrées dans un fichier excel pour un autre (pour 6 fichiers différents, chacun contient 5 onglets).


    Voici mes codes qui crée un nouveau excel fichier avec 5 différents onglets et y copie les données que j'ai sur mon fichier actif. Alors pour copier tous les données sans filtre, le code marche. Mais ça beugge quand j'ai introduit advanced filter.

    "DO NOT TOUCH" sheet qui me sert de critère de filtre avancée.

    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
    Sub addworkbook()
     
        Dim onewbook    As Workbook
       Dim obasebook    As Workbook
     
     
        Set obasebook = ActiveWorkbook
        Set onewbook = Workbooks.Add
     
        With onewbook
           .SaveAs Filename:="part1"
        End With
     
     
      Dim shArray() As Variant             'Declare the sheet Name array and a
      Dim i As Integer                        'counter variable
     
      shArray = Array("Regularisation actions", "Mitigation actions", "General info", "Statistics", "Instruction")   'Populate the array
     
      For i = LBound(shArray) To UBound(shArray)  'Loop through the elements
          Sheets.Add().Name = shArray(i)
      Next i
     
    'copy instruction of obasebook to newbook
    obasebook.Sheets("Instruction").Cells.Copy Destination:=onewbook.Sheets("Instruction").Range("a1")
    obasebook.Sheets("general Info").Select
     
     
        Columns("A7:Q6500").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        obasebook.Sheets("DO NOT TOUCH").Range("b5:b8"), Unique:=False
     
            obasebook.Sheets("General Info").Cells.Select
     
        Selection.Copy Destination:=Workbooks("part1").Sheets("General Info").Range("a7")
        obasebook.Sheets("general Info").Activate
     
     
    end sub


    Pourriez-vous SVP m'aider à corriger ces codes.

    Merci beaucoup à l'avance.


  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sans avoir testé, à la ligne 29 il y a une erreur. En effet AdvancedFilter est une méthode de l'objet Range or Columns("A7:Q6500") n'est pas un Range
    Plutôt comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Objet_Classeur.Objet_Feuille.Range("A7:Q6500").AdvancedFilter Argument1, ...
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2014
    Messages : 25
    Par défaut
    Merci beaucoup Philippe Tulliez. Effectivement quand c'est Range, ça marche merci encore

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

Discussions similaires

  1. copy/paste dans un composant text avec html
    Par xixi31 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 05/01/2009, 16h43
  2. Réponses: 13
    Dernier message: 10/11/2006, 09h24
  3. [VBA-E] Probleme avec l'activate d'un classeur ouvert pour un copy paste
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/08/2006, 22h31
  4. [VBA-E] Probleme COPY PASTE d'une feuille à une autre
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/07/2006, 17h56
  5. [VBA] word automation copy/paste
    Par Lysis dans le forum VBA Word
    Réponses: 2
    Dernier message: 16/09/2005, 12h45

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