OVH Cloud OVH Cloud

vba - Sheets(f).Range("A1").NumberFormat = "mmmm" et valeur en mêm e temps

13 réponses
Avatar
twinley
Bonsoir,


Dans une petite boucle, je veux écrire en A1 de chaque feuille 7 à 18
le chiffre 1 ou 2 ou 3 etc. 11 et enfin 12.
Dans le foulée du formatage de colonne, je voulais appliquer un format à
A1 pour modifier le 1 en janvier, le 2 en Février etc.



J'ai mis m en variant, en integer ça passe pas mieux.

Dim f As Integer
Dim m As Integer


For f = 7 To 18
Sheets(1).Select
Sheets(1).Range("A1", [A1].End(xlDown)).Copy _
Destination:=Sheets(f).Range("A1")
Sheets(f).Select
Sheets(f).Range("1:1").EntireColumn.AutoFit
m = f - 6
Sheets(f).Range("A1") = m
Sheets(f).Range("A1").NumberFormat = "mmmm"
Next f


Cette boucle fait le boulot.
Mais je voulais faire attribuer la valeur à la cellule et appliquer le
format en un seul coup de cuillere à pot

Sheets(f).Range("A1") = m.Format("mmmm")

Mais j'ai une erreur objet requis.

Comment appliquer le format texte sur ce nombre que je veux faire
reconnaitre comme mois ? Si c'est posssible en une ligne...

merci pour l'aide.

--
à+twinley

3 réponses

1 2
Avatar
twinley
simple ! tu as de ces mots...
je suis en nage, liquide.

Quelle aventure.
Finalement je prend la version dateserial tout en restant admiratif sur
le mystérieux evaluate date d'Isa.

Bonne nuit. Merci à tous.

à+twinley

anonymousA wrote:
re,

bien sur , y'a beaucoup plus simple comme toujours

Sheets(1).Range("A1")=Format(DateSerial(2001, m, 1), "mmmm")

A+


mes excuses pour formule foireuse

celle-ci marche sous réserve d'avoir Excel 2000. Un peu compliqué mais
y ai été sans trop de réflexiopn préalabme

Sheets(1).Range("A" & m) = Split(FormatDateTime("01/" & m & "/01",
vbLongDate), " ")(2)

A+



bonjour,

Sheets(1).Range("A1") = Format(m, "mmmm")

A+


C'est un peu plus complexe car le deux est pris pour le deux janvier.
Il faut que j'améliore mais la contraction en une ligne reste
d'actualité.


à+twinley

twinley wrote:

Bonsoir,


Dans une petite boucle, je veux écrire en A1 de chaque feuille 7 à 18
le chiffre 1 ou 2 ou 3 etc. 11 et enfin 12.
Dans le foulée du formatage de colonne, je voulais appliquer un
format à A1 pour modifier le 1 en janvier, le 2 en Février etc.



J'ai mis m en variant, en integer ça passe pas mieux.

Dim f As Integer
Dim m As Integer


For f = 7 To 18
Sheets(1).Select
Sheets(1).Range("A1", [A1].End(xlDown)).Copy _
Destination:=Sheets(f).Range("A1")
Sheets(f).Select
Sheets(f).Range("1:1").EntireColumn.AutoFit
m = f - 6
Sheets(f).Range("A1") = m
Sheets(f).Range("A1").NumberFormat = "mmmm"
Next f


Cette boucle fait le boulot.
Mais je voulais faire attribuer la valeur à la cellule et appliquer
le format en un seul coup de cuillere à pot

Sheets(f).Range("A1") = m.Format("mmmm")

Mais j'ai une erreur objet requis.

Comment appliquer le format texte sur ce nombre que je veux faire
reconnaitre comme mois ? Si c'est posssible en une ligne...

merci pour l'aide.











Avatar
Modeste
Bonsour® Max :
Isabelle :
Format(Evaluate("DATE(2005,A1,1)"), "mmmm")

Max :
Sheets(f).Range("A1") = Format(Evaluate("DATE(2005,A1,1)"), "mmmm")


tant qu'a etre concis : (Excel utilise l'année en cours par défaut)

With Sheet(f)
'..../....
[A1] = Format("01/" & [A1], "mmmm") ' version FR
'[A1] = Format( [A1]& "/01", "mmmm") ' version UK
'..../....
End With

@+

Avatar
twinley
Bonjour,

ça marche très bien aussi. Bravo.

With Sheets(f)


à+twinley

Modeste wrote:
Bonsour® Max :

Isabelle :
Format(Evaluate("DATE(2005,A1,1)"), "mmmm")



Max :
Sheets(f).Range("A1") = Format(Evaluate("DATE(2005,A1,1)"), "mmmm")



tant qu'a etre concis : (Excel utilise l'année en cours par défaut)

With Sheet(f)
'..../....
[A1] = Format("01/" & [A1], "mmmm") ' version FR
'[A1] = Format( [A1]& "/01", "mmmm") ' version UK
'..../....
End With

@+





1 2