OVH Cloud OVH Cloud

Format date dans textbox

10 réponses
Avatar
Didier
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")

10 réponses

Avatar
Pierre CFI [mvp]
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")






Avatar
Didier
Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")










Avatar
michdenis
Bonsoir Didier,

ActiveCell = Format(TextBox1, "mm/dd/yy")

Cette façon de faire comporte des dangers :

Si c'était le contenu de ton textbox :
TextBox1 = "25/15/2004"

Avec cette formule, la cellule afficherait 25/15/2004 ...Tu sais comment s'appelle le 15 ième mois de l'année ?
ActiveCell = Format(TextBox1, "mm/dd/yy")

Dans cet exemple, l'utilisation de la fonction remplit le rôle d'une fonction de conversion qui existe déjà dans vba et
qui s'appelle cdate() .

Dans les 2 cas, il est préférable d'utiliser un test pour savoir si le contenu de ton textbox est une date .

If isdate(me.textbox1) = true then
activecell = cdate(me.textbox1)
end if

Et si tu veux vraiment afficher un format de date personnalisé dans ta cellule,
tu dois utiliser ceci :

If isdate(me.textbox1) = true then
activecell.numberformat = "ddd mmm yy"
activecell = cdate(me.textbox1)
end if


Salutations!





"Didier" a écrit dans le message de news:
Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")










Avatar
Didier
Bonjour Denis, cela fonctionne très bien
mais comment faire l'inverse, c'est à dire :
TextBox1 = ActiveCell.Value
et avoir dans le textbox le format dd/mm/yy
Encore merci
Didier


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

Bonsoir Didier,

ActiveCell = Format(TextBox1, "mm/dd/yy")

Cette façon de faire comporte des dangers :

Si c'était le contenu de ton textbox :
TextBox1 = "25/15/2004"

Avec cette formule, la cellule afficherait 25/15/2004 ...Tu sais comment
s'appelle le 15 ième mois de l'année ?
ActiveCell = Format(TextBox1, "mm/dd/yy")

Dans cet exemple, l'utilisation de la fonction remplit le rôle d'une
fonction de conversion qui existe déjà dans vba et
qui s'appelle cdate() .

Dans les 2 cas, il est préférable d'utiliser un test pour savoir si le
contenu de ton textbox est une date .

If isdate(me.textbox1) = true then
activecell = cdate(me.textbox1)
end if

Et si tu veux vraiment afficher un format de date personnalisé dans ta
cellule,
tu dois utiliser ceci :

If isdate(me.textbox1) = true then
activecell.numberformat = "ddd mmm yy"
activecell = cdate(me.textbox1)
end if


Salutations!





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

Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")















Avatar
michdenis
Bonjour Didier,

Tu peux utliser la fonction "Format" pour attribuer un format particulier à une variable ou à un textbox... il n'y a
aucun problème tant et aussi longtemps que tu n'essaies pas d'utiliser cette fonction pour appliquer un format à une
cellule. Format s'applique seulement en VBA dans le code.

Voici un exemple à mettre dans le code d'un formulaire :

Tu appliques le format personnalisé que tu désires ...!
'--------------------
Private Sub CommandButton1_Click()

With Worksheets("Feuil1")
If IsDate(.Range("A1")) = True Then
Me.TextBox1 = Format(.Range("A1"), "ddd, d mmm yyyy")
End If
End With

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


Salutations!



"Didier" a écrit dans le message de news:
Bonjour Denis, cela fonctionne très bien
mais comment faire l'inverse, c'est à dire :
TextBox1 = ActiveCell.Value
et avoir dans le textbox le format dd/mm/yy
Encore merci
Didier


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

Bonsoir Didier,

ActiveCell = Format(TextBox1, "mm/dd/yy")

Cette façon de faire comporte des dangers :

Si c'était le contenu de ton textbox :
TextBox1 = "25/15/2004"

Avec cette formule, la cellule afficherait 25/15/2004 ...Tu sais comment
s'appelle le 15 ième mois de l'année ?
ActiveCell = Format(TextBox1, "mm/dd/yy")

Dans cet exemple, l'utilisation de la fonction remplit le rôle d'une
fonction de conversion qui existe déjà dans vba et
qui s'appelle cdate() .

Dans les 2 cas, il est préférable d'utiliser un test pour savoir si le
contenu de ton textbox est une date .

If isdate(me.textbox1) = true then
activecell = cdate(me.textbox1)
end if

Et si tu veux vraiment afficher un format de date personnalisé dans ta
cellule,
tu dois utiliser ceci :

