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


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    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

    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
    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
    Membre du Club
    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

    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
    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