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

Le
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #3137791
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" 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
MK
Le #3136291
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" 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





michdenis
Le #3136281
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" 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" 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





MK
Le #3135271
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" 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" 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










michdenis
Le #3135261
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" 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" 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" 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










MK
Le #3088931
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" 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" 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" 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















Publicité
Poster une réponse
Anonyme