Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suppresssion des formules ayant un résultat à la fermeture

4 réponses
Avatar
Yoyo
Bonjour =E0 tous

Afin d'all=E9ger mon fichier je souhaiterai qu'avant la fermeture de mon
fichier une macro s=E9lectionne toute les cellule ayant un r=E9sultat
issue d'une formule et remplace la formule par la valeur de celuici

par exemple avec un copier coller valeur

mais je ne sais pas comment faire ma s=E9lection afin qu'il ne prenne en
compte que les cellule qui on =E9t=E9 calculer( par exemple les celllule
contenant le signe"=3D " et leur valeur diff=E9rent "" )et que les autre
formule reste intact.

Je ne sais pas si j'ai =E9t=E9 clair mais j'esp=E8re que vous m'avez
compris

Cordialement Yoyo

4 réponses

Avatar
lSteph
Bonjour,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet, c As Range
On Error Resume Next
For Each sh In ActiveWorkbook.Sheets
sh.Activate
sh.Cells.SpecialCells(xlCellTypeFormulas).Select
For Each c In Selection
c = c.Value
Next
Next
on error goto 0
End Sub

'lSteph

"Yoyo" a écrit dans le message de news:

Bonjour à tous

Afin d'alléger mon fichier je souhaiterai qu'avant la fermeture de mon
fichier une macro sélectionne toute les cellule ayant un résultat
issue d'une formule et remplace la formule par la valeur de celuici

par exemple avec un copier coller valeur

mais je ne sais pas comment faire ma sélection afin qu'il ne prenne en
compte que les cellule qui on été calculer( par exemple les celllule
contenant le signe"= " et leur valeur différent "" )et que les autre
formule reste intact.

Je ne sais pas si j'ai été clair mais j'espère que vous m'avez
compris

Cordialement Yoyo
Avatar
Yoyo
Bonjour lsteph


Merci pour ta solution et je te tiens au courant s'il y a des soucis

Cordialement Yoyo
Avatar
Yoyo
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet, c As Range
Merci pour ce code il fonctionne très bien,
parcontre je n'arrive pas à mettre en place une condition sur une
collonne.
Je m'explique: je veux que ce code fonctionne sur toute les cellule
contenant des formule sauf si leur valeur et vide ou si elle
appartienne à la colonne f

pour cela j'insert une condition if c.value<>empty and not range ("F" &
c) then
mais la condition sur la colonne F ne fontionne pas

Merci de votre aide
cordialement yoyo

On Error Resume Next
For Each sh In ActiveWorkbook.Sheets
sh.Activate
sh.Cells.SpecialCells(xlCellTypeFormulas).Select
For Each c In Selection
if( c.value<>empty and not range ("F" & c) )then
c = c.Value
end if
Next
Next
on error goto 0
End Sub
Avatar
lSteph
Bonjour,
Dans la mesure où l'on impose xlCellTypeFormulas elle ne devraient pas être
vraiment "vides"
ceci devrait aller pour ta colonne 6 ou "f"

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet, c As Range
On Error Resume Next
For Each sh In ActiveWorkbook.Sheets
sh.Activate
sh.Cells.SpecialCells(xlCellTypeFormulas).Select
For Each c In Selection
If Not IsEmpty(c) And c.Column <> 6 Then
c = c.Value
End If
Next
Next
On Error GoTo 0
End Sub



'lSteph

"Yoyo" a écrit dans le message de news:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet, c As Range
Merci pour ce code il fonctionne très bien,
parcontre je n'arrive pas à mettre en place une condition sur une
collonne.
Je m'explique: je veux que ce code fonctionne sur toute les cellule
contenant des formule sauf si leur valeur et vide ou si elle
appartienne à la colonne f

pour cela j'insert une condition if c.value<>empty and not range ("F" &
c) then
mais la condition sur la colonne F ne fontionne pas

Merci de votre aide
cordialement yoyo

On Error Resume Next
For Each sh In ActiveWorkbook.Sheets
sh.Activate
sh.Cells.SpecialCells(xlCellTypeFormulas).Select
For Each c In Selection
if( c.value<>empty and not range ("F" & c) )then
c = c.Value
end if
Next
Next
on error goto 0
End Sub