Rapport de message :*
 

Re: formule

Titre du sujet : Re: formule
par Mth le 12/11/2012 14:43:49

Bonjour mahelnawe, bonjour le forum,

Ta piste avec xlformats est très bien, essaie comme ceci:

Option Explicit
 
Sub Macro3()
 Dim c As Range, PlageA As Range, PlageB As Range
 
With Application
     'Bloque le rafraichissement écran
     .ScreenUpdating = False
     
    With Sheets("Feuil1")
         'Efface le contenu de la plage AC3:AR103
         .Range("AD3:AR103").ClearContents
         'Passe à l'instruction suivante s'il n'y a pas de cellules correpondantes
         On Error Resume Next
         'Boucle sur chaque cellule de la plage AC3:AC103 contenant une formule numérique
         For Each c In .Range("AC3:AC103").SpecialCells(xlCellTypeFormulas, 1)
             Set PlageA = .Range(c.Offset(0, -16), c.Offset(0, -2))
             Set PlageB = .Range(c.Offset(0, 1), c.Offset(0, 15))
             PlageA.Copy
             With PlageB
                .PasteSpecial Paste:=xlPasteValues
                .PasteSpecial Paste:=xlPasteFormats
            End With
         Next c
         'Retire les vides (vers le haut) de la zone copiée
         .Range("AD3:AR103").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
         On Error GoTo 0
     End With
     'Vide le presse papier
     .CutCopyMode = False
     'Rétablit l'affichage écran
     .ScreenUpdating = True
 End With
 End Sub
 

Bon après-midi,

mth