Faire une macro sur plusieurs feuilles
Bonjour,
Me voici avec un autre soucis, merci banzai pour tes conseils
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
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 SubJe 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").CopyOk 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 SubBonjour
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