If isdate(me.textbox1) = true then
activecell.numberformat = "ddd mmm yy"
activecell = cdate(me.textbox1)
end if


Salutations!





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

Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")















Avatar
Didier
Bonsoir Denis
Cela devrait dans mon cas ressembler à cela, mais ça ne fonctionne pas.
Peux-tu m'indiquer ce qui ne fonctionne pas ?
Merci encore
Didier

With Worksheets("Travail")
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
End If
End With


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

Bonjour Didier,

Tu peux utliser la fonction "Format" pour attribuer un format particulier
à une variable ou à un textbox... il n'y a
aucun problème tant et aussi longtemps que tu n'essaies pas d'utiliser
cette fonction pour appliquer un format à une
cellule. Format s'applique seulement en VBA dans le code.

Voici un exemple à mettre dans le code d'un formulaire :

Tu appliques le format personnalisé que tu désires ...!
'--------------------
Private Sub CommandButton1_Click()

With Worksheets("Feuil1")
If IsDate(.Range("A1")) = True Then
Me.TextBox1 = Format(.Range("A1"), "ddd, d mmm yyyy")
End If
End With

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


Salutations!



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

Bonjour Denis, cela fonctionne très bien
mais comment faire l'inverse, c'est à dire :
TextBox1 = ActiveCell.Value
et avoir dans le textbox le format dd/mm/yy
Encore merci
Didier


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

Bonsoir Didier,

ActiveCell = Format(TextBox1, "mm/dd/yy")

Cette façon de faire comporte des dangers :

Si c'était le contenu de ton textbox :
TextBox1 = "25/15/2004"

Avec cette formule, la cellule afficherait 25/15/2004 ...Tu sais comment
s'appelle le 15 ième mois de l'année ?
ActiveCell = Format(TextBox1, "mm/dd/yy")

Dans cet exemple, l'utilisation de la fonction remplit le rôle d'une
fonction de conversion qui existe déjà dans vba et
qui s'appelle cdate() .

Dans les 2 cas, il est préférable d'utiliser un test pour savoir si le
contenu de ton textbox est une date .

If isdate(me.textbox1) = true then
activecell = cdate(me.textbox1)
end if

Et si tu veux vraiment afficher un format de date personnalisé dans ta
cellule,
tu dois utiliser ceci :

If isdate(me.textbox1) = true then
activecell.numberformat = "ddd mmm yy"
activecell = cdate(me.textbox1)
end if


Salutations!





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

Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")




















Avatar
michdenis
Bonjour Didier,

A )
La cellule Range("A" & ActiveCell.Row) DOIT être une date ... c'est-à-dire que cette "date" doit être dans un format que
reconnaît excel sinon rien ne s'inscrira dans le textbox. Si tu veux voir dans le textbox ce qu'il y a dans la cellule
lorsque ce n'est pas une date, apporte cette variante : (ajouter le Else)

B ) Comme tu utilises ActiveCell.Row : cela fait référence à la feuille active ... celle qui est affichée à l'écran dans
l'application... au moment de l'exécution du code. En conséquence, la manière dont est écrit le code, ActiveCell.Row ne
représente pas nécessairement la "Ligne" de la cellule active de la feuille "Travail", car ce n'est pas nécessaire elle
qui est active dans la procédure ... la correction a apporté : ajouter "Activate"

C ) Le code doit être dans le module du formulaire, sinon remplace Me par Userform1 (son nom défini par la propriété
Name)

'-------------------------------
With Worksheets("Travail")
.Activate
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
Else
Me.TextBox1 = .Range("A" & ActiveCell.Row)
End If
End With
'-------------------------------


Salutations!



"Didier" a écrit dans le message de news:
Bonsoir Denis
Cela devrait dans mon cas ressembler à cela, mais ça ne fonctionne pas.
Peux-tu m'indiquer ce qui ne fonctionne pas ?
Merci encore
Didier

With Worksheets("Travail")
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
End If
End With


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

Bonjour Didier,

Tu peux utliser la fonction "Format" pour attribuer un format particulier
à une variable ou à un textbox... il n'y a
aucun problème tant et aussi longtemps que tu n'essaies pas d'utiliser
cette fonction pour appliquer un format à une
cellule. Format s'applique seulement en VBA dans le code.

Voici un exemple à mettre dans le code d'un formulaire :

Tu appliques le format personnalisé que tu désires ...!
'--------------------
Private Sub CommandButton1_Click()

With Worksheets("Feuil1")
If IsDate(.Range("A1")) = True Then
Me.TextBox1 = Format(.Range("A1"), "ddd, d mmm yyyy")
End If
End With

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


