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 :

Selection d'une plage de cellules non vide [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 504
    Par défaut Selection d'une plage de cellules non vide
    Bonjour a tous le monde
    Comment sélectionner et copier en VBA toutes les cellules NON VIDE qui se trouve dans la plage "M2" jusqu’à "Px"
    Merci pour votre aide et a bientot
    Cordialement

  2. #2
    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,

    déjà pas besoin de sélectionner !
    Pas très clair mais via un filtre et une simple copie …
    Ou encore mais j'aime moins via la méthode SpecialsCells à la place du filtre.

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre éclairé Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 504
    Par défaut
    Bonjour Marc-L et merci pour votre réponse
    Moi je cherche a utilisé un code VBA pour sélectionner et copier toutes les cellules de la plage M2 jusqu'a Px (sachant que x est variable)
    Cordialement et a bientot

  4. #4
    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

    Description de l'adresse globale des données …

    Et encore une fois il est inutile de sélectionner quoique ce soit !
    Sinon pour sélectionner commencer par l'Enregistreur de macros puis opérer manuellement
    puis poster le code ainsi généré à des fins d'optimisation (sans sélectionner donc) …

  5. #5
    Membre éclairé Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 504
    Par défaut
    Encore merci Marc-L, effectivement j'utilise l'enregistreur de macro et voici le bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("m2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Range(Selection, Selection.End(xlToRight)).Select
        Selection.Copy
    Si il y a plusieurs ligne dans les colonnes M a P cela marche très bien mais le problème lorsqu'il y a une seul ligne il va me sélectionner tous les cellules même les vides alors que mois je veut qu'il sélectionne que les cellules contenant des données.
    J’espère être claire Marc-L
    Merci et a bientot

  6. #6
    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


    Quelle est la première cellule de la plage globale et la dernière ? (exemple A1 et Z999)

    Et indiquer si la table a été bien conçue c'est à dire sans colonne ni ligne totalement vide en son sein …

  7. #7
    Membre éclairé Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 504
    Par défaut
    la table a pour entête
    Colonne M N O P
    Insertion Date Libelle Montant

    La première cellule est "M2"

    Cette table se rempli via un filtre avancé donc je ne peut pas savoir la limite de la table jusqu’à la colonne P (elle peut avoir 1 seul ligne comme 10 millions)

    Cordialement

  8. #8
    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

    Donc la colonne N et Q sont entièrement vides ?

    Et pour copier vers où, la destination …

  9. #9
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 732
    Par défaut
    Bon regardons les choses avec calme et sérénité.
    ai je bien compris?
    Les colonnes M N O P semble être en fait une zone d'extraction dont les en tête seraient :Insertion Date Libelle Montant , provenant d'une BD .
    Dans une base de données, les lignes sont en fait des "fiches". s'il y a une cellule vide dans une colonne, elle doit rester vide, sinon on mélange les valeurs des fiches. Si maintenant il y a des lignes qui sont intégralement vide, il ne reste plus qu'a refaire une extraction depuis la nouvelle Zone d'extraction vers une Z extract à créer, avec un critère <>0.
    Sinon, si mélanger les fiches ne vous dérange pas, vous faites une boucle successivement sur les quatres colonnes, supprimant la cellule avec déport vers le haut.
    Espérant que celà vous aidera
    Cordialement

  10. #10
    Membre éclairé Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 504
    Par défaut
    Merci vous tous

    Marc-L
    Le coller sera dans la première ligne vide de la colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Cells(Rows.Count, 1).End(xlUp)(2).Select
        ActiveSheet.Paste
    Transitoire je vais vous relire afin de bien vous comprendre

    Cordialement

  11. #11
    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
    Citation Envoyé par Marc-L Voir le message
    Donc la colonne N et Q sont entièrement vides ?
    Me suis trompé, je voulais demander les colonnes avant M et après P sont-elles vides ou pas ? (L & Q donc)

    Tu peux afficher une capture, sinon joindre un fichier enregistré au format .xlsx (donc sans code) …


    Citation Envoyé par jawed Voir le message
    Cette table se rempli via un filtre avancé
    Alors une seconde copie est inutile, il suffit juste de corriger les critères du filtre avancé
    pour copier directement le résultat attendu dans la colonne A !

  12. #12
    Membre éclairé Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 504
    Par défaut
    Voici un bout du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub selec()
        Columns("A:D").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
            "I2:I3"), CopyToRange:=Range("M1:P1"), Unique:=False
        If Range("m2") = "" Then Exit Sub
        Range("m2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Range(Selection, Selection.End(xlToRight)).Select
        Selection.Copy
        Cells(Rows.Count, 1).End(xlUp)(2).Select
        ActiveSheet.Paste
    Nom : image.jpg
Affichages : 13702
Taille : 85,6 Ko

    Cordialement

  13. #13
    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




    If [M2].Value > "" Then [M1].CurrentRegion.Offset(1).Copy Cells(Rows.Count, 1).End(xlUp)(2)   …

  14. #14
    Membre éclairé Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 504
    Par défaut
    Mes respects Marc-L
    c'est parfait
    Cordialement et a bientôt

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

Discussions similaires

  1. [XL-2003] trouver la dernière cellule d'une plage de cellules non contigues.
    Par henripec dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/09/2009, 01h16
  2. Selection d'une plage de cellules dans DatagridView [Vb.Net]
    Par papy75 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/06/2008, 12h03
  3. Selection d'une plage de cellules variables
    Par bykeman dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/06/2008, 10h20
  4. [VBA-E] Appliquer une formule si cellule non vide.
    Par zeralium dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/03/2007, 19h58
  5. Comment sélectionner une plage de cellules non consécutives?
    Par jokair dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2006, 15h36

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