Pb d'affichge de date ds Excel avec VB6 !

Résolu
sebjedi Messages postés 3 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 18 janvier 2007 - 18 janv. 2007 à 10:53
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 18 janv. 2007 à 12:54
Bonjour,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>





 





Premier Point :




Dans mon interface je saisie une date au format jj/mm/yyyy, ensuite cette date je la recopie dans une case d’un fichier Excel.


Si par exemple, je saisie une date 21/07/1977, pas de problème, je retrouve bien ma date dans mon fichier Excel, mais par contre si je saisie 09/03/1988, et bien dans mon fichier Excel je vais avoir 03/09/1988 !!!! on dirait qu’il trie les chiffres du plus petit au plus grand !!!!!


Vous avez une petite idée pour m’aider ?


 


Second Point :


Dans mon IHM, je saisie une date, mon fichier Excel se réalise bien, je ferme Excel, je retape une nouvelle date dans mon IHM, et là le fichier Excel s’affiche mais vide !!!!! et quand je ferme Excel j’ai un message d’erreur : « Erreur d’execusion ‘1004’ ; la methode ‘~’ de l’objet ‘~’ a echoué » !!!!


Bon un bon déroulement, je suis obligé de saisire une date dans mon IHM, la création du fichier Excel se fait parfaitement bien, fermer Excel, fermer mon IHM et ensuite relancer mon IHM.


Vous avez une petite idée, pour lancer plusieurs fois de suite Excel sans relalancer mon IHM ?


 


Ci dessous mon code …..


 


Merci de votre aide


Sébastien


 


 


'------------------


' Remplir le fichier


'------------------


 


Private Sub NumCréation_Click(Index As Integer)


 


'Définition des variables



Dim DocExcel As Excel.Application





Dim Txt3 As String





 





Txt3$ = Text3.Text





 




'ouvre Excel


Set DocExcel = CreateObject("Excel.Application")


DocExcel.Visible = True


 


'supprime l'affichage des messages d'erreurs


DocExcel.DisplayAlerts = False


 


'ajoute un nouveau classeur


DocExcel.Workbooks.Add


 


'selectionne la feuille du classeur



DocExcel.Sheets("Feuil2").Select





 




'on supprime la feuille 2



DocExcel.ActiveWindow.SelectedSheets.Delete





 




'on fait pareil avec la feuille 3



DocExcel.Sheets("Feuil3").Select





 




'on supprime la feuille 3



DocExcel.ActiveWindow.SelectedSheets.Delete





 




'on selectionne la feuille 1 (la seule qui reste)



DocExcel.Sheets("Feuil1").Select





 




'on change le nom de celle ci


DocExcel.Sheets("Feuil1").Name = "Etiquette"



 




'Mise en page du document



With Worksheets("Etiquette").PageSetup






    .LeftMargin = DocExcel.InchesToPoints(0.32)






    .RightMargin = DocExcel.InchesToPoints(0)






    .TopMargin = DocExcel.InchesToPoints(0)






    .BottomMargin = DocExcel.InchesToPoints(0)






    .HeaderMargin = DocExcel.InchesToPoints(0)






  
 .FooterMargin = DocExcel.InchesToPoints(0)





End With





 




'Text dans Cellule B4



DocExcel.Range("B4").Select





DocExcel.Selection.Font.Size = 8




DocExcel.ActiveCell.FormulaR1C1 = Txt3


 



End Sub





 




 


 

1 réponse

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 janv. 2007 à 12:54
utilises FormulaLocal, pas Formula...

Formula est en format internationnal, il interprete donc ta date comme étant :

MM/DD/YYYY

mais excel l'affiche ensuite selon les preferences regionales de ton poste, soient DD/MM/YYYY

ce qui fait que ta date semble inversée....

en conclusion, fais :

DocExcel.ActiveCell.FormulaR1C1Local = Txt3
ou
DocExcel.ActiveCell.FormulaR1C1 = Format$(Txt3, "YYYY-MM-DD")

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Rejoignez-nous