Salutations!



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

Bonjour Denis, cela fonctionne très bien
mais comment faire l'inverse, c'est à dire :
TextBox1 = ActiveCell.Value
et avoir dans le textbox le format dd/mm/yy
Encore merci
Didier


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

Bonsoir Didier,

ActiveCell = Format(TextBox1, "mm/dd/yy")

Cette façon de faire comporte des dangers :

Si c'était le contenu de ton textbox :
TextBox1 = "25/15/2004"

Avec cette formule, la cellule afficherait 25/15/2004 ...Tu sais comment
s'appelle le 15 ième mois de l'année ?
ActiveCell = Format(TextBox1, "mm/dd/yy")

Dans cet exemple, l'utilisation de la fonction remplit le rôle d'une
fonction de conversion qui existe déjà dans vba et
qui s'appelle cdate() .

Dans les 2 cas, il est préférable d'utiliser un test pour savoir si le
contenu de ton textbox est une date .

If isdate(me.textbox1) = true then
activecell = cdate(me.textbox1)
end if

Et si tu veux vraiment afficher un format de date personnalisé dans ta
cellule,
tu dois utiliser ceci :

If isdate(me.textbox1) = true then
activecell.numberformat = "ddd mmm yy"
activecell = cdate(me.textbox1)
end if


Salutations!





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

Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")




















Avatar
Didier
Bonsoir DEnis
j'ai une erreur de syntaxe au niveau de cette ligne :
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
Merci pour toutes les explications
Didier


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

Bonjour Didier,

A )
La cellule Range("A" & ActiveCell.Row) DOIT être une date ... c'est-à-dire
que cette "date" doit être dans un format que
reconnaît excel sinon rien ne s'inscrira dans le textbox. Si tu veux voir
dans le textbox ce qu'il y a dans la cellule
lorsque ce n'est pas une date, apporte cette variante : (ajouter le Else)

B ) Comme tu utilises ActiveCell.Row : cela fait référence à la feuille
active ... celle qui est affichée à l'écran dans
l'application... au moment de l'exécution du code. En conséquence, la
manière dont est écrit le code, ActiveCell.Row ne
représente pas nécessairement la "Ligne" de la cellule active de la
feuille "Travail", car ce n'est pas nécessaire elle
qui est active dans la procédure ... la correction a apporté : ajouter
"Activate"

C ) Le code doit être dans le module du formulaire, sinon remplace Me par
Userform1 (son nom défini par la propriété
Name)

'-------------------------------
With Worksheets("Travail")
.Activate
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
Else
Me.TextBox1 = .Range("A" & ActiveCell.Row)
End If
End With
'-------------------------------


Salutations!



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

Bonsoir Denis
Cela devrait dans mon cas ressembler à cela, mais ça ne fonctionne pas.
Peux-tu m'indiquer ce qui ne fonctionne pas ?
Merci encore
Didier

With Worksheets("Travail")
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
End If
End With


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

Bonjour Didier,

Tu peux utliser la fonction "Format" pour attribuer un format particulier
à une variable ou à un textbox... il n'y a
aucun problème tant et aussi longtemps que tu n'essaies pas d'utiliser
cette fonction pour appliquer un format à une
cellule. Format s'applique seulement en VBA dans le code.

Voici un exemple à mettre dans le code d'un formulaire :

Tu appliques le format personnalisé que tu désires ...!
'--------------------
Private Sub CommandButton1_Click()

With Worksheets("Feuil1")
If IsDate(.Range("A1")) = True Then
Me.TextBox1 = Format(.Range("A1"), "ddd, d mmm yyyy")
End If
End With

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


Salutations!



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

Bonjour Denis, cela fonctionne très bien
mais comment faire l'inverse, c'est à dire :
TextBox1 = ActiveCell.Value
et avoir dans le textbox le format dd/mm/yy
Encore merci
Didier


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

Bonsoir Didier,

ActiveCell = Format(TextBox1, "mm/dd/yy")

Cette façon de faire comporte des dangers :

Si c'était le contenu de ton textbox :
TextBox1 = "25/15/2004"

Avec cette formule, la cellule afficherait 25/15/2004 ...Tu sais
comment
s'appelle le 15 ième mois de l'année ?
ActiveCell = Format(TextBox1, "mm/dd/yy")

Dans cet exemple, l'utilisation de la fonction remplit le rôle d'une
fonction de conversion qui existe déjà dans vba et
qui s'appelle cdate() .

