Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Je cherche une manière d'appliquer la macro qui s'appelle "Avancement" sur tous les onglets sauf l'onglet qui s'appelle b34 et TCD.
A savoir que le nombre d'onglet peut etre différent. Dans l'exemple, la macro doit s'appliquer sur les 6 onglets mais il peut y en avoir 10 voire plus.
il te suffit d'ajouter une boucle
for each ws in worksheets
if ws.name = "b34" or ws.name="TCD" then exit sub
lancer macro
next ws
en fait. cette boucle te fait sortir direct...
essai plutot ca
VB:
Sub avancement()
For Each ws In Worksheets
If ws.Name <> "b34" And ws.Name <> "TCD" Then
ws.Activate
Range("D3").Select
Selection.FormulaR1C1 = "% Avancement"
Columns("D:D").ColumnWidth = 12.57
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
'Permet de se placer automatiquement sur le ligne "Total général"
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Select
' se place automatiquement sur la dernière ligne de la colonne % Avancement
ActiveCell.Offset(0, 3).Select
' applique le formule en reculant d'1 case et en la divisant par 2 cases précédente.
ActiveCell.FormulaR1C1 = "=RC[-1]/RC[-2]"
Selection.Style = "Percent"
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
End If
Next ws
End Sub
il te suffit d'ajouter une boucle
for each ws in worksheets
if ws.name = "b34" or ws.name="TCD" then exit sub
lancer macro
next ws
en fait. cette boucle te fait sortir direct...
essai plutot ca
VB:
Sub avancement()
For Each ws In Worksheets
If ws.Name <> "b34" And ws.Name <> "TCD" Then
ws.Activate
Range("D3").Select
Selection.FormulaR1C1 = "% Avancement"
Columns("D:D").ColumnWidth = 12.57
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
'Permet de se placer automatiquement sur le ligne "Total général"
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Select
' se place automatiquement sur la dernière ligne de la colonne % Avancement
ActiveCell.Offset(0, 3).Select
' applique le formule en reculant d'1 case et en la divisant par 2 cases précédente.
ActiveCell.FormulaR1C1 = "=RC[-1]/RC[-2]"
Selection.Style = "Percent"
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
End If
Next ws
End Sub
Suis allé voir rapidement l'autre post.....
et je pense que ce qui "bug", c'est le fait que la macro ne travaille pas sur la bonne feuille...
il te manque (en attendant d'améliorer ton code) la ligne suivante: (je m'adresse à Tony bien sur :-D )
ws.activate
Suis allé voir rapidement l'autre post.....
et je pense que ce qui "bug", c'est le fait que la macro ne travaille pas sur la bonne feuille...
il te manque (en attendant d'améliorer ton code) la ligne suivante: (je m'adresse à Tony bien sur :-D )
ws.activate
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.