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 :

Macro décalage de cellules repetés sur plusieurs onglets [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2007
    Messages : 85
    Par défaut Macro décalage de cellules repetés sur plusieurs onglets
    Bonjour,
    J'ai un classeur avec 8 onglets : paramètre /centre1 / centre2... /centre7
    Je voudrais à l'aide d'une macro (lancée à partir d'un bouton) pouvoir recopier les cellules F7:H16 dans la même feuille mais dans les cellules E7:G16 pour tous les onglets sauf paramètre.

    ... mais je ne sais pas comment m'y prendre.

    Merci de me mettre sur la voie,
    Xorbane

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    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 : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'imagine que ce n'est pas une copie mais un déplacement que tu souhaites ?

    Procédure pour le déplacement des cellules F7:H16 vers E7:G16 de la feuille nommée Centre1 du classeur où se trouve le code VBA (ThisWorkbook)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     With ThisWorkbook.Worksheets("Centre1")
     .Range("F7:H16").Cut Destination:=.Range("E7:G16")
     End With
    Comme il faut le faire pour l'ensemble des feuilles à l'exception de la feuille nommée "paramètre", il y a lieu d'intégrer le code dans une boucle avec une condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub t()
     Dim sht As Worksheet
     For Each sht In ThisWorkbook.Worksheets
       With sht
        If LCase(sht.Name) <> "paramètre" Then
         .Range("F7:H16").Cut Destination:=.Range("E7:G16")
        End If
      End With
     Next
    End Sub
    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
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2007
    Messages : 85
    Par défaut
    Bonjour,
    Cela fonctionne très bien et je souhaitais effectivement décaler les cellules.
    Comme je souhaite ne décaler que les valeurs des cellules (indicateurs trimestriels glissants) sans toucher la mise en forme ni la formule dans la colonne H, j'ai modifié le code que tu m'as proposé en remplaçant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("F7:H16").cut Destination:=.Range("E7:G16")
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("E7:G16").Value = .Range("F7:H16").Value
    Tous fonctionne à merveille... enfin jusqu'à la prochaine fois.

    Merci pour avoir résolu mon soucis.
    Xorbane

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    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 : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme je souhaite ne décaler que les valeurs des cellules (indicateurs trimestriels glissants) sans toucher la mise en forme ni la formule dans la colonne H, j'ai modifié le code que tu m'as proposé en remplaçant :
    Pas besoin de VBA pour avoir des périodes glissantes.
    Personnellement, j'utilise la fonction SOMMEPROD pour aller chercher les valeurs et les fonctions DATE et AUJOURDHUI pour faire bouger les dates
    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
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. [XL-2010] Macro copier-coller en boucle sur plusieurs onglets
    Par Pilaf182 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2016, 09h33
  2. [XL-2010] Macro pour comparer des prix sur plusieur onglets
    Par cecev76 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/08/2015, 23h02
  3. Dupliquer une macro sur plusieurs onglets
    Par Mag555 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/08/2011, 00h07
  4. [OpenOffice][Tableur] Macro bouton, appliquer une valeur sur plusieurs cellules selectionées
    Par myz-rix dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 23/07/2011, 06h37
  5. Macro exécutée sur plusieurs onglets
    Par Aizen64 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/06/2007, 09h59

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