Figer résultats de formule sans supprimer formule de cellule vide

Bonjour,

Sur mon document excel j'ai deux feuilles. Une première "Donnees" où je rentre mes résultats en fonction de deux codes. La deuxième "Resultats" fait une recherche des resultats de la feuille "Donnees" en fonction des deux codes. Cette formule est déjà programmée sur toute ma colonne C et renvoie une cellule vide si pas de résultats. Toutefois, a chaque fois que j'ai de nouvelles données je dois remplacer celles de la feuille "Donnees". Je veux donc que les resultats de ma formule en C2:C7 restent (après suppression des données sur la feuille "Donnees") mais sans supprimer la formule des cellules vides en dessous (C8:C100).

J'ai essayé en ajoutant un bouton et une macro VBA mais sans succès. Le mieux que j'ai pu avoir c'est des résultats figés mais toutes les formules de la colonne C sont supprimées. Avez-vous une solution svp.

17solutionsforum.xlsx (14.93 Ko)

Bonjour,

je ne vois pas bien le rapport entre vos 2 questions :

-figer C2:C7

-ne pas supprimer les cellules vides C8:C100.

Quoi qu'on fasse sur C2:C7, ça ne devrait pas influer C8:C100.

A part le VBA, une astuce consiste à faire un TCD basé sur C2:C7 ; tant qu'il ne sera pas mis à jour, les résultats y resteront.

Bonjour à tous,

avec une case à cocher
eric

16solutionsforum.xlsx (25.28 Ko)

Merci pour vos réponses mais j'ai finalement réussi à faire ce que je souhaitais après des heures de recherches. J'ai utilisé une macro VBA que j'ai attribué à un bouton.

Sub FigerResultatsindustriels()
Dim wsCitrate As Worksheet
Dim wsResultatsindustriels As Worksheet
Dim lastRow As Long
Dim i As Long

Set wsCitrate = ThisWorkbook.Sheets("Citrate")
Set wsResultatsindustriels = ThisWorkbook.Sheets("Resultats industriels")

' Trouver la dernière ligne utilisée dans la feuille Resultats
lastRow = wsResultatsindustriels.Cells(wsResultatsindustriels.Rows.Count, "A").End(xlUp).Row

For i = 5 To lastRow
If wsResultatsindustriels.Cells(i, 1).Value <> "" And wsResultatsindustriels.Cells(i, 2).Value <> "" And wsResultatsindustriels.Cells(i, 3).Value <> "" Then
If wsResultatsindustriels.Cells(i, 8).HasFormula Then
' Figer le résultat en remplaçant la formule par la valeur actuelle
wsResultatsindustriels.Cells(i, 8).Value = wsResultatsindustriels.Cells(i, 8).Value
End If
End If
Next i
End Sub

Rechercher des sujets similaires à "figer resultats formule supprimer vide"