OVH Cloud OVH Cloud

Affecter une fonction à une sélection

4 réponses
Avatar
AB
Bonjour,

Je cherche à affecter une fonction (ENT) en une seule fois à une sélection
de cellules, pas nécessairement adjacentes.
Si ces cellules contiennent des constantes, j'ai essayé ça :
Sub entier()
For Each c In Selection.Cells
c.Value = Int(c)
Next
End Sub
Ca marche. Mais je ne sais pas comment faire avec des cellules qui
contiennent des formules.
Si j'applique ce code, je perds les formules.
Y a-t-il un moyen d'obtenir un résultat entier, en gardant la formule qui
permet de l'obtenir, dans plusieurs cellules simultanément ?
AB

4 réponses

Avatar
Daniel
Bonjour.
c.Formula = "=int(" & Right(c.Formula, _
Len(c.Formula) - 1) & ")"
devrait faire l'affaire.
Cordialement.
Daniel
"AB" a écrit dans le message de news:

Bonjour,

Je cherche à affecter une fonction (ENT) en une seule fois à une sélection
de cellules, pas nécessairement adjacentes.
Si ces cellules contiennent des constantes, j'ai essayé ça :
Sub entier()
For Each c In Selection.Cells
c.Value = Int(c)
Next
End Sub
Ca marche. Mais je ne sais pas comment faire avec des cellules qui
contiennent des formules.
Si j'applique ce code, je perds les formules.
Y a-t-il un moyen d'obtenir un résultat entier, en gardant la formule qui
permet de l'obtenir, dans plusieurs cellules simultanément ?
AB



Avatar
AB
Daniel, grand merci. Ca fait parfaitement l'affaire.
Bon dimanche.
André

"Daniel" a écrit dans le message de news:
O%
Bonjour.
c.Formula = "=int(" & Right(c.Formula, _
Len(c.Formula) - 1) & ")"
devrait faire l'affaire.
Cordialement.
Daniel
"AB" a écrit dans le message de news:

Bonjour,

Je cherche à affecter une fonction (ENT) en une seule fois à une
sélection de cellules, pas nécessairement adjacentes.
Si ces cellules contiennent des constantes, j'ai essayé ça :
Sub entier()
For Each c In Selection.Cells
c.Value = Int(c)
Next
End Sub
Ca marche. Mais je ne sais pas comment faire avec des cellules qui
contiennent des formules.
Si j'applique ce code, je perds les formules.
Y a-t-il un moyen d'obtenir un résultat entier, en gardant la formule qui
permet de l'obtenir, dans plusieurs cellules simultanément ?
AB







Avatar
michdenis
Bonjour AB,

Il y a aussi ceci :

'-------------------------------
Sub test()

Dim Rg As Range, C As Range
If TypeName(Selection) = "Range" Then
On Error Resume Next
Set Rg = Selection.SpecialCells( _
xlCellTypeConstants, xlNumbers)
If Err <> 0 Then Exit Sub
For Each C In Rg
C.Value = Int(C)
Next
End If
Set Rg = Nothing: Set C = Nothing

End Sub
'-------------------------------


Salutations!



"AB" a écrit dans le message de news:
Bonjour,

Je cherche à affecter une fonction (ENT) en une seule fois à une sélection
de cellules, pas nécessairement adjacentes.
Si ces cellules contiennent des constantes, j'ai essayé ça :
Sub entier()
For Each c In Selection.Cells
c.Value = Int(c)
Next
End Sub
Ca marche. Mais je ne sais pas comment faire avec des cellules qui
contiennent des formules.
Si j'applique ce code, je perds les formules.
Y a-t-il un moyen d'obtenir un résultat entier, en gardant la formule qui
permet de l'obtenir, dans plusieurs cellules simultanément ?
AB
Avatar
AB
Salut,
Ta proposition fonctionne avec les cellules ne contenant pas des formules,
mais des valeurs.
Or, mon problème (résolu désormais), concernait les cellules avec formules.
Merci quand même, en tout cas.
AB

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

Bonjour AB,

Il y a aussi ceci :

'-------------------------------
Sub test()

Dim Rg As Range, C As Range
If TypeName(Selection) = "Range" Then
On Error Resume Next
Set Rg = Selection.SpecialCells( _
xlCellTypeConstants, xlNumbers)
If Err <> 0 Then Exit Sub
For Each C In Rg
C.Value = Int(C)
Next
End If
Set Rg = Nothing: Set C = Nothing

End Sub
'-------------------------------


Salutations!



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

Bonjour,

Je cherche à affecter une fonction (ENT) en une seule fois à une sélection
de cellules, pas nécessairement adjacentes.
Si ces cellules contiennent des constantes, j'ai essayé ça :
Sub entier()
For Each c In Selection.Cells
c.Value = Int(c)
Next
End Sub
Ca marche. Mais je ne sais pas comment faire avec des cellules qui
contiennent des formules.
Si j'applique ce code, je perds les formules.
Y a-t-il un moyen d'obtenir un résultat entier, en gardant la formule qui
permet de l'obtenir, dans plusieurs cellules simultanément ?
AB