1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur
    Inscrit en
    juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur

    Informations forums :
    Inscription : juillet 2017
    Messages : 3
    Points : 2
    Points
    2

    Par défaut Macro: Copier 3 cellules en ligne et les coller en colonne, puis répéter l'opération à intervalle régulier?

    Bonjour

    Voilà mon problème: j'ai enregistré une macro en répétant l'opération à 3 reprises:
    -> J'ai sélectionné les cellules E2:G2
    -> Je les ai ensuite collée (transposition) dans les cellules D3:D5
    -> de même pour E6:G6 -> D7:D9
    -> de même pour E10:G10 -> D11:D13

    Le problème c'est que je dois faire ça jusqu'à la première sélection E2926:G2926 -> D2927:D2929, et je n'arrive pas à faire répeter l'action que j'ai enregistré.

    Voilà le code:

    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
        Range("E2:G2").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("D3:D5").Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
        Range("E6:G6").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("D7:D9").Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
        Range("E10:G10").Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("D11:D13").Select
    Quelqu'un peut-il m'aider svp???

  2. #2
    Rédacteur

    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    7 586
    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 : 7 586
    Points : 17 754
    Points
    17 754
    Billets dans le blog
    6

    Par défaut

    Bonjour,
    Lorsque l'on doit exécuter la même opération plusieurs fois, on utilise une structure répétitive (boucle)
    A lire La gestion des boucles dans Excel
    Application.CutCopyMode = False est à utiliser après le collage et pas avant
    La méthode Select et l'objet Selection sont à proscrire. cela ne sert à rien et ralenti l'exécution de la procédure
    Ainsi ces lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Range("A1:C1").Select
     Selection.Copy
     Range("D5:D7").Select
     Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
     False, Transpose:=True
     Application.CutCopyMode = False
    Peuvent être remplacées par celles-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Range("A1:C1").Copy
     Range("D5:D7").PasteSpecial Transpose:=True
     Application.CutCopyMode = False
    Comme on peut le constater tous les arguments de la méthode PasteSpecial ne doivent pas être utilisés

    J'ajouterais enfin que lorsque l'on colle seule la première cellule de destination doit être précisée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Range("A1:C1").Copy
     Range("D5").PasteSpecial Transpose:=True
     Application.CutCopyMode = False
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur
    Inscrit en
    juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur

    Informations forums :
    Inscription : juillet 2017
    Messages : 3
    Points : 2
    Points
    2

    Par défaut

    Merci Philippe Tulliez pour votre réponse,

    Votre code fonctionne bel et bien sur la première sélection et il a largement amélioré mon code qui était plus que rudimentaire, mais ça ne résout pas mon problème de base: répéter l'opération x nombre de fois avec un intervalle de 4. Selon votre conseil, je vais lire la gestion des boucles et vais essayer de m'en sortir.

    Cependant, si vous avez une réponse rapide, merci d'avance, car ça fait déjà un moment que je tourne en rond...

    Désolé pour la "double" discussion, mais je ne savait pas comment déplacer cette discussion dans le sous-forum Macro et VBA Excel qui me parraissait plus approprié.

    Merci encore.

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur
    Inscrit en
    juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur

    Informations forums :
    Inscription : juillet 2017
    Messages : 3
    Points : 2
    Points
    2

    Par défaut

    Grâce à des gens comme vous on en apprend tous les jours

Discussions similaires

  1. macro copier des cellules
    Par mari2016 dans le forum Excel
    Réponses: 7
    Dernier message: 28/03/2016, 23h55
  2. [XL-2010] Macro copier des cellules
    Par arthour973 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/01/2013, 15h17
  3. [XL-2007] copier lignes choisies les coller en bas sur plusieurs feuilles
    Par marskng dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/11/2012, 17h07
  4. [XL-2003] macro somme de cellule par ligne
    Par thauvinl dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2009, 07h19
  5. Macro copier des cellules d'un fichier à l'autre
    Par Tof XXX dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/01/2008, 14h45

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