OVH Cloud OVH Cloud

Comment puis-je changer dans VB le format d'une variable?

6 réponses
Avatar
MK
Je veux change le format de ma variable, mais je n'ai pas trouvé comment.
Sub
Range("A1").Select
Selection.NumberFormatLocal = "j mmmm aaaa"
Name = ActiveCell.Value
Enb sub
Name = 2005-09-08 je veux qu'elle devienne 8 juillet 2005

6 réponses

Avatar
michdenis
Bonsoir MK,

Pour tes noms de variables, tu dois choisir des "mots" qui ne font pas parti des expressions réservées au langage VBA lui-même pour
éviter toute confusion.

Dim MaDate As Date

MaDate = CDate("2005-09-08")

'OU ceci qui est encore meilleur...

' DateSerial(year,month,day)
MaDate = DateSerial(2005, 9, 8)

With Range("A1")
.NumberFormatLocal = "j mmmm aaaa"
.Value = MaDate
End With


Salutations!




"MK" a écrit dans le message de news:
Je veux change le format de ma variable, mais je n'ai pas trouvé comment.
Sub
Range("A1").Select
Selection.NumberFormatLocal = "j mmmm aaaa"
Name = ActiveCell.Value
Enb sub
Name = 2005-09-08 je veux qu'elle devienne 8 juillet 2005
Avatar
MK
Merci michdenis, mais je crois que ma question n'est pas clair.
Sub
Windows("Rapport #1.xls").Activate
Range("A20").Select
OLD = ActiveCell.Value
ChDir "C:Vieux Rapport1"
ActiveWorkbook.SaveAs Filename:= _
"C:Vieux Rapport1Rapport #1 (" & OLD & ").xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

Application.SendKeys ("Y")
ChDir "C:Rapport #1"
ActiveWorkbook.SaveAs Filename:= _
"C:Rapport #1Rapport #1.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
End

Voilà la partie de programme que je veux améliorer. La variable OLD c'est la
date du vieux rapport avant update pour donner le nouveau nom de fichier.
Là le fichier est enregister sous Rapport #1 (2005-09-08).xls, je veux qu'il
devienne Rapport #1 (8 septembre 2005).xls

Merci



Bonsoir MK,

Pour tes noms de variables, tu dois choisir des "mots" qui ne font pas parti des expressions réservées au langage VBA lui-même pour
éviter toute confusion.

Dim MaDate As Date

MaDate = CDate("2005-09-08")

'OU ceci qui est encore meilleur...

' DateSerial(year,month,day)
MaDate = DateSerial(2005, 9, 8)

With Range("A1")
.NumberFormatLocal = "j mmmm aaaa"
.Value = MaDate
End With


Salutations!




"MK" a écrit dans le message de news:
Je veux change le format de ma variable, mais je n'ai pas trouvé comment.
Sub
Range("A1").Select
Selection.NumberFormatLocal = "j mmmm aaaa"
Name = ActiveCell.Value
Enb sub
Name = 2005-09-08 je veux qu'elle devienne 8 juillet 2005





Avatar
michdenis
Bonsoir Mk,

Essaie quelque chose qui ressemble à ça :

Assure-toi de modifier le nom de la feuille citée dans la procédure.

'------------------------------------------
Sub EnregistrerSousUnNouveauNom()

Dim AncienFichier As String
Dim NouveauNom As String
Dim LaDate As String, S As Integer

With Worksheets("Feuil1") ' nom feuille à déterminer
If IsDate(.Range("A20")) Then
LaDate = Format(.Range("A20"), "d mmmm yyyy")
Else
MsgBox "Attention, la date d'enregistrement est manquante."
Exit Sub
End If
End With

With ThisWorkbook
AncienFichier = .FullName
S = InStr(1, AncienFichier, "#", vbTextCompare) + 1
NouveauNom = Left(AncienFichier, S) & " (" & LaDate & ").xls"
.SaveAs NouveauNom
'Et si tu veux détruire l'ancien fichier
'attention, aucun moyen de récupération par la poubelle !
'Active la ligne de code suivante en enlevant l'apostrophe.
'Kill AncienFichier
End With

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


Salutations!



