Faire une macro sur plusieurs feuilles

Bonjour,

Me voici avec un autre soucis, merci banzai pour tes conseils , cela as résolu pas mal de soucis.

Ma macro fonctionnait du moment que les onglets n'étaient pas renommés.

Or, il se trouve que ces onglets vont être renommés avec les personnes qui les gèrent.

J'ai réussi à expliquer qu'il fallait garder le "®* devant le nom de l'onglet.

La macro se fige à la première ligne, je pense qu'il faudrait que j'active les feuilles sélectionnées avec "Like" mais je ne sais trop comment faire vu mon faible niveau en VBA .

Je vous remercie de toute l'aide que vous pourrez m'apporter.

Dim Sh As Worksheet

For Each Sh In Sheets

If UCase(Sh.Name) Like "®*" Then

'Sheets(Array("®INDIVIS", "®CONDUC 1", "®CONDUC 2", "®CONDUC 3", "®CONDUC 4", "®CONDUC 5", _

'"®CONDUC 6", "®CONDUC 7", "®CONDUC 8", "®CONDUC 9", "®CONDUC 10")).Select

'Sheets("®INDIVIS").Activate

' PREVISIONS

'Copie des informations à FDM dans colonne A fin de mois précédent

Range("R8:R69").Select

Selection.Copy

Range("O8").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

56tdb-test.7z (222.45 Ko)

Bonjour

Je n'ai repris que la fin de la macro

Il manque des pages et faire des tests avec des pages vides ce n'est pas ce qu'il y a de mieux

A toi de dire ce qui gène

Dim Sh As Worksheet

  For Each Sh In Sheets
    If UCase(Sh.Name) Like "®*" Then
      With Sh

