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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

Discussions similaires

  1. Petit problème de fork
    Par osmose22 dans le forum Linux
    Réponses: 7
    Dernier message: 18/03/2007, 21h10
  2. [TP]petit probleme avec solution
    Par pompompolom dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 02/12/2004, 19h48
  3. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  4. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 11h36
  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, 13h51

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