Action macro sur selection de feuilles

KTM

XLDnaute Impliqué
Salut chers Amis du Forum
Je vous présente ma macro suivante qui doit faire ceci:
-Dans les feuilles sélectionnées ; Copier la Plage I13:I47 et la coller en valeur dans D13:D47 et mettre le signe égal (=) devant les valeurs dans D13:D47
- Le problème est que seule la première feuille de la sélection est affectée. Je ne comprends pas pourquoi.
Quelqu'un pourrait-il apporter une correction à mon code ?
Merci



Sub Coopt ()
Sheets(Array("RM", "RMCe", "Rnan", "R",RMm", "Rdp", "RMCSha")).Select
Sheets("RM").Activate
Range("I13:I47").Select
Selection.Copy
Range("D13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Dim cel As Range
For Each cel In Range("D13:D47")
cel.Formula = "=" & cel
Next cel
End Sub
 

Paf

XLDnaute Barbatruc
Bonjour,

En utilisant sheets(array...., il ne faut pas activer de feuille (Sheets("RM").Activate) sinon les instructions auront lieu sur cette feuille et non sur l'ensemble.
mais malgré ça, le For Each cel ... ne s'exécute que sur la feuille active et non sur l'ensemble.

Une solution de contournement:

VB:
Sub Coopt ()
Dim cel As Range, i As Long, T

T=Array("RM", "RMCe", "Rnan", "R",RMm", "Rdp", "RMCSha")  ' attention erreur "R",RMm"
Application.ScreenUpdating = False

For i = LBound(T) To UBound(T)
  With Worksheets(T(i))
  .Range("I13:I47").Copy
  .Range("D13").PasteSpecial Paste:=xlPasteValues
  Application.CutCopyMode = False
  
  For Each cel In .Range("D13:D47")
  cel.Formula = "=" & cel
  Next cel
  End With

Next i
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 407
Membres
102 884
dernier inscrit
Macarena