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 :

Copie de ligne sur plage variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2019
    Messages : 31
    Par défaut Copie de ligne sur plage variable
    Bonjour à tous,

    Je voudrais automatiser une action sous Excel mais je ne vois pas comment m'y prendre en termes de code, ni même de démarche.
    J'ai une page d'ACCUEIL qui comporte un bouton que j'ai appelé ''COMPILER DONNEES".
    J'ai ensuite 5 feuilles représentant les 5 semaines du mois (parfois ce sera 4 comme cela peut être le cas en Février).
    Lorsque je clique sur le bouton COMPILER DONNEES, je voudrais qu'il me récupère les données d'une plage qui comment à partir de la cellule C2, et qui se termine quelque part sur la colonne I.
    Le seul repère que j'ai, c'est de copier les lignes de C à I (à partir de la ligne 2). La colonne B est sensé être alphanumérique à partir de la ligne 2. (ligne 1 en format texte & en fin de tableau texte également).
    En gros mon idée c'est de dire que pour tout cellule de la colonne B & si la cellule C n'est pas vide, on copie les cellules de cette ligne de C à I.
    Ensuite il faut coller ces cellules sur une page SYNTHESE à partir de la ligne 4. Cette page est masqué au démarrage, il faut qu'elle apparaisse en même temps que la macro soit lancée.
    Je cherche à faire cette macro sur les 5 feuilles de semaine sur un simple appuis du bouton de l’accueil.

    Est-ce que qq'un peut m'aider à mettre ce code au point ? Et surtout m'expliquer au fur et à mesure la démarche.
    J'ai fait une maquette de mon exemple pour que cela soit plus compréhensible.

    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Citation Envoyé par titilex Voir le message
    En gros mon idée c'est de dire que pour tout cellule de la colonne B & si la cellule C n'est pas vide, on copie les cellules de cette ligne de C à I.
    Ensuite il faut coller ces cellules sur une page SYNTHESE à partir de la ligne 4. Cette page est masqué au démarrage, il faut qu'elle apparaisse en même temps que la macro soit lancée.
    Bonjour,

    Je te conseille la lecture de ce tuto sur les filtres avancés: https://philippetulliez.developpez.c...dvancedfilter/
    Il n'y a pas besoin que la feuille soit visible pour copier tes données, mais tu souhaites l'afficher tout de même c'est la propriété .visible qu'il te faudra modifié (consulte ton aide interne si besoin)

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2019
    Messages : 31
    Par défaut
    Effectivement, Tuto vraiment bien fait...
    Le principe du filtre/trie, j'ai compris. Mais c'est la sélection variable qui me pose soucis après avoir réalisé le tri.
    Sur ma page, j'ai une première ligne qui ne doit pas compter dans le trie. Cela ne devrait pas poser soucis. étant donné que l'on peut commencer le trie sur la ligne de son choix.
    En revanche comment je peux faire pour stopper la sélection de ma plage à filtrer, avant les "lignes indésirables" qui se trouvent en bas de la feuille ?

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2019
    Messages : 31
    Par défaut
    En me relisant, je me rend compte que je ne suis pas très clair, ni dans ma demande, ni dans mes explications.
    La solution de trie, effectivement, je devrais y venir quoi qu'il arrive, mais je pensais le faire uniquement sur la page de synthèse.

    En fait sur l'image ci-dessous, la sélection doit se faire à partir de la ligne 2 et pour être plus précis de la cellule C2 et ce jusqu'à la cellule I2. Sur l'exemple ci-dessous, je devrais prendre le bloc de A2:I6 puis le bloc C22:I26. Le seule problème c'est que la quantité de ligne peut varier chaque jour. Certain jour je vais avoir 5 lignes, d'autre fois 20 lignes.
    Nom : CAPTURE 01.JPG
