Macro - Formule répétée puis collé-valeur

Résolu
Bonjour,

J'aurais besoin de votre aide.
J'ai fais une macro simple :
Sub dup_formule()
Dim dernligne As Long
'
' dup_formule Macro
'
' Touche de raccourci du clavier: Ctrl+a
'
dernligne = Range("B" & Rows.Count).End(xlUp).Row
Range("A2").AutoFill Destination:=Range("A2:A" & dernligne), Type:=xlFillDefault
Range("D2").AutoFill Destination:=Range("D2:D" & dernligne), Type:=xlFillDefault

End Sub

Elle fonctionne bien, mais disons que la dernière ligne est à 17021 alors ça augmente le nombre de formule drastiquement et le fichier excel devient inutilisable.

Après quelques recherche, la solution semble être de modifier la macro afin qu'elle colle le résultat de la formule plutôt que d'inscrire la formule comme tel.

Ceci-dit, je n'ai aucune idée comment faire.

En passant, j'ai pu faire la macro plus haut par les nombreuses aides que j'ai reçu de votre part dans le passé et vous en remercie beaucoup.

À bientôt

1 réponse

  1. Bonjour
    Voila une Une solution

    Sub Bouton1_Cliquer()

    Dim dernligne As Long
    '
    ' dup_formule Macro
    '
    ' Touche de raccourci du clavier: Ctrl+a
    '
    dernligne = Range("B" & Rows.Count).End(xlUp).Row
    Range("A2").AutoFill Destination:=Range("A2:A" & dernligne), Type:=xlFillDefault
    Range("D2").AutoFill Destination:=Range("D2:D" & dernligne), Type:=xlFillDefault
    Range("A2:A" & dernligne).Value = Range("A2:A" & dernligne).Value
    Range("D2:D" & dernligne).Value = Range("D2:D" & dernligne).Value
    End Sub


    bien cordialement
    1
    1. Sub Bouton1_Cliquer()

      Dim dernligne As Long
      '
      ' dup_formule Macro
      '
      ' Touche de raccourci du clavier: Ctrl+a
      '
      dernligne = Range("B" & Rows.Count).End(xlUp).Row
      Range("A2").AutoFill Destination:=Range("A2:A" & dernligne), Type:=xlFillDefault
      Range("D2").AutoFill Destination:=Range("D2:D" & dernligne), Type:=xlFillDefault
      Range("A2:A" & dernligne).Formula = Range("A2:A" & dernligne).Value
      Range("D2:D" & dernligne).Formula = Range("D2:D" & dernligne).Value
      End Sub
      0
    2. Excellent! Ça fonctionne très bien.
      Merci beaucoup
      0