Dans les 2 cas, il est préférable d'utiliser un test pour savoir si le
contenu de ton textbox est une date .

If isdate(me.textbox1) = true then
activecell = cdate(me.textbox1)
end if

Et si tu veux vraiment afficher un format de date personnalisé dans ta
cellule,
tu dois utiliser ceci :

If isdate(me.textbox1) = true then
activecell.numberformat = "ddd mmm yy"
activecell = cdate(me.textbox1)
end if


Salutations!





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

Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au
format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")

























Avatar
michdenis
Bonjour Didier,

Tu as une parenthèse fermé en trop après Row.

Remplace la ligne par celle-ci :

Me.TextBox1 = Format(.Range("A" & ActiveCell.Row), "dd/mm/yy")


Salutations!



"Didier" a écrit dans le message de news: %
Bonsoir DEnis
j'ai une erreur de syntaxe au niveau de cette ligne :
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
Merci pour toutes les explications
Didier


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

Bonjour Didier,

A )
La cellule Range("A" & ActiveCell.Row) DOIT être une date ... c'est-à-dire
que cette "date" doit être dans un format que
reconnaît excel sinon rien ne s'inscrira dans le textbox. Si tu veux voir
dans le textbox ce qu'il y a dans la cellule
lorsque ce n'est pas une date, apporte cette variante : (ajouter le Else)

B ) Comme tu utilises ActiveCell.Row : cela fait référence à la feuille
active ... celle qui est affichée à l'écran dans
l'application... au moment de l'exécution du code. En conséquence, la
manière dont est écrit le code, ActiveCell.Row ne
représente pas nécessairement la "Ligne" de la cellule active de la
feuille "Travail", car ce n'est pas nécessaire elle
qui est active dans la procédure ... la correction a apporté : ajouter
"Activate"

C ) Le code doit être dans le module du formulaire, sinon remplace Me par
Userform1 (son nom défini par la propriété
Name)

'-------------------------------
With Worksheets("Travail")
.Activate
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
Else
Me.TextBox1 = .Range("A" & ActiveCell.Row)
End If
End With
'-------------------------------


Salutations!



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

Bonsoir Denis
Cela devrait dans mon cas ressembler à cela, mais ça ne fonctionne pas.
Peux-tu m'indiquer ce qui ne fonctionne pas ?
Merci encore
Didier

With Worksheets("Travail")
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
End If
End With


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

Bonjour Didier,

Tu peux utliser la fonction "Format" pour attribuer un format particulier
à une variable ou à un textbox... il n'y a
aucun problème tant et aussi longtemps que tu n'essaies pas d'utiliser
cette fonction pour appliquer un format à une
cellule. Format s'applique seulement en VBA dans le code.

Voici un exemple à mettre dans le code d'un formulaire :

Tu appliques le format personnalisé que tu désires ...!
'--------------------
Private Sub CommandButton1_Click()

With Worksheets("Feuil1")
If IsDate(.Range("A1")) = True Then
Me.TextBox1 = Format(.Range("A1"), "ddd, d mmm yyyy")
End If
End With

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


Salutations!



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

Bonjour Denis, cela fonctionne très bien
mais comment faire l'inverse, c'est à dire :
TextBox1 = ActiveCell.Value
et avoir dans le textbox le format dd/mm/yy
Encore merci
Didier


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

Bonsoir Didier,

ActiveCell = Format(TextBox1, "mm/dd/yy")

Cette façon de faire comporte des dangers :

Si c'était le contenu de ton textbox :
TextBox1 = "25/15/2004"

Avec cette formule, la cellule afficherait 25/15/2004 ...Tu sais
comment
s'appelle le 15 ième mois de l'année ?
ActiveCell = Format(TextBox1, "mm/dd/yy")

Dans cet exemple, l'utilisation de la fonction remplit le rôle d'une
fonction de conversion qui existe déjà dans vba et
qui s'appelle cdate() .

Dans les 2 cas, il est préférable d'utiliser un test pour savoir si le
contenu de ton textbox est une date .

If isdate(me.textbox1) = true then
activecell = cdate(me.textbox1)
end if

Et si tu veux vraiment afficher un format de date personnalisé dans ta
cellule,
tu dois utiliser ceci :

If isdate(me.textbox1) = true then
activecell.numberformat = "ddd mmm yy"
activecell = cdate(me.textbox1)
end if


Salutations!





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

Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au
format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")

























Avatar
Didier
Bravo Denis Michon, vous êtes un génie de patience, de gentillesse, ainsi
que de technicité
Génial
Didier

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

Bonjour Didier,

Tu as une parenthèse fermé en trop après Row.

