Rapport de message :*
 

Re: formule

Titre du sujet : Re: formule
par Mth le 06/11/2012 23:00:25

Bonsoir mahelnawe, bonsoir à tous,

Je ne suis pas certaine d'avoir bien compris, mais au cas où essaie avec ce code dans un module standard, que tu pourras adapter à ton fichier réel:

Option Explicit

Sub Macro2()
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
            PlageB.PasteSpecial Paste:=xlPasteValues
        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
 

Bonne soirée,

mth