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 selection multiple différente feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Par défaut VBA selection multiple différente feuille
    Bonjour à tous,

    j'ai un problème dans ma programmation VBA, je dois faire une sélection multiple entre plusieurs feuilles, copier puis coller dans un autre classeur. Malheureusement j'ai le message suivant :
    "impossible d'exécuter cette commande sur des sélection multiple". j'ai essayé deux solutions :

    1)
    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
     Sheets("Fiche d'activité").Select
     
    Dim r1, r2, myMultipleRange As Range
        Set r1 = Sheets("Fiche d'activité").Range("A10:G71")
        Set r2 = Sheets("Fiche d'activité").Range("W10:AC71")
        Set r3 = Sheets("Fiche d'activité").Range("AT10:AZ70")
     
    Sheets("Fiche d'activité Médicale").Visible = True
    Sheets("Fiche d'activité Médicale").Select
    Set r4 = Sheets("Fiche d'activité").Range("A10:G39")
    Set r5 = Sheets("Fiche d'activité").Range("W10:AC39")
    Set r6 = Sheets("Fiche d'activité").Range("AT10:AZ39")
     
     
     
        Set myMultipleRange = Union(r1, r2, r3, r4, r5, r6)
        myMultipleRange.Font.Bold = True
    myMultipleRange = Union(r1, r2, r3, r4, r5, r6).Copy
     
     
     
     Windows("Base de données Reporting.xlsm").Activate
     Sheets("Base de Travail").Select
     
    Worksheets("Base de Travail").Range("A65536").End(xlUp).Offset(1, 0).Select
     
    ActiveSheet.Paste
    2)
    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
    Sheets("Fiche d'activité").Select
     
    Dim r1, r2, myMultipleRange As Range
        Set r1 = Sheets("Fiche d'activité").Range("A10:G71")
        Set r2 = Sheets("Fiche d'activité").Range("W10:AC71")
        Set r3 = Sheets("Fiche d'activité").Range("AT10:AZ70")
     
    Sheets("Fiche d'activité Médicale").Visible = True
    Sheets("Fiche d'activité Médicale").Select
    Set r4 = Sheets("Fiche d'activité").Range("A10:G39")
    Set r5 = Sheets("Fiche d'activité").Range("W10:AC39")
    Set r6 = Sheets("Fiche d'activité").Range("AT10:AZ39")
     
     
     
        Set myMultipleRange = Union(r1, r2, r3, r4, r5, r6)
        myMultipleRange.Font.Bold = True
    myMultipleRange = Union(r1, r2, r3, r4, r5, r6).Copy
     
    'myMultipleRange.Copy
     
     Windows("Base de données Reporting.xlsm").Activate
     Sheets("Base de Travail").Select
     
    Worksheets("Base de Travail").Range("A65536").End(xlUp).Offset(1, 0).Select
     
    ActiveSheet.Paste
    Votre est la bien venu si vous connaissez un code permettant de copier une sélection de cellules entre différentes feuilles et les coller dans un autre classeur.
    Merci à vous
    cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour,
    Il n'est pas possible de constituer une plage ce cellules appartenant à des feuilles différentes.
    Tu n'as donc à ma connaissance d'autre recours que celui de passer par une matrice que tu alimentes par les différentes cellules ou plages de cellules.
    La chose ne sera réalisable de cette manière qu'à la condition que la seconde dimension de cette matrice soit >= au nombre maximum de colonnes des plages dont ty veux y mettre les cellules de chaque ligne considérée.

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Deux choses sont plus que certaines :
    1) Nul ne saurait le faire sans VBA (autre section de ce forum).
    2) tu aurais sans doute intérêt à copier plage par plage vers une feuille tremplin en utilisant la méthode Range.copy et son paramètre destination

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    En plus de ce qu'à écrit fort justement unparia, quelques remarques.

    Quand tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim r1, r2, myMultipleRange As Range
    Seul myMultipleRange est déclaré comme Range. r1 et r2 sont déclarés Variant.
    Pour que tous soient Range, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim r1 As Range, r2 As Range, myMultipleRange As Range
    Il est étrange de déclarer r1 et r2 mais pas les 4 autres r.

    Dans ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("Fiche d'activité Médicale").Select
    Set r4 = Sheets("Fiche d'activité").Range("A10:G39")
    Set r5 = Sheets("Fiche d'activité").Range("W10:AC39")
    Set r6 = Sheets("Fiche d'activité").Range("AT10:AZ39")
    Je ne comprend pas la raison de la ligne avec la première ligne qui semble complètement inutile.

    Ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myMultipleRange = Union(r1, r2, r3, r4, r5, r6).Copy
    Je ne vois vraiment pas ce que ça signifie.
    A ma connaissance, le Copy de Range est une méthode qui ne renvoie pas de valeur. Il est donc inutile de la précéder d'un "=", avec ou sans Set.

    Faire un Select sur une feuille et, ensuite, faire référence à cette feuille, c'est redondant.
    Supprime la première ce ces deux lignes, ça marchera tout aussi bien.
    Sheets("Base de Travail").Select
    Worksheets("Base de Travail").Range("A65536").End(xlUp).Offset(1, 0).Select

    Et ceci
    Sheets("Base de Travail").Select
    Worksheets("Base de Travail").Range("A65536").End(xlUp).Offset(1, 0).Select
    ActiveSheet.Paste
    peut s'écrire plus simplement :
    Worksheets("Base de Travail").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Paste

  5. #5
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Par défaut
    Je débute sur le VBA, merci de votre retour

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/06/2007, 15h26
  2. [VBA-excel] Selection multiple de ligne
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/10/2006, 12h32
  3. faire une selection multiple de feuilles en fonction de variables
    Par blackhelmet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 10h32
  4. [VBA-E]Selection multiple
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/01/2006, 09h42
  5. [VBA Excel] différentes plages sur différentes feuilles
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 30/11/2005, 13h41

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