XL 2016 Convertir plage de formules en valeurs avec condition

MONTREAL2020

XLDnaute Junior
Bon matin,

Votre support serait appréciable pour une macro qui convertit une plage de formules sur la même colonne avec les résultats affichés,
à condition aujourdhui() >=cellule en jaune (eg. E2 dans le classeur en PJ)

Merci infiniment
 

Pièces jointes

  • Convert Formula to value.xlsm
    16.7 KB · Affichages: 2
Solution
Hello
non le code ne s'execute pas au lancement
pour ca, il faut mettre le code dans l'évènement "Workbook_open()"
module "ThisWorkbook"
VB:
Private Sub Workbook_Open()
LigneDate = 2 'ligne qui contient les dates
Sheets("Quotation").activate
Lastline = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne du tableau

For j = 5 To 17 Step 2 'de la colonne 5 à la colonne 17, de 2 en 2
    If Cells(LigneDate, j) <= Now Then 'test sur la date
        Cells(4, j).Resize(Lastline - 3) = Cells(4, j).Resize(Lastline - 3).Value 'on remplace la formule par la valeur
    End If
Next j
End Sub

vgendron

XLDnaute Barbatruc
Bonsoir
avec ce code à adapter
VB:
Sub FormuleToValue()

LigneDate = 2 'ligne qui contient les dates

Lastline = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne du tableau

For j = 5 To 17 Step 2 'de la colonne 5 à la colonne 17, de 2 en 2
    If Cells(LigneDate, j) <= Now Then 'test sur la date
        Cells(4, j).Resize(Lastline - 3) = Cells(4, j).Resize(Lastline - 3).Value 'on remplace la formule par la valeur
    End If
Next j
End Sub
 

vgendron

XLDnaute Barbatruc
Hello
non le code ne s'execute pas au lancement
pour ca, il faut mettre le code dans l'évènement "Workbook_open()"
module "ThisWorkbook"
VB:
Private Sub Workbook_Open()
LigneDate = 2 'ligne qui contient les dates
Sheets("Quotation").activate
Lastline = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne du tableau

For j = 5 To 17 Step 2 'de la colonne 5 à la colonne 17, de 2 en 2
    If Cells(LigneDate, j) <= Now Then 'test sur la date
        Cells(4, j).Resize(Lastline - 3) = Cells(4, j).Resize(Lastline - 3).Value 'on remplace la formule par la valeur
    End If
Next j
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 078
Messages
2 085 110
Membres
102 782
dernier inscrit
Basoje