Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : mettre une textbox au format date : de yyyymmdd a dd-mmm-yyyy ..

BeninBkk

XLDnaute Nouveau
Bonjour le forum,

Débutant Excel et VBA... premier message sur le forum... c'est parti

Voila, je récupère une date au format yyyymmdd a la suite d'une requête sur une base de donnée firebird.
Je la stock dans une variable appelle "datefacture" (qui est déclaré as String).

Ensuite je fais afficher cette date dans une textbox mais je n'arrive pas a changer le format de cette textbox (ou de la chaîne de caractères) en dd-mmm-yyyy.

Voici les 2 parties qui concerne ce problème dans le code :

1. la requete (qui fonctionne tres bien.. pas de probleme)
Code:
'Requete pour recuperer les infos client
sSQL_Datacustomer = "SELECT ECCTCODE, ECCTNOM, ECCTRUE1, ECCTRUE2, ECCTCP, ECCTVILLE, ECCTPAYS, ECCTNOMLIV, ECCTRUE1LI, ECCTRUE2LI, ECCTCPLIV, ECCTVILLIV, ECCTPAYSLI, ECCTDERBL, ECCJCRE FROM EEXPCLI WHERE ECKTSOC='999' AND ECCTDERFA='" & NumeroDeFacture & "'"
'Lancement de la requete vers le server (execution)
Rst_Datacustomer.CursorLocation = adUseClient
Rst_Datacustomer.Open sSQL_Datacustomer, Connection_Base, adOpenStatic, adLockOptimistic, adCmdText

numcli = Rst_Datacustomer(0)
nomduclient = Rst_Datacustomer(1)
AddressCli1 = Rst_Datacustomer(2)
AddressCli2 = Rst_Datacustomer(3)
PostalCodeCli = Rst_Datacustomer(4)
CityCli = Rst_Datacustomer(5)
CountryCli = Rst_Datacustomer(6)
NomLiv = Rst_Datacustomer(7)
Adresse1Liv = Rst_Datacustomer(8)
Adresse2Liv = Rst_Datacustomer(9)
CodePostaleLiv = Rst_Datacustomer(10)
VilleLiv = Rst_Datacustomer(11)
CountryLiv = Rst_Datacustomer(12)
NumBL = Rst_Datacustomer(13)
DateFacture = Rst_Datacustomer(14)

Ici je récupère la date dans "DateFacture".. no problem

2. L'ecriture dans la textBox.
Code:
Worksheets("PAGE " & i).Shapes("Date").TextFrame.Characters.Text = DateFacture
pas de probleme non plus.. ca fonctionne..

Maintenant, j'aimerai que cette date soit au format dd-mmm-yyyy plustot que yyyymmdd.. mais je bloque..

Help ...
 

Staple1600

XLDnaute Barbatruc
Re : VBA : mettre une textbox au format date : de yyyymmdd a dd-mmm-yyyy ..

Bonjour et bienvenue sur XLD

Tout bon débutant se doit de faire illico presto: ALT+F11 puis F1
et là aller voir ce qu'on dit sur: Format

EDITION: allez, je te facilite la tâche (extrait de l'aide VBA ci-dessous)
Format, fonction, exemple
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : VBA : mettre une textbox au format date : de yyyymmdd a dd-mmm-yyyy ..

Re

Avec un exemple ce sera plus parlant
Code:
Sub ExemplesFormat()
Dim ALAUBEDECEJOURNAISSANT, X, li$
ALAUBEDECEJOURNAISSANT = Date
X = ALAUBEDECEJOURNAISSANT
li = Format(X, "yyyymmdd") & vbCrLf
li = li & Format(X, "dd-mm-yyyy") & vbCrLf
li = li & "Nous sommes le " & Format(X, "dddd d-mm-yyyy")
MsgBox li, vbInformation + vbOKOnly, "Exemples fonction Format"
End Sub
 

BeninBkk

XLDnaute Nouveau
Re : VBA : mettre une textbox au format date : de yyyymmdd a dd-mmm-yyyy ..

Bonjour JM,

Merci pour la réponse rapide !
En bon débutant, je passe une bonne partie de mon temps dans l'aide. (d'ailleurs l'aide de 2007 est bien complique je trouve...)

Bref, j'ai teste différentes choses pour régler mon problème, qui n'ont pas fonctionne (overflow souvent) et un ami m'a propose de faire comme ceci :

Code:
MyYear = Left(DateFacture, 4) 
MyMonth = Mid(DateFacture, 5, 2)
MyDay = Right(DateFacture, 2)

Worksheets("PAGE " & i).Shapes("Date").TextFrame.Characters.Text = Format(DateSerial(MyYear, MyMonth, MyDay), "DD-MMM-YY")

ca marche nikel !

En tout cas, je te remercie d'avoir pris le temps pour me filer un coup de main..

Bonne journee
Ben
 

Staple1600

XLDnaute Barbatruc
Re : VBA : mettre une textbox au format date : de yyyymmdd a dd-mmm-yyyy ..

Re


Si ta date est autant Date que je suis Géméaux alors tu peux aussi faire
MyYear = Year(DateFacture)
MyMonth =Month(DateFacture)
MyDay = Day(DateFacture)

Autrement si...
VB:
'Si ta date lorgne plutôt du côté du String, tu peux alors faire
Sub test_illustratif()
Dim DateFacture$, MaDate, MaDadaTe
DateFacture = "19/07/2012"
MaDate = Split(DateFacture, "/")
MaDadaTe = Join(MaDate, "/")
MsgBox Year(MaDadaTe) & vbCrLf & Month(MaDadaTe) & vbCrLf & Day(MaDadaTe)
'ou plus simplemnt ;-)
MsgBox StrConv(Format(DateValue(DateFacture), "dddd d mmmm yyyy"), vbProperCase)
'Tu vois comment adapter à ta problématique ?
End Sub
 
Dernière édition:

BeninBkk

XLDnaute Nouveau
Re : VBA : mettre une textbox au format date : de yyyymmdd a dd-mmm-yyyy ..

Salut,

C'est nickel !
Je vais pouvoir adapter ça pour d'autres situations du même genre maintenant

Merci pour ton aide. Désolé si ma question n’était pas très claire.
Avec le temps, je prendrai le temps de tourner mon problème dans tous les sens avant de venir poster un message sur le forum

Bonne journée.
Ben
 

Discussions similaires

Réponses
3
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…