XL 2016 Convertir plage de formules en valeurs avec condition

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
794
Retour