"MK" a écrit dans le message de news:
Merci michdenis, mais je crois que ma question n'est pas clair.
Sub
Windows("Rapport #1.xls").Activate
Range("A20").Select
OLD = ActiveCell.Value
ChDir "C:Vieux Rapport1"
ActiveWorkbook.SaveAs Filename:= _
"C:Vieux Rapport1Rapport #1 (" & OLD & ").xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

Application.SendKeys ("Y")
ChDir "C:Rapport #1"
ActiveWorkbook.SaveAs Filename:= _
"C:Rapport #1Rapport #1.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
End

Voilà la partie de programme que je veux améliorer. La variable OLD c'est la
date du vieux rapport avant update pour donner le nouveau nom de fichier.
Là le fichier est enregister sous Rapport #1 (2005-09-08).xls, je veux qu'il
devienne Rapport #1 (8 septembre 2005).xls

Merci



Bonsoir MK,

Pour tes noms de variables, tu dois choisir des "mots" qui ne font pas parti des expressions réservées au langage VBA lui-même
pour
éviter toute confusion.

Dim MaDate As Date

MaDate = CDate("2005-09-08")

'OU ceci qui est encore meilleur...

' DateSerial(year,month,day)
MaDate = DateSerial(2005, 9, 8)

With Range("A1")
.NumberFormatLocal = "j mmmm aaaa"
.Value = MaDate
End With


Salutations!




"MK" a écrit dans le message de news:
Je veux change le format de ma variable, mais je n'ai pas trouvé comment.
Sub
Range("A1").Select
Selection.NumberFormatLocal = "j mmmm aaaa"
Name = ActiveCell.Value
Enb sub
Name = 2005-09-08 je veux qu'elle devienne 8 juillet 2005





Avatar
MK
Bonjour merci ça fonctionne, mais la valeur de LaDate est ex. 20 janvier 200520
La valeur de ma cellule est bien 2005-01-20.

Le 20 janvier 2005 est correct mais il y a 20 qui ce rajoute à la fin et qui
désigne la 20eme journée de l'année.
Peut-on enlever le 20 à la fin?


Bonsoir Mk,

Essaie quelque chose qui ressemble à ça :

Assure-toi de modifier le nom de la feuille citée dans la procédure.

'------------------------------------------
Sub EnregistrerSousUnNouveauNom()

Dim AncienFichier As String
Dim NouveauNom As String
Dim LaDate As String, S As Integer

With Worksheets("Feuil1") ' nom feuille à déterminer
If IsDate(.Range("A20")) Then
LaDate = Format(.Range("A20"), "d mmmm yyyy")
Else
MsgBox "Attention, la date d'enregistrement est manquante."
Exit Sub
End If
End With

With ThisWorkbook
AncienFichier = .FullName
S = InStr(1, AncienFichier, "#", vbTextCompare) + 1
NouveauNom = Left(AncienFichier, S) & " (" & LaDate & ").xls"
.SaveAs NouveauNom
'Et si tu veux détruire l'ancien fichier
'attention, aucun moyen de récupération par la poubelle !
'Active la ligne de code suivante en enlevant l'apostrophe.
'Kill AncienFichier
End With

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


Salutations!



"MK" a écrit dans le message de news:
Merci michdenis, mais je crois que ma question n'est pas clair.
Sub
Windows("Rapport #1.xls").Activate
Range("A20").Select
OLD = ActiveCell.Value
ChDir "C:Vieux Rapport1"
ActiveWorkbook.SaveAs Filename:= _
"C:Vieux Rapport1Rapport #1 (" & OLD & ").xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

Application.SendKeys ("Y")
ChDir "C:Rapport #1"
ActiveWorkbook.SaveAs Filename:= _
"C:Rapport #1Rapport #1.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
End

Voilà la partie de programme que je veux améliorer. La variable OLD c'est la
date du vieux rapport avant update pour donner le nouveau nom de fichier.
Là le fichier est enregister sous Rapport #1 (2005-09-08).xls, je veux qu'il
devienne Rapport #1 (8 septembre 2005).xls

Merci



Bonsoir MK,

Pour tes noms de variables, tu dois choisir des "mots" qui ne font pas parti des expressions réservées au langage VBA lui-même
pour
éviter toute confusion.

Dim MaDate As Date

MaDate = CDate("2005-09-08")

'OU ceci qui est encore meilleur...

' DateSerial(year,month,day)
MaDate = DateSerial(2005, 9, 8)