' PREVISIONS
        'Copie des informations à FDM dans colonne A fin de mois précédent
        .Range("R8:R69").Copy
        .Range("O8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                  SkipBlanks:=False, Transpose:=False

        ' Effacement des données du mois
        .Range("P8:Q69").ClearContents

        ' Copie des valeurs m+2 et m+3 dans m+1 & m+2
        .Range("W8:Z69").Copy .Range("U8")

        ' Effacement des données m+3
        .Range("Y8:AB69").ClearContents

'REALISE
        ' Copie des colonnes cumul fin de mois m (CA & Marge), Collage de la valeur dans la colonne Cumul m-1
        .Range("L8:M69").Copy
        .Range("D8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                  SkipBlanks:=False, Transpose:=False

        ' Copie FAE/PCA de Réalisation du mois dans Cumul m-1
        .Range("H8:H69").Copy .Range("F8")

        ' Effacement des données dans CA, FAE, Dépenses du mois M
        .Range("G8:H69,J8:J69").ClearContents

        'Ligne Frais d'encadrement Copie de la dépense du mois, ajout dans cumul m-1 et effacement de la cellule du mois
        .Range("E83").Value = .Range("K83").Value
        .Range("K83").ClearContents

'        ' Pourquoi recopier ces formules ?
'        ' Formule dans colonne à réaliser autre mois
'        .Range("AA9:AA69").Formula = "=O9+P9-I9-U9-W9-Y9"
'        .Range("AA72:AA75").Formula = "=O72+P72-I72-U72-W72-Y72"
      End With
    End If
  Next Sh
  Application.CutCopyMode = False

  CreateObject("Wscript.shell").Popup " Macro Terminée", 10, "COLAS S.O."
End Sub

Je te remercie beaucoup, en effet le code est beaucoup plus concis et mieux en lecture.

Peux-tu me dire pourquoi le point devant Range? As-t'il une utilité? Je teste cela soit ce week-end si j'ai le temps soit Lundi.

En te remerciant.

Edit : J'allais oublié de répondre à ta question : '

Pourquoi recopier ces formules ?

' ' Formule dans colonne à réaliser autre mois

en effet, bien vu, ces formules ne sont pas protégées, pour pouvoir faire une saisie manuelle d'un chiffre, car on peut réaliser du C.A. sur les exercises ultérieurs. Donc, pour pallier à cela, je remet ces formules en place pour le mois d'après.

Bonsoir

VINCENT31300 a écrit :

pourquoi le point devant Range? As-t'il une utilité?

Indique que l'objet (dans ce cas Range) se rapporte(fait partie, est associé etc....) à l'objet définit par With

Évite de répéter Sh chaque fois

      With Sh

' PREVISIONS
       'Copie des informations à FDM dans colonne A fin de mois précédent
       .Range("R8:R69").Copy

Ok je comprends pour les formules, merci

Bonjour Banzai,

Je vais avoir un petit soucis, du coup, il fait tout en même temps, cela ne fige plus les montants de la colonne "L8:M69", en effet ce sont des lignes calculées et pour la remise à zéro, j'efface les données du mois.

Comment puis-je faire s'il te plaît?

Merci.

Dim Sh As Worksheet

  For Each Sh In Sheets
    If UCase(Sh.Name) Like "®*" Then
      With Sh

'REALISE
       ' Copie des colonnes cumul fin de mois m (CA & Marge), Collage de la valeur dans la colonne Cumul m-1
       .Range("L8:M69").Copy
        .Range("D8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                  SkipBlanks:=False, Transpose:=False

        ' Copie FAE/PCA de Réalisation du mois dans Cumul m-1
       .Range("H8:H69").Copy .Range("F8")

        ' Effacement des données dans CA, FAE, Dépenses du mois M
       .Range("G8:H69,J8:J69").ClearContents

      End Sub

Bonjour

Comment veux-tu que je t'aide sans fichier

Tu fournis un vrai fichier (avec des données) dans lequel la macro fonctionne et tu expliques le problème

A suivre

Bonjour,

Tu as raison, je m'en excuse voici le tableau.

voir conduc1 ligne 10, après exécution de la macro, cela devient la ligne 13.

En fait, lors de l'éxécution de la macro RAZ, ce que je voudrais c'est que le chiffre d'affaires et la marge du Cumul à Fin de mois sont copiés et collés dans cumul m-1, ces valeurs sont à la base calculées avec les colonnes CA + FAE + Depenses, puis après il faut effacer les données du mois.

En lançant la macro, je me retrouve qu'il efface les valeurs du mois, ca, fae et dépenses et du coup, mon cumul copié n'est plus bon.

J'espère que cela est plus clair comme explication.

Bonjour

Je n'arrive pas à suivre

Avant la macro L10 = 3 et M10= 6 et D10 =0 et E10 =0

Après la macro L10 = 1 et M10 = 4 (ce qui d'après les formules est exact) et D10 =3 et E10 =6

Donc il y a bien une recopie

Où est le problème ?

Bonjour,

Je t'avoue que je ne sais pas ce que j'ai fait pour tester la macro, en effet elle fonctionne bien.

Es-ce le fait que j'ai mis des étapes de "End with" pour que cela me le fasse petit à petit a corrigé cela ?

Pourtant sur la colonne O la recopie de la Colonne R se passe bien même en effacant les données sans "End With".

Je te remercie pour le temps que tu m'as accordé.

Bonne soirée.

Dim Sh As Worksheet

  For Each Sh In Sheets
    If UCase(Sh.Name) Like "®*" Then
      With Sh

' PREVISIONS
       'Copie des informations à FDM dans colonne A fin de mois précédent
       .Range("R8:R69").Copy
        .Range("O8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                  SkipBlanks:=False, Transpose:=False

        ' Effacement des données du mois
       .Range("P8:Q69").ClearContents

        ' Copie des valeurs m+2 et m+3 dans m+1 & m+2
       .Range("W8:Z69").Copy .Range("U8")

        ' Effacement des données m+3
       .Range("Y8:AB69").ClearContents

'REALISE
       ' Copie des colonnes cumul fin de mois m (CA & Marge), Collage de la valeur dans la colonne Cumul m-1
       .Range("L8:M69").Copy
        .Range("D8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                  SkipBlanks:=False, Transpose:=False
        End With

        With Sh
        ' Copie FAE/PCA de Réalisation du mois dans Cumul m-1
        .Range("H8:H69").Copy .Range("F8")
        End With

        With Sh
        ' Effacement des données dans CA, FAE, Dépenses du mois M
       .Range("G8:H69,J8:J69").ClearContents
        End With

        With Sh
        'Ligne Frais d'encadrement Copie de la dépense du mois, ajout dans cumul m-1 et effacement de la cellule du mois
       .Range("E83").Value = .Range("K83").Value
        .Range("K83").ClearContents

        ' Formule dans colonne à réaliser autre mois
        .Range("AA9:AA69").Formula = "=O9+P9-I9-U9-W9-Y9"
       .Range("AA72:AA75").Formula = "=O72+P72-I72-U72-W72-Y72"

     End With

    End If

  Next Sh

  Application.CutCopyMode = False

  Sheets("MENU").Select
  Range("C9").Select

  CreateObject("Wscript.shell").Popup " Macro Terminée", 10, "XXX."

End SubEnd Sub
Rechercher des sujets similaires à "macro feuilles"