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

Formater cellule

5 réponses
Avatar
jean-luc Guitard
Bonjour,
Ne peut-on pas faire plus simple pour formater une cellule sans être obligé de sélectionner la cellule
une instruction dans le genre Format :
ici je cherche le nombre de mois entre 2 dates
Juste un tout petit problème peut on arrondir au mois supérieur s'il y a un 1 mois et 18 jours de différence il indique
1 mois
peut on avoir 2 mois

MaDate = CDate(Sheets(1).Cells(i, 12).Value)
If IsDate(MaDate) Then
NbreMois = DateDiff("m", MaDate, Now)
Sheets(2).Cells(j, 7).Value = NbreMois
Sheets(2).Cells(j, 7).Select
Selection.NumberFormat = "General"
End If
merci

5 réponses

Avatar
DanielCo
Bonjour.
MaDate = CDate(Sheets(1).Cells(i, 12).Value)
If IsDate(MaDate) Then
With Sheets(2).Cells(j, 7)
.Value = DateDiff("m", MaDate, Now)
.NumberFormat = "General"
End With
End If
Cordialement.
Daniel


Bonjour,
Ne peut-on pas faire plus simple pour formater une cellule sans être obligé
de sélectionner la cellule
une instruction dans le genre Format :
ici je cherche le nombre de mois entre 2 dates
Juste un tout petit problème peut on arrondir au mois supérieur s'il y a un 1
mois et 18 jours de différence il indique 1 mois
peut on avoir 2 mois

MaDate = CDate(Sheets(1).Cells(i, 12).Value)
If IsDate(MaDate) Then
NbreMois = DateDiff("m", MaDate, Now)
Sheets(2).Cells(j, 7).Value = NbreMois
Sheets(2).Cells(j, 7).Select
Selection.NumberFormat = "General"
End If
merci
Avatar
LSteph
Bonjour,

Ecris directement:

Sheets(2).Cells(j, 7).NumberFormat = "General"


L'instruction select est presque toujours parfaitement inutile

Sheets(2).Cells(j, 7).Select
Selection.NumberFormat = "General"



'LSteph

On Feb 1, 10:39 am, "jean-luc Guitard" wrote:
Bonjour,
Ne peut-on pas faire plus simple pour formater une cellule sans être  obligé de sélectionner la cellule
une instruction dans le genre Format :
ici je cherche le nombre de mois entre 2 dates
Juste un tout petit problème peut on arrondir au mois supérieur s'il y a un 1 mois et 18 jours de différence il indique
1 mois
peut on avoir  2 mois

    MaDate = CDate(Sheets(1).Cells(i, 12).Value)
           If IsDate(MaDate) Then
               NbreMois = DateDiff("m", MaDate, Now)
               Sheets(2).Cells(j, 7).Value = NbreMois
               Sheets(2).Cells(j, 7).Select
               Selection.NumberFormat = "General"
    End If
merci
Avatar
michel ou sam
Bonjour,
pour l'arrondi tu as peut être intéret à compter les jours et à arrondir
nbjours/30

NbreMois = Round(DateDiff("d", MaDate, Now) / 30)

Michel

"jean-luc Guitard" a écrit dans le message de news:
4d47d4b4$0$5403$
Bonjour,
Ne peut-on pas faire plus simple pour formater une cellule sans être
obligé de sélectionner la cellule
une instruction dans le genre Format :
ici je cherche le nombre de mois entre 2 dates
Juste un tout petit problème peut on arrondir au mois supérieur s'il y a
un 1 mois et 18 jours de différence il indique 1 mois
peut on avoir 2 mois

MaDate = CDate(Sheets(1).Cells(i, 12).Value)
If IsDate(MaDate) Then
NbreMois = DateDiff("m", MaDate, Now)
Sheets(2).Cells(j, 7).Value = NbreMois
Sheets(2).Cells(j, 7).Select
Selection.NumberFormat = "General"
End If
merci
Avatar
Péhemme
Bonjour Jean-Luc,

Un truc comme cela ?
MaDate = CDate(Sheets(1).Cells(i, 12).Value)
If IsDate(MaDate) Then
NbreMois = DateDiff("m", MaDate, Now)
With Sheets(2).Cells(j, 7)
.Value = CLng(Format(Evaluate("int(" & NbreMois & "/0.5)*0.5"),
"0"))
.NumberFormat = "General"
End With
End If
Bonne journée
Michel


"jean-luc Guitard" a écrit dans le message de
news:4d47d4b4$0$5403$
Bonjour,
Ne peut-on pas faire plus simple pour formater une cellule sans être
obligé de sélectionner la cellule
une instruction dans le genre Format :
ici je cherche le nombre de mois entre 2 dates
Juste un tout petit problème peut on arrondir au mois supérieur s'il y a
un 1 mois et 18 jours de différence il indique 1 mois
peut on avoir 2 mois

MaDate = CDate(Sheets(1).Cells(i, 12).Value)
If IsDate(MaDate) Then
NbreMois = DateDiff("m", MaDate, Now)
Sheets(2).Cells(j, 7).Value = NbreMois
Sheets(2).Cells(j, 7).Select
Selection.NumberFormat = "General"
End If
merci
Avatar
michdenis
Bonjour Michel,

En vba, il vaut mieux utiliser Application.Round() au lieu de Round()

Exemple :
En VBA
x = Round(2.5, 0) retourne 2

Feuille de calcul :
=Arrondi(2,5;0) retourne 3

Il y a au moins une formule qui ne dit pas la vérité !
;-))

MichD
--------------------------------------------