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 :

comment faire un copier coller d'un fichier csv avec separation des ; au collage


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut comment faire un copier coller d'un fichier csv avec separation des ; au collage
    Bonjour à tous ,

    Je suis débutant sur vba ,

    Je fais une macro au a un moment il faut récupérer les données csv d'un autre fichier , ainsi j'arrive bien a faire un copier coller mais du coup il ne convertit pas avec les ;

    C'est ici que vous pouvez m'aider , savez vous comment faire pour que lors du collage il y a d'office la séparation a chaque ;

    D'avance merci .

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Pourrais-tu montrer le code qui fait la copie ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour,
    Citation Envoyé par vikingkong Voir le message
    savez vous comment faire pour que lors du collage il y a d'office la séparation a chaque ;
    Il te faut ouvrir ton csv comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Workbooks.Open Filename:="fichier.csv"
    Ton csv est alors séparé en colonnes.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour ,

    C'est ce que j'ai l'impression de faire avec mon code mais cela ne fonctionne pas

    Voici mon 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
    19
    20
     Dim Fichier1 As String
     
            Fichier1 = "C:\Users\" & VBA.Environ("USERNAME") & "\Desktop\FICHIER AIDE\export_Extraction_*"
     
        If Dir(Fichier1) <> "" Then
     
            Sheets("FICHIER PIM AKENO").Select
            Range("A1:CL1").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.ClearContents
            Workbooks.Open Filename:="C:\Users\" & VBA.Environ("USERNAME") & "\Desktop\FICHIER AIDE\" & Dir(Fichier1)
            Cells.Select
            Selection.Copy
            nomfichier1 = Application.ActiveWorkbook.Name
            Windows("NEWAIDE.xlsm").Activate
            Sheets("FICHIER PIM AKENO").Select
            Cells.Select
            ActiveSheet.Paste
     
            Workbooks(nomfichier1).Close
    Grosso modo mon fichier qui contient la macro s'appelle newaide , à l'intérieur j'ai une feuille qui s'appelle fichier pim akeno" et mon fichier csv n'a pas une fin de nom défini car à chaque téléchargement le nom contient la date .

    En attente de vos réponses .

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par anasecu Voir le message
    Il te faut ouvrir ton csv comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Workbooks.Open Filename:="fichier.csv"
    Je ne suis pas de ton avis.

    Personnellement, j'ouvre toujours les CSV avec OpenText.
    Lire ceci : https://docs.microsoft.com/fr-FR/off...books.opentext

    Ca permet de contrôler non seulement le séparateur de données mais aussi la nature des champs.

    @ vikingkong : évite les Select/Selection, surtout sur les Range.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim Fichier1 As String
    Dim WSDest As Worksheet, WBSource As Workbook
     
    Fichier1 = "C:\Users\" & VBA.Environ("USERNAME") & "\Desktop\FICHIER AIDE\export_Extraction_*"
    Set WBDest = Sheets("FICHIER PIM AKENO")
     
    If Dir(Fichier1) <> "" Then
       WSDest.UsedRange.ClearContents
       Set WBSource = Workbooks.OpenText Filename:="C:\Users\" & VBA.Environ("USERNAME") & "\Desktop\FICHIER AIDE\" & Dir(Fichier1), Semicolon:=True, Comma:=False
       ActiveSheet.UsedRange.Copy
       WSDest.Range("A1").PasteSpecial
       WBSource.Close
    End If
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour le Fil,

    Personnellement, pour des petits csv, je préfère Open (sans séparateur de valeur) suivi d'un TextToColumns, j'ai moins de surprises qu'avec OpenText.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Set wbk = Workbooks.Open(Filename:=nomCompletFichier, Format:=5)
        Set rng = wbk.Worksheets(1).Range("A1").CurrentRegion
        rng.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, Comma:=True, _
            ConsecutiveDelimiter:=False, Tab:=False, semicolon:=False, Space:=False, Other:=False, DecimalSeparator:=".", TrailingMinusNumbers:=True
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Bonjour Je viens de faire un copier coller de votre code et j'ai une erreur de syntaxe sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set WBSource = Workbooks.OpenText Filename:="C:\Users\" & VBA.Environ("USERNAME") & "\Desktop\FICHIER AIDE\" & Dir(Fichier1), Semicolon:=True, Comma:=False

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/04/2016, 15h33
  2. [XL-2013] Comment faire un Copier coller Sous VBA
    Par Akit0 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/09/2015, 20h27
  3. [VBA-E]Faire un Copier coller d'une ListBox à une autre
    Par anubisigfrid dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2007, 14h40
  4. Réponses: 9
    Dernier message: 09/03/2007, 15h01
  5. Probleme avec les fichier faire un copier coller
    Par mcdonald dans le forum Général Python
    Réponses: 4
    Dernier message: 29/01/2006, 13h38

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