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 :

Extension de sélection


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Par défaut Extension de sélection
    Bonjour,

    J'ai effectué une macro afin d'automatiser des tâches qui se répétent à dates fixes. Pour une de ces tâches, je voudrais récupérer les données présentes dans ma dernière ligne, les copier et les coller à la ligne d'en dessous (sachant que les cellules contiennent des formules qui doivent donc "s'incrémenter").
    Jusqu'ici pas de problème sauf que mes données vont par exemple de la colonne A à la colonne AL mais au milieu il y a une colonne vide. Afin d'atteindre les données de la dernière colonne j'utilise un Selection.End(...) par trois fois. J'ai fait cette manipulation à la main, et avec l'enregistreur de macros. Pourtant quand je lance mon programme, il ne sélectionne les données que jusqu'à la colonne vide... Quelqu'un aurait-il une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set Onglet2 = Worksheets("Récap")
    Onglet2.Select
    DerLigne2 = Range("B65536").End(xlUp).Row
    Onglet2.Cells(DerLigne2, 1).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Onglet2.Cells(DerLigne2 + 1, 1).Select
    ActiveSheet.Paste
    PS : je me rappelle avoir lu que les Select pouvaient être évités dans la plupart des cas, est-ce possible ici ?

    Merci d'avance

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    bonjour
    essaye avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       Onglet2.Rows(DerLigne2 ).Select
        Selection.Copy
        Onglet2.Rows(DerLigne2 +1).Select
        ActiveSheet.Paste
    A+

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Par défaut
    Merci pour cette réponse, ça résoudra au moins le problème temporairement (jaurais préféré avoir quelque chose de propre qui ne prenne pas toute la ligne au cas où d'autres données soient plus loins, mais bon c'est déjà mieux comme ça...)

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Je ne vois vraiment pas où est le problème pour copier une plage même s'il y à des cellule vide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Range("A3:K3").Select
        Selection.Copy
        Range("A4").Select
        ActiveSheet.Paste
    copie toute la sélection même s'il y a 'des trous'.
    A+

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 366
    Par défaut
    Le problème c'est que je connais pas la taille de ma plage, donc je ne connais pas les bornes à l'avance. D'où mon utilisation de Selection.End(xlToRight). Tout ce que je connais c'est la structure :
    - x colonnes remplies
    - 1 colonne vide
    - y colonnes remplies.

    En utilisant le Selection.End ça me permettait de retrouver à coup sûr toute ma sélection sans prendre de données éventuellement placées encore plus à droite. Après pas de problème, je copie le tout y compris les trous !

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

Discussions similaires

  1. [XL-2010] Sélection de valeurs sous conditions et sur une plage extensible
    Par ObladiOblada dans le forum Excel
    Réponses: 2
    Dernier message: 08/01/2015, 16h58
  2. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  3. Sélection Tableau extensible
    Par billout rm dans le forum InfoPath
    Réponses: 4
    Dernier message: 30/07/2007, 17h50
  4. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56
  5. Algo de tri, extension
    Par Mouse dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/02/2003, 00h14

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