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 :

[VBA-E] référence Pour fonction Excel


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut [VBA-E] référence Pour fonction Excel
    Bonjour,

    j'ai une question un peu ambigue et je me tourne vers vous
    Voila je voudrais utiliser une fonction, qui n'existe pas en VBA (a priori) et je voudrais pouvoir l'utiliser dans VBA justement.
    Je sais qu'il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.worksheetfunction
    Mais le soucis est qu'il ne reconnait pas cette que je lui met
    Alor sma question c'est est-ce qu'il y a une référence (un ocmplément) pour les avoir toutes ?

    En fait je voudrais utiliser la fonction "DateVal", dite "DateValue" mais il ne la reconnait pas..
    Et me dites pas qu'il serait plus simple d'utiliser dateserial pour transformer ma date ça marche pas il me retarde ma date (en texte) sur 2 ans

    Vala merci beaucoup par avance si jamais vous connaissez la référence
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  2. #2
    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 Re: [VBA-E] référence Pour fonction Excel
    Citation Envoyé par illight
    Et me dites pas qu'il serait plus simple d'utiliser dateserial pour transformer ma date ça marche pas il me retarde ma date (en texte) sur 2 ans
    Si, déjà, tu nous disais ce que tu veux faire (et donc, nous donner le code "qui ne marche pas" avec DateSerial), on pourrait, peut-être, t'aider.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    regarde à fonctions de conversion en vba
    cdate devrait aller
    Elle est pas belle la vie ?

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    mdr désolé

    En fait ce post avait surtout pour but s'il existait une référence parce que j'avais déja posté pour ce problème mais sachant que ce problème n'était pas vraiment identique bah j'en ai fait un autre

    je met donc le code :

    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
    Sub import_text()
    Dim s As String
    s = ActiveWorkbook.Name
    Workbooks.OpenText Filename:= _
        "Z:\temp\" & NameTextFile, _
        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), _
        Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), _
        Array(11, 1), Array(12, 2), Array(13, 1), Array(14, 1), Array(15, 1), _
        Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), _
        Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), _
        Array(26, 1), Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), _
        Array(31, 1), Array(32, 1), Array(33, 1), Array(34, 1), Array(35, 1), _
        Array(36, 1), Array(37, 1))
    Call ChangeDate
    End Sub
    Cette procédure permet d'importer un fichier texte où les données sont séparées par un "pipe" et donc je voudrais que la colonne 12 (qui sont en fait des dates) se mette en format texte (cette importation a été créée par l'assistant pas par moi. J'ai fait cette méthode parce que j'avais fait avec Open mais ça ne marchait pas pour les dates)

    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
     
    Function NameTextFile() As String
    Dim fic As String
    Dim dernier As String
    Dim dt As String
    Dim jour, mois
    jour = Day(Date)
    mois = month(Date)
    If jour < 10 Then jour = 0 & jour
    If mois < 10 Then mois = 0 & mois
    dt = jour & "." & mois
    fic = Dir("Z:\temp\*.txt")
    Do Until fic = ""
        If Left$(fic, 5) = dt Then
            dt = Left$(dt, 5)
            dernier = fic
        End If
        fic = Dir
    Loop
    NameTextFile = dernier
    End Function
    Cette fonction me permet de trouver le fichier texte a importer sachant que le fichier doit avoir la date du jour a un endroit précis du nom de ce fichier

    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
     
    Sub ChangeDate()
    Dim j As String
    Dim m As String
    Dim a As String
    Dim f As Worksheet
    Dim i As Integer
    Dim k As Integer
    Dim MaDate As Date
    Set f = Worksheets(1)
    k = 2
    While f.Cells(k, 12).Value <> ""
        k = k + 1
    Wend
    For i = 2 To k - 1
        j = Left(f.Cells(i, 12).Value, 2)
        m = Mid(f.Cells(i, 12).Value, 4, 2)
        a = Mid(f.Cells(i, 12).Value, 7, 4)
        f.Cells(i, 12).Value = FormatDateTime(j & "/" & m & "/" & a, vbShortDate)
    Next i
        Range("CA2").Select
        ActiveCell.FormulaR1C1 = "=DATEVALUE(L2)"
        Selection.NumberFormat = "m/d/yyyy"
        Selection.AutoFill Destination:=Range("CA2:CA" & k - 1), Type:=xlFillDefault
        Range("CA2:CA" & k - 1).Select
        Selection.Copy
        Range("L2").Select
        Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Application.CutCopyMode = False
    End Sub
    Enfin cette procédure qui me permet de changer mon champ texte en date, qui ne marche pas et où mo n problème se pose

    J'ai mis un FormatDateTime parce qu'avant j'avais mis un DateSerial mais il me retourner la mauvaise date et je ne sais pa spourquoi
    Par exemple si ma date dans la cellule était 29/03/2002 il me renvoyait, certes le bon jour et le bon mois, mais il m'enlevait 2 années du coup dans ma cellule j'avais 29/03/2000, voire meme parfois 03/29/2000 et toutes mes dates sont à l'année 2000.
    DOnc par la suite j'ai essayé de faire une formule pour transformer mon texte en date, pour par la suite le transformer, en faisant un datevalue (c'est la que je veux utiliser le worksheetfunction).
    Mais enf ait je viens de fair eun test et ça marche pas non plus quand le jour qu'il y a dans ma date est supérieur à 12, la date n'est pas reconnue et ça fausse mes résultats
    Ce qui bizarre c'est qu'elle est en format date, et pourtant mes résultats finaux sont faux Alors je sais pas..C'est vraiment bizarre..

    EN fait j'ai une méthode pour ne plus avoir le problème mais c'est une méhode bete et j'aimerai bien que ça marche normalement
    Vousdit la méthode quand meme : en fait je vais dans la cellule où il y a le problème de date, je clique dedans et je tape "entrée" et pouf je l'ai au bon format...Sinon l'autre méthode c'est de remplacer les "/" par "/" et du coup les dates sont au bon format aussi

    C'est a rien y comprendre...
    Si quelqu'un a une solution je suis preneur

    J'espère avoir été assez clair par contre si vous avez des questions hésitez pas
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    La solution a tous mes problèmes de date est venue le jour où j'ai découvert "DateSerial".
    Là, tu me parles d'une année qui change comme par magie, en l'utilisant.
    Alors de deux choses l'une: soit il-y-a vraiment un bug, et je suis foutu, parce que j'en ai mis partout, soit c'est toi qui fait mal quelquechose (et je préfèrerais ça).
    As-tu un exemple de ce retour de 2 ans dans le passé?

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Le problème est que mes données sont confidentielles sur lesquelles je travaille je vais essayer de te faire un exemple bidon mais c pas gagné
    En fait, cve qui se passe aussi quand je prend le dateserial, il me rajoute une année et je suis en 2007
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  7. #7
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ok pour les données confidentielles, mais tu ne veux pas me montrer le code que tu utilises pour passer d'une date quelquepart où c'est confidentiel à un DateSerial ?

  8. #8
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    mon code ou j'utilise le dateserial c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        j = Left(f.Cells(i, 12).Value, 2)
        m = Mid(f.Cells(i, 12).Value, 4, 2)
        a = Mid(f.Cells(i, 12).Value, 7, 4)
        MaDate = DateSerial(a, j, m)
        MsgBox (MaDate)
        f.Cells(i, 12).Value = MaDate
    en le mettant dans la troisième procédure que j'ai mise plus haut

    Si je le met comme ça il passe une année en plus c'est normal tu vas me dire puisque j'ai écrit "dateserial(a,j,m)" et que c'est à l'envers
    Si je le met dans l'autre sens cad dateserial(a,m,j) donc dans le sens normal enf ai t il m'inverse ma date et ma date devient alors par exemple : 5/16/2002
    J'ai donc essayé de faire un format derrière en écrivant de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        j = Left(f.Cells(i, 12).Value, 2)
        m = Mid(f.Cells(i, 12).Value, 4, 2)
        a = Mid(f.Cells(i, 12).Value, 7, 4)
        MaDate = DateSerial(a, j, m)
        MsgBox (MaDate)
        f.Cells(i, 12).Value = format(MaDate,"dd/mm/yyyy")
    Mais ça marche toujours pas et ma colonne est toujours en format texte, alors qu eje la voudrais en format Date au final

    J'espère avoir été assez clair
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  9. #9
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Alors voila comment ça marche:
    tu n'as pas le choix de l'ordre dans le DateSerial: c'est bien "année", puis "mois", puis "jour" quand tu sérialises ta date.
    Grâce à ça, tu obtiens un numéro de série qui représente ta date, et bien celle là. Tu peux lui ajouter (ou retrancher) des jours, des mois, calculer un écart entre 2 dates (sérialisées), les comparer (avant, après...).
    Mais si tu veux l'afficher dans un formulaire, tu dois utiliser Format( ) pour la mettre au format "frenchie" jj/mm/aaaa, et si tu veux la mettre dans une cellule Excel, tu dois mettre le format de ta cellule à jj/mm/aaaa .
    Si tu es rigoureux et que tu fais ça à chaque fois, tu n'auras plus de questions à te poser.

  10. #10
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    J'ai compris ce que tu voulais dire...Mais ça ne résoudra pas mon problème de date c'est pas le format de la cellule le soucis, c'est le format de ce qu'elle contient sachant que je l'importe d'unf ichier texte et qu eje travaille directement dessus
    Comme tu le vois au dessus, j'ai mis un "format" et pourtant ma cellule est toujours au format texte, or moi je veux un format "date"

    Je sais pas si je me fais bien comprendre en fait dans mon problème
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  11. #11
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Citation Envoyé par Megaxel
    Alors voila comment ça marche:
    tu n'as pas le choix de l'ordre dans le DateSerial: c'est bien "année", puis "mois", puis "jour" quand tu sérialises ta date.
    Grâce à ça, tu obtiens un numéro de série qui représente ta date, et bien celle là. Tu peux lui ajouter (ou retrancher) des jours, des mois, calculer un écart entre 2 dates (sérialisées), les comparer (avant, après...).
    Mais si tu veux l'afficher dans un formulaire, tu dois utiliser Format( ) pour la mettre au format "frenchie" jj/mm/aaaa, et si tu veux la mettre dans une cellule Excel, tu dois mettre le format de ta cellule à jj/mm/aaaa .
    Si tu es rigoureux et que tu fais ça à chaque fois, tu n'auras plus de questions à te poser.
    Désolé de remonter un vieux sujet mais je suis toujours au meme point avec ce problème de date donc si Mégaxel tu passe par la
    Est-ce que vous pourriez me donner un exemple de comment utiliser et ou utiliser la fonction DateSerial pour que mon importation au inal se termine bien ? parce que j'ai beau chercher rien n'y fait je n'arrive pas a avoir une date correcte
    Quand j'importe, soit quand le jour est inférieur à 12 ça se passe bien et c'est au format date, et si le jour est supérieur à 12, alors la date sera au format texte et je n'arrive pas a la transformer en date

    Merci beaucoup pour votre aide par avance
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  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
    Comme a dit Megaxel, tu n'as pas le choix de l'ordre. DateSerial attend a, m, j.

    Donc, tu dois mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaDate = DateSerial(a, m, j)
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  13. #13
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Oui mais cettecommande il faut que j'utilise quand après avoir importé mon fichier texte ? avant ? pendant ? il faut que je lise le fichier texte ligne à ligne et le faire a chaque fois qu eje rencontre une date ?
    Parce que j'ai essayé de mettre le dateserial après importation (comme plus haut) et changer la date après mais ça ne marche pas
    J'ai peur que si je le fais en lisant le fichier texte ligne par ligne le traitement sera plus long
    En fait je vois pas quand tu utiliser ce DateSerial pour que le traitement ne soit pas torp long mais qu'il me donne au final la bonne date.

    Ai-je été assez clair dans mon soucis ?
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    mais une fois que ta "converti" ta date ... avec ta fonction change Date... est - tu allé voir sous excel le format d'affichage de la cellule ?

  15. #15
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Oui et comme j'ai dit quand le jour est inférieur à 12 elle est bien au format date que je veux, mais quand il est supérieur à 12 il est au format texte

    (d'ailleurs quand c'est le cas le seul fait de cliquer dans la cellule, puis de taper "entrée" derrière la met par la suite au format date approprié )
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    avant d'y coller la valeur de date modifié change le format de cellule pour voir...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     (...)
    f.Cells(i, 12).NumberFormat = "d/m/yy;@"
    f.Cells(i, 12).Value = MaDate
    (...)

  17. #17
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Nan ça marche pas non plus J'avais essayé hier ça mais ça marche pas non plus en changeant la cellule destination..
    J'y est pensé quand Megaxel m'a dit que ça dépendant de lac ellule destination mais ça ne fait rien

    EDIT : heuu en fait a priori ça marche..Je refait un test complet pour voir..
    Par contre le soucis c'est que je n'ai aps qu'une colonne avec des dates j'en ai plusieurs..Mais je suis obligé de faire par la colonne du coup si je fais comme ça...
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  18. #18
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    C'est encore mouaaaaaaaaaaaaaaaaaaa
    Désolé pour les doubles post mais on peut pas supprimer le post précédent donc je fais comme ça désolé
    Bon heuu en fait ça marche toujours pas
    Voici ma procédure :
    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
    Dim s As String
    s = ActiveWorkbook.Name
    Dim c As Long
    Sheets("test").Select
    For c = 1 To Rows.Count
        If ActiveWorkbook.ActiveSheet.Cells(c, 12).Value = "" Then Exit For
    Next c
    c = c - 1
    Workbooks.Open Filename:="Z:\temp\" & NameTextFile, Format:=6, delimiter:=Chr(124)
    Cells.Select
    With Selection.Font
        .Size = 8
    End With
    StopCalc
    For k = 1 To Rows.Count
        If ActiveWorkbook.ActiveSheet.Cells(k, 12).Value = "" Then Exit For
    Next k
    k = k - 1
    Dim f As Worksheet
    Set f = Worksheets(1)
    For i = 2 To k
        j = Left(f.Cells(i, 12).Value, 2)
        m = Mid(f.Cells(i, 12).Value, 4, 2)
        a = Mid(f.Cells(i, 12).Value, 7, 4)
        MaDate = DateSerial(a, m, j)
        Workbooks(s).ActiveSheet.Cells(i, 12).NumberFormat = "dd/mm/yyyy"
        Workbooks(s).ActiveSheet.Cells(i, 12).Value = MaDate
    Next i
    StartCalc
    Range("A2:K" & k).Select
    Selection.Copy
    Windows(s).Activate
    Sheets("test").Select
    Range("A2").Select
    ActiveSheet.Paste
    Windows(NameTextFile).Activate
    Range("M2:AE" & k).Select
    Selection.Copy
    Windows(s).Activate
    Sheets("test").Select
    Range("M2").Select
    ActiveSheet.Paste
    If k > c Then
        Range("AF" & c & ":AL" & c).Select
        Selection.AutoFill Destination:=Range("AF" & c & ":AL" & k)
    ElseIf k < c Then
    StopCalc
        For i = c + 1 To k + 1 Step -1
            Rows(i).Delete
        Next i
    StartCalc
    End If
    Application.DisplayAlerts = False
    Windows(NameTextFile).Close savechanges:=False
    Application.DisplayAlerts = True
    End Sub
    Voila ma procédure complète si ça peut vous aider
    Comme vous le voyez, je fais un numberformat sur les cellules cibles ou je vais coller les dates et pourtant ça marche pas
    Enfin c'est pas que ça marche pas, c'est qu'il y a des dates qu'il inverse il met le mois a la place du jour et inversement du coup les résultats sont faussés pourquoi ça fait ça quand j'utilise une macro ? alors que quand je le fait avec l'assistant ça marche correctement c'est ça que je comprend pas
    Enfin bref..ça marche pas et je ne vois plus de solutions donc si vous en voyez je suis preneur

    merci
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

Discussions similaires

  1. [Toutes versions] comment récupérer via VBA les arguments d’une fonction excel contenue dans une cellule ?
    Par popaul88 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/08/2014, 18h27
  2. Ajouter Référence pour Microsoft Excel
    Par DeveloppeurWeb dans le forum Visual Studio
    Réponses: 1
    Dernier message: 26/10/2010, 12h24
  3. Demande de référence pour bouquin Excel
    Par bigboss60 dans le forum Excel
    Réponses: 2
    Dernier message: 07/02/2008, 20h15
  4. VBA probleme Acces pour fonction somme Excel
    Par darkspoilt dans le forum Général VBA
    Réponses: 1
    Dernier message: 11/05/2007, 17h15
  5. [VBA-E] Ajouter des fonctions dans Excel
    Par Clezio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2004, 01h18

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