With Range("A1")
.NumberFormatLocal = "j mmmm aaaa"
.Value = MaDate
End With


Salutations!




"MK" a écrit dans le message de news:
Je veux change le format de ma variable, mais je n'ai pas trouvé comment.
Sub
Range("A1").Select
Selection.NumberFormatLocal = "j mmmm aaaa"
Name = ActiveCell.Value
Enb sub
Name = 2005-09-08 je veux qu'elle devienne 8 juillet 2005










Avatar
michdenis
Bonsoir Mk,

Je ne comprends pas trop ce qui se passe, car pour avoir ton résultat cette ligne de code devrait ressembler à ceci :

LaDate = Format(.Range("A20"), "d mmmm yyyyd")

Observe le "d" à la suite des "yyyy" indiquant l'année. Donc tu as l'année 2005 + le jour 20 de concaténer pour faire 200520.

si je regarde la macro que je t'ai envoyé tu as bien :

LaDate = Format(.Range("A20"), "d mmmm yyyy")

Je vois difficilement comment cela pourrait générer le type de réponse que tu obiens.

Si tu n'y arrives pas, envoie pas ton fichier si tu veux dans ma BAL.


Salutations!



"MK" a écrit dans le message de news:
Bonjour merci ça fonctionne, mais la valeur de LaDate est ex. 20 janvier 200520
La valeur de ma cellule est bien 2005-01-20.

Le 20 janvier 2005 est correct mais il y a 20 qui ce rajoute à la fin et qui
désigne la 20eme journée de l'année.
Peut-on enlever le 20 à la fin?


Bonsoir Mk,

Essaie quelque chose qui ressemble à ça :

Assure-toi de modifier le nom de la feuille citée dans la procédure.

'------------------------------------------
Sub EnregistrerSousUnNouveauNom()

Dim AncienFichier As String
Dim NouveauNom As String
Dim LaDate As String, S As Integer

With Worksheets("Feuil1") ' nom feuille à déterminer
If IsDate(.Range("A20")) Then
LaDate = Format(.Range("A20"), "d mmmm yyyy")
Else
MsgBox "Attention, la date d'enregistrement est manquante."
Exit Sub
End If
End With

With ThisWorkbook
AncienFichier = .FullName
S = InStr(1, AncienFichier, "#", vbTextCompare) + 1
NouveauNom = Left(AncienFichier, S) & " (" & LaDate & ").xls"
.SaveAs NouveauNom
'Et si tu veux détruire l'ancien fichier
'attention, aucun moyen de récupération par la poubelle !
'Active la ligne de code suivante en enlevant l'apostrophe.
'Kill AncienFichier
End With

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


Salutations!



"MK" a écrit dans le message de news:
Merci michdenis, mais je crois que ma question n'est pas clair.
Sub
Windows("Rapport #1.xls").Activate
Range("A20").Select
OLD = ActiveCell.Value
ChDir "C:Vieux Rapport1"
ActiveWorkbook.SaveAs Filename:= _
"C:Vieux Rapport1Rapport #1 (" & OLD & ").xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

Application.SendKeys ("Y")
ChDir "C:Rapport #1"
ActiveWorkbook.SaveAs Filename:= _
"C:Rapport #1Rapport #1.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
End

Voilà la partie de programme que je veux améliorer. La variable OLD c'est la
date du vieux rapport avant update pour donner le nouveau nom de fichier.
Là le fichier est enregister sous Rapport #1 (2005-09-08).xls, je veux qu'il
devienne Rapport #1 (8 septembre 2005).xls

Merci



Bonsoir MK,

Pour tes noms de variables, tu dois choisir des "mots" qui ne font pas parti des expressions réservées au langage VBA lui-même
pour
éviter toute confusion.

Dim MaDate As Date

MaDate = CDate("2005-09-08")

'OU ceci qui est encore meilleur...

' DateSerial(year,month,day)
MaDate = DateSerial(2005, 9, 8)

With Range("A1")
.NumberFormatLocal = "j mmmm aaaa"
.Value = MaDate
End With


Salutations!




"MK" a écrit dans le message de news:
Je veux change le format de ma variable, mais je n'ai pas trouvé comment.
Sub
Range("A1").Select
Selection.NumberFormatLocal = "j mmmm aaaa"
Name = ActiveCell.Value
Enb sub
Name = 2005-09-08 je veux qu'elle devienne 8 juillet 2005