Affichages : 123
Taille : 150,7 Ko

    J'avais imaginé qu'il serait plus simple de conditionner la copie des lignes concernées dans le genre de :
    Si la cellule $b$ est alphanumérique, et que $C$ n'est pas une cellule vide, alors copie la ligne correspondante de la colonne C à I.




    Pour en revenir sur l'idée de filtre, je me retrouve toujours avec le même problème. Comment ne pas tenir compte du bandeau en bas de tableau, tel que sur l'image ci-dessous :
    Nom : CAPTURE 02.JPG
Affichages : 128
Taille : 102,3 Ko

    C'est pour cela que je pensais faire mon filtre ultérieurement, une fois les données copiées sur ma page SYNTHESE.




    Ci-dessous l'exemple avec un filtre réalisé sur la colonne qui m’intéresse, la colonne CLIENT "C". Je dois pouvoir stopper ma sélection sur la plage qui m’intéresse C2 jusqu'à I22 (qui peut être I22 une semaine ou I quelque chose d'autres une autre semaine).
    La meilleure condition que je vois, c'est que la colonne B soit alphanumérique et que la colonne C ne soit pas vide. sinon cela ne copie pas.
    Nom : CAPTURE 03.JPG
Affichages : 111
Taille : 163,6 Ko

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Citation Envoyé par titilex Voir le message
    Sur ma page, j'ai une première ligne qui ne doit pas compter dans le tri. Cela ne devrait pas poser soucis. étant donné que l'on peut commencer le trie sur la ligne de son choix.
    Je ne comprends pas bien ta phrase, tu dois garder les titres de colonnes sans titres pas de filtres avancés

    La meilleure condition que je vois, c'est que la colonne B soit alphanumérique et que la colonne C ne soit pas vide. sinon cela ne copie pas.
    Si je comprends bien tu as juste besoin que les deux soient renseignés, j'utiliserais donc le critère calculé suivant =ET(B2<>"";C2<>"")A appliquer sur tout ton tableau

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2019
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2019
    Messages : 31
    Par défaut
    Salut Halaster,

    J'arrive à comprendre le principe de ce que tu me dis de faire avec la fonction =ET(B2<>"";C2<>""), mais j'avoue ne pas savoir par ou commencer le code.
    J'ai oublié de préciser, je découvre complètement VisualBasic. Cela fait une semaine à peine que j'ai commencé sur mon fichier qui me semble être une usine à gaz.
    Je savais qu'il y avait pleins de possibilités mais j'avoue ne pas être capable d'écrire un code tout seul pour le moment.

    J'ai essayé par l'enregistreur de macro, mais c'est trop light en termes de possibilités. Et aussi j'ai compris que sur une macro il y a des choses à déclarer...

    Bref je ne voit pas comment m'y prendre.

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 682
    Par défaut
    Citation Envoyé par titilex Voir le message
    J'arrive à comprendre le principe de ce que tu me dis de faire avec la fonction =ET(B2<>"";C2<>""), mais j'avoue ne pas savoir par ou commencer le code.
    Avant de passer au code, il te faut comprendre le fonctionnement du filtre avancé, une fois que tu auras réussi a le faire "à la main", il sera très simple de le coder, d'ailleurs le code se trouve à la fin du tuto.
    Toujours dans le tuto, ce que je te propose d'utiliser c'est un critère calculé, relis donc cette partie pour bien comprendre.

Discussions similaires

  1. Recopie de formule en ligne sur plage variable
    Par jeandani2012 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/08/2012, 17h12
  2. VBA - Pb Suppression lignes sur plage filtrée
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/06/2010, 21h54
  3. [XL-2003] Graphique sur plage variable
    Par beatrice2fr dans le forum Excel
    Réponses: 22
    Dernier message: 22/12/2009, 18h19
  4. somme sur plage variable
    Par cdvhome dans le forum Excel
    Réponses: 3
    Dernier message: 25/02/2008, 18h37
  5. [VBA-E] Macro Pour Faire un Tri sur plage variable
    Par tabarly35 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2006, 19h02

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