Remplace la ligne par celle-ci :

Me.TextBox1 = Format(.Range("A" & ActiveCell.Row), "dd/mm/yy")


Salutations!



"Didier" a écrit dans le message de news:
%
Bonsoir DEnis
j'ai une erreur de syntaxe au niveau de cette ligne :
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
Merci pour toutes les explications
Didier


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

Bonjour Didier,

A )
La cellule Range("A" & ActiveCell.Row) DOIT être une date ...
c'est-à-dire
que cette "date" doit être dans un format que
reconnaît excel sinon rien ne s'inscrira dans le textbox. Si tu veux voir
dans le textbox ce qu'il y a dans la cellule
lorsque ce n'est pas une date, apporte cette variante : (ajouter le Else)

B ) Comme tu utilises ActiveCell.Row : cela fait référence à la feuille
active ... celle qui est affichée à l'écran dans
l'application... au moment de l'exécution du code. En conséquence, la
manière dont est écrit le code, ActiveCell.Row ne
représente pas nécessairement la "Ligne" de la cellule active de la
feuille "Travail", car ce n'est pas nécessaire elle
qui est active dans la procédure ... la correction a apporté : ajouter
"Activate"

C ) Le code doit être dans le module du formulaire, sinon remplace Me par
Userform1 (son nom défini par la propriété
Name)

'-------------------------------
With Worksheets("Travail")
.Activate
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
Else
Me.TextBox1 = .Range("A" & ActiveCell.Row)
End If
End With
'-------------------------------


Salutations!



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

Bonsoir Denis
Cela devrait dans mon cas ressembler à cela, mais ça ne fonctionne pas.
Peux-tu m'indiquer ce qui ne fonctionne pas ?
Merci encore
Didier

With Worksheets("Travail")
If IsDate(.Range("A" & ActiveCell.Row)) = True Then
Me.TextBox1 = Format(.Range("A" & ActiveCell.Row)), "dd/mm/yy")
End If
End With


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

Bonjour Didier,

Tu peux utliser la fonction "Format" pour attribuer un format
particulier
à une variable ou à un textbox... il n'y a
aucun problème tant et aussi longtemps que tu n'essaies pas d'utiliser
cette fonction pour appliquer un format à une
cellule. Format s'applique seulement en VBA dans le code.

Voici un exemple à mettre dans le code d'un formulaire :

Tu appliques le format personnalisé que tu désires ...!
'--------------------
Private Sub CommandButton1_Click()

With Worksheets("Feuil1")
If IsDate(.Range("A1")) = True Then
Me.TextBox1 = Format(.Range("A1"), "ddd, d mmm yyyy")
End If
End With

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


Salutations!



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

Bonjour Denis, cela fonctionne très bien
mais comment faire l'inverse, c'est à dire :
TextBox1 = ActiveCell.Value
et avoir dans le textbox le format dd/mm/yy
Encore merci
Didier


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

Bonsoir Didier,

ActiveCell = Format(TextBox1, "mm/dd/yy")

Cette façon de faire comporte des dangers :

Si c'était le contenu de ton textbox :
TextBox1 = "25/15/2004"

Avec cette formule, la cellule afficherait 25/15/2004 ...Tu sais
comment
s'appelle le 15 ième mois de l'année ?
ActiveCell = Format(TextBox1, "mm/dd/yy")

Dans cet exemple, l'utilisation de la fonction remplit le rôle d'une
fonction de conversion qui existe déjà dans vba et
qui s'appelle cdate() .

Dans les 2 cas, il est préférable d'utiliser un test pour savoir si le
contenu de ton textbox est une date .

If isdate(me.textbox1) = true then
activecell = cdate(me.textbox1)
end if

Et si tu veux vraiment afficher un format de date personnalisé dans ta
cellule,
tu dois utiliser ceci :

If isdate(me.textbox1) = true then
activecell.numberformat = "ddd mmm yy"
activecell = cdate(me.textbox1)
end if


Salutations!





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

Merci Pierre CFI
Bonne soirée
Didier

"Pierre CFI [mvp]" a écrit dans le message
de
news:
bonjour
en vb pour avoir français, il faut un format us (ils sont partout)
ActiveCell.Offset = Format(TextBox1, "mm/dd/yy")



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Didier" a écrit dans le message de
news:
Bonsoir,
j'ai dans un textbox un format date, mais celui-ci fonctionne au
format
américain
Comment faire afin d'avoir ce format en français ?
Merci
Didier

ActiveCell.Offset = Format(TextBox1, "dd/mm/yy")