Avatar
MK
Merci de ton aide, j'ai fait une erreur.

LaDate = Format(.Range("A20"), "d mmmm yyyyy")

J'ai mis 5 y se qui doit donner la même chose que yyyyd.

Merci encore et bon travail


Bonsoir Mk,

Je ne comprends pas trop ce qui se passe, car pour avoir ton résultat cette ligne de code devrait ressembler à ceci :

LaDate = Format(.Range("A20"), "d mmmm yyyyd")

Observe le "d" à la suite des "yyyy" indiquant l'année. Donc tu as l'année 2005 + le jour 20 de concaténer pour faire 200520.

si je regarde la macro que je t'ai envoyé tu as bien :

LaDate = Format(.Range("A20"), "d mmmm yyyy")

Je vois difficilement comment cela pourrait générer le type de réponse que tu obiens.

Si tu n'y arrives pas, envoie pas ton fichier si tu veux dans ma BAL.


Salutations!



"MK" a écrit dans le message de news:
Bonjour merci ça fonctionne, mais la valeur de LaDate est ex. 20 janvier 200520
La valeur de ma cellule est bien 2005-01-20.

Le 20 janvier 2005 est correct mais il y a 20 qui ce rajoute à la fin et qui
désigne la 20eme journée de l'année.
Peut-on enlever le 20 à la fin?


Bonsoir Mk,

Essaie quelque chose qui ressemble à ça :

Assure-toi de modifier le nom de la feuille citée dans la procédure.

'------------------------------------------
Sub EnregistrerSousUnNouveauNom()

Dim AncienFichier As String
Dim NouveauNom As String
Dim LaDate As String, S As Integer

With Worksheets("Feuil1") ' nom feuille à déterminer
If IsDate(.Range("A20")) Then
LaDate = Format(.Range("A20"), "d mmmm yyyy")
Else
MsgBox "Attention, la date d'enregistrement est manquante."
Exit Sub
End If
End With

With ThisWorkbook
AncienFichier = .FullName
S = InStr(1, AncienFichier, "#", vbTextCompare) + 1
NouveauNom = Left(AncienFichier, S) & " (" & LaDate & ").xls"
.SaveAs NouveauNom
'Et si tu veux détruire l'ancien fichier
'attention, aucun moyen de récupération par la poubelle !
'Active la ligne de code suivante en enlevant l'apostrophe.
'Kill AncienFichier
End With

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


Salutations!



"MK" a écrit dans le message de news:
Merci michdenis, mais je crois que ma question n'est pas clair.
Sub
Windows("Rapport #1.xls").Activate
Range("A20").Select
OLD = ActiveCell.Value
ChDir "C:Vieux Rapport1"
ActiveWorkbook.SaveAs Filename:= _
"C:Vieux Rapport1Rapport #1 (" & OLD & ").xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

Application.SendKeys ("Y")
ChDir "C:Rapport #1"
ActiveWorkbook.SaveAs Filename:= _
"C:Rapport #1Rapport #1.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:úlse _
, CreateBackup:úlse
End

Voilà la partie de programme que je veux améliorer. La variable OLD c'est la
date du vieux rapport avant update pour donner le nouveau nom de fichier.
Là le fichier est enregister sous Rapport #1 (2005-09-08).xls, je veux qu'il
devienne Rapport #1 (8 septembre 2005).xls

Merci



Bonsoir MK,

Pour tes noms de variables, tu dois choisir des "mots" qui ne font pas parti des expressions réservées au langage VBA lui-même
pour
éviter toute confusion.

Dim MaDate As Date

MaDate = CDate("2005-09-08")

'OU ceci qui est encore meilleur...

' DateSerial(year,month,day)
MaDate = DateSerial(2005, 9, 8)

With Range("A1")
.NumberFormatLocal = "j mmmm aaaa"
.Value = MaDate
End With


Salutations!




"MK" a écrit dans le message de news:
Je veux change le format de ma variable, mais je n'ai pas trouvé comment.
Sub
Range("A1").Select
Selection.NumberFormatLocal = "j mmmm aaaa"
Name = ActiveCell.Value
Enb sub
Name = 2005-09-08 je veux qu'elle devienne 8 juillet 2005