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

Macros et VBA Excel Discussion :

Probleme de conversion de dates [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut Probleme de conversion de dates
    Bonjour,

    J'ai un probleme de conversion de date. Je recois un fichier d'un logiciel exterieur dont une colonne est constituée de dates.

    Je fais ceci pour la conversion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(7 + dI, 1) = Format(Cells(7 + dI, 1), "jj/mm/aaaa hh:mm:ss")
    La date à convertir est de ce type

    Mais le résultat me donne des resultats de ce style

    Par contre pour aout ça marche tres bien, de ceci

    je passe bien en

    Pourquoi cela ne marche t'il pas avec septembre au niveau des jours et des années !???

    Merci

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    en VBA les formats sont en anglais (il me semble)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(7 + dI, 1) = Format(Cells(7 + dI, 1), "dd/mm/yyyy hh:mm:ss")

  3. #3
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Normalement, dans le VBA, il faut mettre les format en anglais, donc dd/MM/yyyy. Mais je suis étonné que ça marche pour le mois d'août.

    Le fichier que tu reçois est un fichier texte ?

    Le mieux serait déjà de passer par une variable date intermédiaire pour être sûr qu'il la parse correctement. Ce sera plus simple ensuite pour l'affichage.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    Merci pour vos réponses mais j'ai déja tenté le format anglais

    de là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    01/Sep/2011 12:57:40
    01/Sep/2011 12:58:40
    01/Sep/2011 12:59:40
    01/Sep/2011 13:00:40
    01/Sep/2011 13:01:40
    ça donne ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    09/01/2011 12:57
    09/01/2011 12:58
    09/01/2011 12:59
    09/01/2011 13:00
    09/01/2011 13:01

    il a inversé jour et mois car dans excel quand je clique sur "format de cellule", "nombre" pour le remettre dans d'autres formats de dates pour voir, il me met le 9 janvier 2011 au lieu du 1er septembre et si ça avait marché, j'aurais eu mes courbes mais elles ne sont pas là, je les vois quand je met 0 dans les abcisses donc problemes de dates

    le format de données est de ce type, sauf qu'il y a bien plus de colonnes et de lignes...les colonnes correspondent à des mesures de capteurs sur un satellite et il y a un paquet de lignes car mesures sur 1 journée voir plus...et le but est d'afficher les courbes de ces données, il s'agit d'une macro dont je reprends le code, je n'en suis pas l'auteur. La conversion de la première colonne de dates ne se passe pas bien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Origine	R1939 APS	R1940 APS	R1941 APS	R1942 APS
    Libellé	z=1	z=1	z=1	z=1
    NoPhase	ACQ	ACQ	ACQ	ACQ
    NomPhase	HC2	HC2	HC2	HC2
    NoTC				
    LabelTC	A003	A034	A035	A036
    Voie	2302	2332	2333	2334
    01/Sep/2011 12:57:40	-21,68541527	-20,24226379	-18,59415245	-17,80001068
    01/Sep/2011 12:58:40	-21,57033348	-20,2321701	-18,55813217	-17,78228569
    01/Sep/2011 12:59:40	-21,52745056	-20,23110771	-18,56025124	-17,77196693
    01/Sep/2011 13:00:40	-21,49123001	-20,22818565	-18,56554794	-17,77752304

  5. #5
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Ce qu'il faut bien comprendre, c'est qu'à priori ta donnée initiale est du texte. Excel ne sait pas que c'est une date. Ensuite, quand tu lui demandes de le formater dans un format de date personnalisé, il attend une date en entrée pour appliquer ce format. Là j'ai envie de dire, on s'en fout du format que tu veux appliquer, le gros problème va être au niveau de la conversion du texte en date. Et là Excel part d'abord du principe que c'est en anglais et ne prendra un format français que si ça ne marche pas, c'est à dire, si le jour est supérieur à 12.
    Je pense qu'il faut faire une conversion personnalisée pour être sûr de n'avior aucun problème.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    En tentant la fonction CDate, ça semble passer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(15, 1) = CDate(Cells(15, 1))
    ceci
    devient ça, ce qui me va
    bizarre car la fonction CDate est la fonction de base que j'avais déja tenté sur d'autres fichiers et ça me générait un bug style incompatibilité de type...je vais voir à moyen terme si ça fonctionne dans tous les cas de figure...

    Bon weekend.

  7. #7
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Vérifie quand même que c'est bon en faisant par exemple MOIS(A1) quelque part. Pour être sûr qu'il a vraiment la bonne date, car même si c'est bon à l'affichage, il ne faudrait pas qu'il y ait une erreur si tu fais des calculs sur les dates par exemple.

  8. #8
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Les dates sous Excel, c'est comme les styles et les listes à puces dans Word, soit on consacre 2 heures à comprendre comment ça marche, soit on souffre de nombreuses heures entières à tenter, sans espoir, de résoudre le foutoir induit par un léger changement
    Pour les dates, ça ne résous pas tout, mais ça met sur la piste la plus rapide des test à faire pour analyser le comportement contextuel du pouvoir d'interprétation d'Excel.

    Citation Envoyé par ZebreLoup
    .../... Mais je suis étonné que ça marche pour le mois d'août.
    non, ça ne marche pas pour le mois d'août, il suffit se tester avec

    ça marche avec cette syntaxe :

    car voir le tableau dans le tutoriel sur les dates, ce mois exprimé en lettres et en abrégé ne laisse pas de doutes à l'interpréteur d'Excel.

    il n'en n'est pas de même pour tous, malheureusement comme va le montrer l'image des tableaux à suivre, mais encore une fois au niveau du pouvoir d'interprétation d'Excel, vu le nombre de langues sous lequel il est porté, on peut comprendre que la tâche n'est pas simple

    Nom : OrmonthData1-2012.jpg
Affichages : 1333
Taille : 435,8 Ko

    On peut constater, dans le 2éme tableau, que si on saisit la date en lettres et en entier tout est OK.


    Citation Envoyé par soccersoft
    .../... il a inversé jour et mois car dans excel quand je clique sur "format de cellule", "nombre" pour le remettre dans d'autres formats de dates pour voir, il me met le 9 janvier 2011 au lieu du 1er septembre
    vois pourquoi ici dans le tutoriel

    PS : à noter que les dates sont des nombres pour Excel et qu'à ce titre alignées à droite dans les cellules par défaut, un alignement à gauche indiquera toujours une saisie en format texte !

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    Effectivement, c'est un truc de fou, j'ai testé du coup avec le mois d'aout et plantage alors que ça marchait pour septembre !

    Incompatibilité 13 je crois, probleme de type alors que ça marche sur d'autres mois...et en regardant le tableau, ça fait peur de voir les interprétations d'excel...

    Plantage sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(7 + dI, 1) = CDate(Cells(7 + dI, 1))
    je vais regarder ça mais si ça continue comme ça, je vais pas m'embeter, je vais mettre un switch pour tous les mois sur les 3 premieres lettres et remplacer leur valeur par le nombre correspondant...ça m'évitera peut être des fonctionnements aléatoires...

    Je m'y remets...

  10. #10
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Oui, c'est ce que je te conseillais au début, écrire toi même ta fonction de parsing...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    L'inconvenient, c'est que ça rajoute du temps de traitement et vu le nombre de lignes à traiter, j'ai un peu peur du résultat, je vais voir si c'est beaucoup plus lent ou non...

  12. #12
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Si tu récupère ton Range dans un Variant, que tu travailles dessus, puis que te recolles le résultat d'un coup, il n'y a plus d'accès répétés à la feuille et ça doit être très rapide.

  13. #13
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    L’inconvénient, c'est que ça rajoute du temps de traitement et vu le nombre de lignes à traiter, j'ai un peu peur du résultat, je vais voir si c'est beaucoup plus lent ou non...
    Je pense qu'au vu de l'ensemble du fil, il faut utiliser un condensé de tout ce qui a été abordé qui pourrait se résumer à :

    Vu que tu as d'origine des dates en texte avec les mois en abrégé US (donc pas des dates en fait pour Excel) .
    Vu qu'aucun des mois n'est représenté par une chaîne qui se retrouve en entier dans un autre.
    On peut faire sur cette colonne une série de 12 chercher remplacer pour convertir les mois courts en mois longs puisque comme vu dans mon tableau image, tu peux alors appliquer ta macro de format sans souci...

    Au niveau vitesse, ça devrait aller très vite, un petit coup d'enregistreur de macros sur janvier te donnera le code voulu..

    Je vais regarder ça mais si ça continue comme ça, je vais pas m'embeter, je vais mettre un switch pour tous les mois sur les 3 premieres lettres et remplacer leur valeur par le nombre correspondant
    L'idée du nombre, je ne suis pas sûr que ce soit une bonne idée par contre vois ce que tu as dis sur les inversions en #5...

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    Finalement, je lis vos réponses après l'avoir fait

    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
    Dim varmois As String
     
    varmois = ""
     
     
            varmois = Mid(Cells(7 + dI, 1), 4, 3)
     
            Select Case varmois
              Case "Jan": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Jan", "01"))
              Case "Feb": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Feb", "02"))
              Case "Mar": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Mar", "03"))
              Case "Apr": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Apr", "04"))
              Case "May": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "May", "05"))
              Case "Jun": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Jun", "06"))
              Case "Jul": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Jul", "07"))
              Case "Aug": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Aug", "08"))
              Case "Sep": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Sep", "09"))
              Case "Oct": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Oct", "10"))
              Case "Nov": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Nov", "11"))
              Case "Dec": Cells(7 + dI, 1) = CDate(Replace(Cells(7 + dI, 1), "Dec", "12"))          
            End Select

    ça marche très bien sur tous les fichiers que j'ai à ma disposition aout et septembre....je n'ai pas pensé à le faire mais faudra que je m'en prenne un et que je modifie quelques dates en remplacant le mois par un que j'ai pas testé histoire de tous les faire pour voir si la ligne passe bien en date, en tout cas, comme ça il a pas bugué et il m'a bien aligné les dates à droite, donc bien converties...à voir si ça marche sur tous les mois quand je le stresserai un peu...

    En fait, les fichiers sont fournies par l'équipe thermique et c'est quand le satellite entre en vide thermique (voir photo) que les tests sont faits, il a lieu dans 10 jours pour une durée de 3 semaines, donc ça me laisse du temps pour la finir vu que c'est sur la dernière semaine, je travaille dessus quand j'ai un peu de temps de dispo mais excel et vbs, c'est pas trop ma tasse de thé...la macro sera lancée du poste présent à gauche sur la photo pour traiter les données. Me reste le pdf des courbes à debuguer et une autre partie mais ça avance .



  15. #15
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Tant que tu ne fais pas du VBA pour des trajectoires de vol habité !

    Sinon, pour tes tests, le plus important est de tester des jours supérieurs à 12, c'est là que ça peut poser problème, ce n'est pas une question de août ou septembre.

    Sinon, une petite fonction pour t'aider :
    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
    Public Function DateFromText(strDate As String) As Date
        Dim tmpTab() As String
        Dim partieHeure As String
        Dim partieDate As String
        Dim mois As Integer
     
        tmpTab = Split(strDate, " ")
        partieDate = tmpTab(0)
        partieHeure = tmpTab(1)
     
        tmpTab = Split(partieDate, "/")
     
        Select Case LCase(tmpTab(1))
            Case "jan": mois = 1
            Case "feb": mois = 2
            Case "mar": mois = 3
            Case "apr": mois = 4
            Case "may": mois = 5
            Case "jun": mois = 6
            Case "jul": mois = 7
            Case "aug": mois = 8
            Case "sep": mois = 9
            Case "oct": mois = 10
            Case "nov": mois = 11
            Case "dec": mois = 12
        End Select
     
        DateFromText = DateSerial(tmpTab(2), mois, tmpTab(0)) + TimeValue(partieHeure)
    End Function

  16. #16
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Super la photo ( j'ai cru à une machine à laver au départ) !

    Sinon, dans le post, je te disais de remplacer les mois courts texte par des mois longs en texte, vu que ton code était OK ainsi, tu évitais sans coup férir les soucis d'inversion de dates

    Sinon tu l'utilises comment ton code, car via une boucle la performance temps = pas terrible. Mais en 10 jours, ça passe

    cordialement,

    Didier

  17. #17
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    A tester - Sub Remplacement2() - sur ton poste, chez moi c’est OK et ça traite les 10 000 données en moins de 1 sec sous 2003 (plus sous 2010). Je précise le contexte car il induit la nature du résultat.

    • A la base la colonne A avec 10 000 lignes en dates-heure de jan à dec les mois étant en US abrégé, le format en texte et la conversion en N° de série directe impossible.
    • Le principe est de transformer les mois texte US abrégés en mois texte US Longs pour pouvoir faire un formatage Dates-heure sans ambiguïtés. En évitant les mois en chiffres donc et en évitant d’utiliser une boucle qui s’avèrera toujours chronophage.
    • On travaille sur la colonne A uniquement.
    • Après traitement on obtient les données formatées en dates-heure correctes selon le paramétrage du poste. On peut les passer en N° de série en passant le format en Standard et faire des calculs dessus.

    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
    Option Explicit
    Option Base 1
     
    Sub moteur() 'crée une plage de 10 000 lignes à partir de 12 lignes de base avec les dates/heures en mois texte abrégé US pour le test
     Selection.AutoFill Destination:=Range("A1:A10000"), Type:=xlFillDefault
    End Sub
     
     
    Sub Remplacement2() '- Ormonth 2012
    Dim objMaRange As Range
    Dim varMoisAbrev As Variant
    Dim varMoisLong As Variant
    Dim I As Byte
    Dim Chrono1 As Single, Chrono2 As Single
     
    Application.ScreenUpdating = False
    Chrono1 = Timer
    Set objMaRange = Range("A1:A10000")
    varMoisAbrev = Array("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sept", "oct", "nov", "dec")
    varMoisLong = Array("january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december")
     
    With objMaRange
       For I = 1 To 12 'on est en Option Base 1
           Application.ReplaceFormat.NumberFormat = "@" 'attention ensuite à la mémorisation des paramètres employés par Replace
           .Replace What:=varMoisAbrev(I), Replacement:=varMoisLong(I), LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=True
       Next I
       .NumberFormat = "dd/mm/yyyy hh:mm:ss"
       .HorizontalAlignment = xlGeneral
    End With
    Set objMaRange = Nothing
    Application.ScreenUpdating = True
    Chrono2 = Timer
    MsgBox Chrono2 - Chrono1 & "   secondes" ':)
    End Sub
    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    Merci à vous deux pour les réponses. Je vais regarder ça quand j'aurai un peu de temps. Je l'ai quasiment fini, j'ai débugué l'enregistrement des courbes sous pdf, me reste donc à regarder plus en détails vos réponses et un module de classe à revoir pour faire du dynamique ou au moins agrandir le nombre de champs.

    Pour répondre à une question, ça n'est pas une macro qui tourne en temps réel, les tests se font, les thermiciens nous retournent deux fichiers text de données + un autre fichier de mesures de chez nous en radiofréquences et avec la macro, je passe tous ces fichiers dans la moulinette (macro), y a une barre de progression qui indique où on en est et ça créé un fichier excel d'une 20aine d'onglets dont la majorité composées de courbes avec possibilité de répondre oui quand il a fini à un enregistrement au format pdf en plus de l'enregistrement en xls classique; la durée de traitement max est d'environ 3-5mn.

    Par contre, je ne fais pas de calculs de dates ensuite, c'est juste pour tracer les courbes en fonction du temps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    serie = Charts(SSI).SeriesCollection.Count + 1
                Charts(SSI).SeriesCollection.NewSeries
                Charts(SSI).SeriesCollection(serie).XValues = Range(LaFeuille & "!A8" & ":A" & LigneFin)
                Charts(SSI).SeriesCollection(serie).Values = Range(LaFeuille & "!" & Col & "8" & ":" & Col & LigneFin)
                Charts(SSI).SeriesCollection(serie).Name = BoxCode & " (°C)"
                'Charts(SSI).SeriesCollection(serie).Border.ColorIndex = 8
                
                'Graphe de temps sur l'axe 2
                Charts(SSI).SeriesCollection(serie).AxisGroup = 2
                Charts(SSI).Axes(xlValue, xlSecondary).HasTitle = True
                Charts(SSI).Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "Temperatures"

    Et ma colonne, je ne connais pas le nombres de lignes donc c'est une boucle for de 65000 mais je sors dès qu'il n'y a plus de dates avec quelque chose de ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(7 + dI, 1) = "" Then Exit For

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

Discussions similaires

  1. Probleme de conversion String -> Date avec SimpleDateFormat.parse(String)
    Par jeanlouis_lecodeur dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 02/07/2007, 10h18
  2. Réponses: 2
    Dernier message: 16/02/2007, 22h34
  3. [MySQL] Probleme de conversion de date en format francophone
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 21/11/2006, 12h40
  4. [debutant]probleme de conversion de date
    Par julien31009 dans le forum Langage
    Réponses: 6
    Dernier message: 22/10/2006, 16h56
  5. Probleme de conversion de dates
    Par manu00 dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2005, 01h00

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