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 :

VBA : Copier ensemble de ligne non vide sur une colonne de l'ensemble des feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 43
    Points : 18
    Points
    18
    Par défaut VBA : Copier ensemble de ligne non vide sur une colonne de l'ensemble des feuilles
    Bonjour,

    En ces temps de télétravail, je reprends quelques macro (la reprise est dur compte tenu que j'en fais très rarement).

    Pour celle-ci, je souhaite copier les lignes non vide de la colonne H de l'ensemble des feuilles du classeur excel à partir de la ligne 16.

    J'ai ensuite les coller dans une nouvelle feuille à partir de la cellule B2. Voilà ou j'en suis actuellement.

    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
     
     
    Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "T2"
     
    Dim k As Integer, i As Integer
    k = Sheets.Count ' ensemble des feuilles
     
    For i = 1 To k
        Sheets(i).Activate 'pour toute les feuilles
     
    Dim plage As Range
    Dim cel As Range
    Set plage = Range("H16:H" & Range("H65536").End(xlUp).Row) 'colonne à copier
    For Each cel In plage
    If cel.Value <> "" Then
     
    ActiveWorkbook.Sheets("T2").Range("A65536").End(xlUp).Value = cel.Value
     
    End If
     
    Next cel
     
    Next i
    Set plage = Nothing
    Mon code bloque à la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Sheets("T2").Range("A65536").End(xlUp).Value = cel.Value
    Merci de votre aide.

    Cordialement,

  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
    12 917
    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 : 12 917
    Points : 28 901
    Points
    28 901
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme il s'agit d'exportation de données suivant conditions, je ne peux que te conseiller la méthode AdvancedFilter de l'objet Range (Filtre avancé d'excel)
    A lire éventuellement Les filtres avancés ou élaborés dans Excel

    Cependant il est également possible, suivant ta version d'Office, de le faire je pense avec PowerQuery mais n'ayant pas encore suffisamment d'expérience sur ce produit je me garderai bien de tout conseils

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Merci, pour cette information.

    J'ai testé (je ne suis pas un spécialiste du filtre avancé). J'ai des messages d'erreur lorsque j'essaye d'inclure plusieurs feuilles à la fois.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 917
    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 : 12 917
    Points : 28 901
    Points
    28 901
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai des messages d'erreur lorsque j'essaye d'inclure plusieurs feuilles à la fois
    J'ai développé des exportations avec cette méthode avec de nombreux scénarios sans difficulté

    Merci de publier le code que tu as écrit et nous indiquer à quelle ligne l'erreur se produit et quel est le message d'erreur. Une image de la zone des données (ligne de titre et quelques lignes de données suffisent) ainsi que la zone des critères sera un plus

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Après plusieurs test, je ne maîtrise pas les filtres avancées dans excel sur plusieurs pages.

    J'ai bien regardé votre guide qui est très bien fait, mais je trouve pas d'exemple similaire.

    Auriez vous un exemple ou un code ?

    Le but est de copier les cellules non vide de la colonne H de l'ensemble des feuilles et de les coller à la suite dans une une autre feuille.

    En vous remerciant,

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 917
    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 : 12 917
    Points : 28 901
    Points
    28 901
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai bien regardé votre guide qui est très bien fait, mais je trouve pas d'exemple similaire.
    On ne peut évidemment pas donner un exemple pour tous les cas possibles et imaginables. Il faudrait une centaine de pages peut-être.

    Il faut juste écrire une formule logique (qui renvoie VRAI ou FAUX) dans la zone des critères et le filtre avancé fait le reste.

    Pour celle-ci, je souhaite copier les lignes non vide de la colonne H de l'ensemble des feuilles du classeur excel à partir de la ligne 16.
    Alors ai-je bien compris ?
    Faut-il exporter toutes les lignes de la liste des données commençant à la ligne 16 dont la cellule de la colonne H est remplie ?
    Dans l'affirmative, il y a donc lieu de se poser la question de savoir quelle formule me renverrait VRAI si la cellule H de la ligne à tester est remplie

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Bien sur, je comprends bien qu'il est quasi impossible de faire un exemple pour tous le monde.

    Alors ai-je bien compris ?
    Faut-il exporter toutes les lignes de la liste des données commençant à la ligne 16 dont la cellule de la colonne H est remplie ?
    Dans l'affirmative, il y a donc lieu de se poser la question de savoir quelle formule me renverrait VRAI si la cellule H de la ligne à tester est remplie
    C'est exactement ça. Si j'ai bien compris le tuto, il faudrait que je filtre avec <>. Cependant, avec ce filtre, il me laisse les cellules vides entre chaque valeurs. De plus si j'essaye de filtrer plusieurs pages en même temps, le filtre est grisé et je ne peux plus l'utiliser (je ne passe pas par VBA mais uniquement par le filtre avancé pour le moment).

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 917
    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 : 12 917
    Points : 28 901
    Points
    28 901
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je privilégie les critères calculés et donc pour ce cas ci =NBCAR(H2)>0 ou H2 représente la cellule de la première ligne des données à exporter de la colonne H

    Evidemment l'exportation se fera sur la liste de données se trouvant sur la feuille active.
    S'il y a plusieurs listes à exporter, il y a lieu de répéter l'exportation autant de fois qu'il n'y a de liste (utilisation d'une boucle)

Discussions similaires

  1. Rechercher et copier la premiere cellule non vide sur une colonne
    Par giraclesse dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/03/2019, 17h30
  2. Réponses: 4
    Dernier message: 05/09/2018, 05h08
  3. Réponses: 2
    Dernier message: 12/10/2014, 16h03
  4. [XL-2003] Calculer le nombre de lignes non vide d'une colonne
    Par zangaloni dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/07/2011, 15h30
  5. [XL-2003] calcule le nombre de ligne non vide dans une colonne donnée
    Par aefmaaradji dans le forum Excel
    Réponses: 2
    Dernier message: 27/07/2010, 15h08

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