IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Pb d'affichage de date dans Excel a partir de VB6 !


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 62
    Points : 46
    Points
    46
    Par défaut Pb d'affichage de date dans Excel a partir de VB6 !
    Bonjour,

    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    '------------------
    ' 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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Salut

    Pour ton problème de date excel te les affiche au format américain soit mm/jj/aaaa. Vérifie tes option dans excel ou Windows.

    Ton problème de réouverture d'excel vien du fait que tu ne la pas fermé comme il faut. Rajoute à ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ....
    Set Feuille = Nothing          'déchargement de la feuille
    Set Classeur = Nothing       'déchargement du classeur
    Excel.Application.Quit                 'Fermeture d'Excel
    Set Excel =Noting              'Déchargement d'excel
    end sub
    remplace Feuille, Classeur et Excel par tes variables

    A+
    Bernard

  3. #3
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Bonjour,

    Je dirais aussi qu'il faut :
    - que tu contrôles que ce que tu entres dans la textbox est une date (avec IsDate)
    - que tu transformes ce que tu as écris dans la textbox en date avec CDate par exemple

    Petite citation de MSDN concernant le format Date :
    Citation Envoyé par MSDN
    Date
    Dans Visual Basic, il ne faut jamais entrer les dates sous la forme de chaînes dans votre code. Employez des littéraux date au format #mois/jour/année# afin que la date soit interprétée correctement, quel que soit l'environnement linguistique. Visual Basic n'acceptant que les paramètres régionaux américains pour la programmation, la date se présentera toujours de la même façon dans le code, quel que soit le pays où l'application est exécutée.

    Par exemple, si un utilisateur entre 8/2/97 dans une boîte de dialogue d'entrée,

    CDate ("8/2/97")

    renvoie les résultats suivants en fonction des paramètres régionaux système :

    Système d'exploitation Résultat
    Français (standard) 08/02/97 (= 8 février 1997)
    Anglais (États-Unis) 8/2/97 (= 2 août 1997)


    À l'inverse, si vous entrez 8/2/97 dans le code,

    CDate (#8/2/97#)

    renvoie les résultats du tableau ci-dessous, car ce sont les paramètres régionaux du code qui sont adoptés ici :

    Système d'exploitation Résultat
    Français (standard) 02/08/97 (= 2 août 1997)
    Anglais (États-Unis). 8/2/97 (= 2 août 1997)


    Si l'utilisateur entre la chaîne 8/2/97, l'application l'interprétera comme le 8 février 1997 en France, où le format de date est jour/mois/année, et comme le 2 août 1997 aux États-Unis, où le format de date est inversé (mois/jour/année).

    +

    Théo

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 62
    Points : 46
    Points
    46
    Par défaut Pour le pb de date c'est OK
    Re bonjour,

    Pour le problème de date, en faite dans mon programme j’ai modiffié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocExcel.ActiveCell.FormulaR1C1 = Txt3
    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocExcel.ActiveCell.FormulaR1C1Local = Txt3
    Et donc maintenant quand je saisie une date 09/03/1988, dans mon fichier Excel je retrouve bien 09/03/1988
    Donc cette partie est résolue

    Sébastien

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 62
    Points : 46
    Points
    46
    Par défaut Pb pour la fermeture de Excel ?
    ReRe-bonjour,

    Mais pour mon second problème, j’ai rajouté en début de programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim DocExcel As Excel.Application
    Dim ClasseurExcel As Excel.Workbook
    Dim FeuilleExcel As Excel.Worksheet
    Et à la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set DocExcel = Nothing
    Set ClasseurExcel = Nothing
    Set FeuilleExcel = Nothing
    Excel.Application.Quit
    Mais j’ai toujours le même probleme : 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.

    Pourquoi ???
    Merci pour votre aide,
    Sébastien

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par sebajedi
    Pour le problème de date, en faite dans mon programme j’ai modiffié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocExcel.ActiveCell.FormulaR1C1 = Txt3
    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocExcel.ActiveCell.FormulaR1C1Local = Txt3
    Pourquoi utiliser la propriété Formula quand il n'y a qu'une valeur à mettre???
    Il me semble que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocExcel.ActiveCell = Txt3
    devrait suffire.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Resalut

    Essai de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set DocExcel = Nothing
    Set ClasseurExcel = Nothing
    Set FeuilleExcel = Nothing
    Excel.Application.Quit
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set FeuilleExcel = Nothing
    Set ClasseurExcel = Nothing
    Excel.Application.Quit
    Set DocExcel = Nothing
    Quitte ton application dans l'ordre, c'est bête mais peut être que le problème vient de la

    a+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 62
    Points : 46
    Points
    46
    Par défaut Fermeture Excel OK, mais impossible de le relancer !!!
    Encore moi,

    Quand je met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set FeuilleExcel = Nothing
    Set ClasseurExcel = Nothing
    Excel.Application.Quit
    Set DocExcel = Nothing
    Je tape mes informations dans mon IHM, Excel se lance correctement et se ferme correctement (il me semble !), je re-tape des informations dans l’IHM et là, le lancement de Excel se plante sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Mise en page du document
    With Worksheets("Etiquette").PageSetup
    Sébastien

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    A mon avis, il faut dire de quel classeur tu veux utiliser une Worksheet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Mise en page du document
    With ClasseurExcel.Worksheets("Etiquette").PageSetup

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 62
    Points : 46
    Points
    46
    Par défaut marcche pas...
    Bonne idée, mais ça marche pas, quand je rajoute "ClasseurExcel." devant "Worksheets("Etiquette")":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Mise en page du document
    With ClasseurExcel.Worksheets("Etiquette").PageSetup
    Le résultat est que je n'arrive même pas a lancer une seule fois Excel !, il plante directement sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Mise en page du document
    With ClasseurExcel.Worksheets("Etiquette").PageSetup
    Sébastien

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Essais de désactiver ta mise en page pour voir ce qui ce passe.
    C'est peut'être elle qui pose problème.

    a+

  12. #12
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Je sens qu'on est parti pour un dialogue de sourds...

    "Il plante" n'est pas une information pertinente.

    Message d'erreur?

    Dans la description de ton problème, tu te plains que le classeur affiché est vide alors que c'est tout à fait normal puisque tu le crées.
    De plus, lors de la création du nouveau classeur, tu supprimes des feuilles...
    As-tu pensé au fait que certaines personnes configurent Excel pour ne mettre qu'une feuille dans un nouveau classeur?

    Refais une petite analyse de ce que tu veux obtenir et reviens nous voir après avoir réfléchi.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 62
    Points : 46
    Points
    46
    Par défaut Tout remettre a plat...
    SAlut,

    Merci pour vos informations,
    Je pense que je vais faire comme a dit AlainTech, je vais tout remettre a plat et redefinir mon probleme, je mets "resolu" pour le moment et je vous tiens informé de mon evolution ou de mes besoins...
    Encore Merci
    Sébastien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calculer l'âge avec dates dans Excel
    Par crosse9 dans le forum Excel
    Réponses: 9
    Dernier message: 06/01/2011, 14h52
  2. affichage de plusieurs # au lieu de la date dans Excel
    Par djerbafr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/03/2009, 15h36
  3. affichage de date dans une cellule Excel
    Par darkspoilt dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/08/2007, 10h41
  4. Format date dans excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/11/2006, 10h06
  5. Deffirence de date dans Excel
    Par apt dans le forum Excel
    Réponses: 4
    Dernier message: 30/12/2005, 22h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo