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 :

GetOpenFilename et .csv, petit probleme


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut GetOpenFilename et .csv, petit probleme
    (Re)bonjour,

    Je possede une macro qui me permet d'uploader un fichier excel 'Source' vers un fichier 'Destination'.

    Ca se passe assez simplement : Dans le fichier 'Destination', je possede une macro a base de .GetOpenFilename qui me permet de selectionner un fichier (en l'occurence le fichier 'Source'), et qui ensuite ira directement copier la partie du fichier 'Source' qui m'interesse dans le 2e onglet du fichier 'Destination'.

    Voici le code en question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Button4_Click()
     
    Dim azerty As Excel.Workbook
    Dim fichier
    fichier = Application.GetOpenFilename()
    MsgBox fichier
    Set azerty = Workbooks.Open(fichier)
    azerty.Worksheets(1).Range("A4:Y20000").Copy
    ActiveSheet.Paste Destination:=Workbooks("ARVAL3.xlsm").Worksheets("Arval Reports").Range("A65536").End(xlUp).Offset(1, 0)
    azerty.Close False
     
     
    End Sub
    Avec ARVAL3 = fichier Destination, la ou les donnees seront collees (dans l'onglet 'Arval Reports' en l'occurence).

    Cette macro marche parfaitement sauf qu'a certains endroit pour une raison que j'ignore, certaines lignes copiees changent une fois qu'elles sont collees.

    Cela concerne environ 30% des donnees.

    On m'a suggere que cela pourrait venir du fait que les fichier 'source' sont des fichiers .csv . S'agit-il bien la du probleme ? Si oui, savez-vous comment y remedier (je dois malheureusement travailleravec des fichiers 'source' en .csv)

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Et quelles sont les spécificités des lignes non copiées?
    Sinon, ton code sera comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Button4_Click()
    Dim Azerty As Workbook
    Dim Fichier
     
    Application.ScreenUpdating = False
    Fichier = Application.GetOpenFilename("csv Files (*.csv), *.csv")
    If Fichier <> False Then
        Set Azerty = Workbooks.Open(Fichier)
        Azerty.Worksheets(1).UsedRange.Copy ThisWorkbook.Worksheets("Arval Reports").Range("A65536").End(xlUp)(2)
        Azerty.Close False
        Set Azerty = Nothing
    End If
    End Sub

  3. #3
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Merci pour ta reponse Mercatog.

    la specifite c'est simplement que certaines colonnes dans certaines lignes ne sont pas correctement copiees, c'est vraiment delicat de t'expliquer sans te donner un exemple. Puis-je t'envoyer les fichiers afin que tu t'en rendes compte (par mp) ?

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Essaies de joindre un extrait non confidentiel de ton fichier (surtout les lignes non copiées)

  5. #5
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Voila les fichiers, upload le en utilisant la macro comme cela tu verras parfaitement le fonctionnement.

    Tu trouveras une erreur a la ligne 74 (avec un cost centre de 1, ca c'est correct, mais apres les couts, quantites et dates sont fausses).

    J'ai vraiment du mal a comprendre ce qui ne va pas.

    (Il faut ouvrir Arval3 et uploader le fichier en suivant les instruction, c'est rapide )

    Edit : les fichiers n'apparaissent pas, pourquoi ?

  6. #6
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Rebonjour,

    Je viens de voir que je ne peux pas vous joindre les fichiers car il s'agit d'un .xlsm et d'un .csv .

    Je me permets de vous poster les macros "mises à jour", mais je rencontre toujours le meme probleme : Certaines dates sont incorrectes lors du collage.

    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
    Option Explicit
     
    Sub Button2_Click()
    Dim i As Long
     
    Application.Calculation = xlCalculationManual
    With Worksheets("Arval Reports")
        i = .Cells(.Rows.Count, "S").End(xlUp).Row
        With .Range("AB1:AB" & i)
            .Formula = "=TEXT(S1,""mmmm"" )"
            .Value = .Value
        End With
    End With
    Application.Calculation = xlCalculationAutomatic
    End Sub
     
     
    Sub Button4_Click()
     
    Dim azerty As Excel.Workbook
    Dim fichier
    fichier = Application.GetOpenFilename()
    MsgBox fichier
    Set azerty = Workbooks.Open(fichier)
    azerty.Worksheets(1).Range("A4:Y20000").Copy
    ActiveSheet.Paste Destination:=Workbooks("ARVAL3.xlsm").Worksheets("Arval Reports").Range("A65536").End(xlUp).Offset(1, 0)
    azerty.Close False
     
     
    End Sub

  7. #7
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Toujours personne pour me donner un coup de main ? Je suis vraiment bloqué, et je ne peux pas joindre les fichiers car ils ne sont pas au bon format, la seule solution serait que je vous les fasse parvenir par mp

    Edit : Je vais essayer de faire un paste special value, mais je n'arrive pas à adapter mon code, car quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Button4_Click()
     
    Dim azerty As Excel.Workbook
    Dim fichier
    fichier = Application.GetOpenFilename()
    MsgBox fichier
    Set azerty = Workbooks.Open(fichier)
    azerty.Worksheets(1).Range("A4:Y20000").Copy
    Activesheet.PasteSpecial Paste:=xlValues Destination:=Workbooks("ARVAL3.xlsm").Worksheets("Arval Reports").Range("A65536").End(xlUp).Offset(1, 0)
    azerty.Close False
     
     
    End Sub
    J'obtiens un "erreur de syntaxe", avec cette ligne qui est surlignée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Activesheet.PasteSpecial Paste:=xlValues Destination:=Workbooks("ARVAL3.xlsm").Worksheets("Arval Reports").Range("A65536").End(xlUp).Offset(1, 0)

  8. #8
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Les fichier .zip peuvent être joints.
    Extensions de fichiers valides: as asm asp aspx bz2 c conf cpp cs css dfm doc dpr dtd fla gif gz h hpp htm html java jpe jpeg jpg js pas pdf php pl png psd py rar rpt sql swf tar tex txt vb xfm xls xml xsd xsl xslt zip

  9. #9
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Merci bien, voici les fichiers. Il faut donc ouvrir le fichier Arval3, et cliquer sur le bouton "upload" pour uploader le .csv

    Vous verrez que la premiere erreur dans la colonne S (trasaction date) se situe à la ligne 75.

  10. #10
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    J'ai repasse les fichiers en revue pour la Xe fois, je ne vois plus aucune incoherence niveau format dans le fichier "source". L'erreur doit se situer quelque part dans le code, qui pourtant est tres tres simple

  11. #11
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour

    Essaie manuellement sur ton fichier csv de sélectionner la colonne A et de faire, Données> Convertir.... (en choisissant la virgule comme délimiteur)
    Tu vas t’apercevoir des décalages dans les données.

  12. #12
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Merci pour ta reponse Mercatog.

    Est-ce possible de remedier a cela a l'aide d'une macro ?

  13. #13
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    As tu fais les manipulations précédentes?
    Quelles sont les lignes problématiques?
    Le décalage est toujours le même ou aléatoire?
    Est ce qu'on peut intervenir à la source (ce que je doute fort)?

  14. #14
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Salut Mercatog,

    Je viens de faire la manip avec le decalage, mais j'ai l'impression qu'on a pas les meme fichiers, car je ne vois aucun decalage.

    Tu as toutes les donnees en colonne A separe par une virgule? CHez tout est separe par colonne, comme un tableau "propre". Il n'y a aucun decalage. Tu as bien ouvert le second fichier que je t'ai joint ?

    Et non, impossible d'agir sur le fichier source malheureusement.

  15. #15
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Et quelles sont les lignes qui ne sont pas pris en compte ou problématiques?
    Tes formules fonctionnent t elles partiellement ou pas du tout?

  16. #16
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Il y en a un paquet, 30% des lignes a peu pres : 73 a 77, 88, 90, 94 ... (je parle des lignes uploades dans le dossier Arval, qui sont equivalentes a X+2 dans le .csv, soit 75 a 79 etc...).

    Mes formules fonctionnent toutes (si tu fais references a celles sur la premiere page), et le code fonctionne a moitie puisque la moitie des lignes a ete correctement uploade.

  17. #17
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    J'ai pas le fichier que tu décrit.
    Mais:
    Le code proposé ne fait que copier l'intégralité des données du fichier mensuel Arval... vers la première cellule vide de la feuille Arval Reports du fichier ARVAL.

  18. #18
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Mais oui ! C'est pour ca que c'est absolument incomprehensible que certaines lignes ne soit pas copiees correctement.

    Tu as quoi quand tu ouvres le dernier .zip que je t'ai envoye ?

    Un fichier excel propre ou tout est range par colonnes ?

  19. #19
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Supprime tes ancien fichier et envoi les derniers fichiers avec explication sur les lignes exactes qui ne sont pas importées.

  20. #20
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 44
    Par défaut
    Voila les dossiers, j'ai surligne en jaune les lignes incorrectes. (qui correspondent donc a ligne+2 dans le fichier .csv)

    Est-ce que tu peux me dire si cette fois ci en ouvrant le .csv tu as un fichier "propre", ou tout est range en ligne et colonnes ?

    Edit : Les choses qui ont ete mal copiees/collees dans les lignes surlignees se trouvent dans la colonne S, il s'agit des Transaction Date.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Petit problème de fork
    Par osmose22 dans le forum Linux
    Réponses: 7
    Dernier message: 18/03/2007, 22h10
  2. [TP]petit probleme avec solution
    Par pompompolom dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 02/12/2004, 20h48
  3. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 17h19
  4. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 12h36
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 14h51

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