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 :

Copie/Colle Spécial format de données


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut Copie/Colle Spécial format de données
    Bonjour,

    J'ai fais une macro qui permet de lire les cellule B2 à B4 de la feuille nommée Feuil1 qui contient des liens hypertexte fichier (ex z:\test\toto.txt), qui ouvre le fichier en question et copie/colle le contenu du fichier cible dans une cellule de la colonne C de la même ligne. Sauf que le collage ne me plait pas.

    Voici 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
    Private Sub XXX_Click()
     
             Dim l As Long, dv As Byte, TextLine As String
             Dim sht As Worksheet, ch As String
     
             Set sht = ThisWorkbook.Worksheets("Chemin_Fichier")
             For l = 1 To 4
                dv = FreeFile: Open sht.Cells(l, 2).Text For Input As #dv
                ch = Input(LOF(dv), #dv)
     
                sht.Cells(20, l + 2) = ch
                'Range("C3:C7").WrapText = True
                'MsgBox ch
                Close #dv
             Next
    End Sub
    Je cherche à présent un moyen de faire un collage spécial, je m'explique :

    D'habitude (sans macro), j'ouvre mon fichier texte à partir d'un fichier Excel pour réaliser un collage spécial sur ma feuil1 : Délimité -> Tabulation -> Virgule -> Espace.

    J'aimerai appliquer ce collage spécial sur une plage de données au lieu de copier tout le contenu dans une cellule : dans ma macro, est-ce possible svp ?

    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
    Il suffit de procéder en VBA de la même façon que tu procèdes "à la main".

    C'est-à-dire qu'au lieu d'ouvrir ton fichier texte en lecture séquentielle (Open For Input), tu l'ouvres comme un classeur avec Workbooks.OpenText, ce qui te permet d'y mettre tous les paramètres de séparateur que tu souhaites.
    https://msdn.microsoft.com/fr-fr/vba...t-method-excel

    Ainsi, toutes tes données sont accessibles à la copie facilement.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Sans emploi - Autonome
    Inscrit en
    Mars 2018
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Sans emploi - Autonome

    Informations forums :
    Inscription : Mars 2018
    Messages : 130
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Il suffit de procéder en VBA de la même façon que tu procèdes "à la main".

    C'est-à-dire qu'au lieu d'ouvrir ton fichier texte en lecture séquentielle (Open For Input), tu l'ouvres comme un classeur avec Workbooks.OpenText, ce qui te permet d'y mettre tous les paramètres de séparateur que tu souhaites.
    https://msdn.microsoft.com/fr-fr/vba...t-method-excel

    Ainsi, toutes tes données sont accessibles à la copie facilement.
    Salut,

    Merci, j'ai utilisé ta méthode et sa fonctionne : il m'ouvre correctement le fichier texte au format délimité->tabulation->virgule ->espace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Workbooks.OpenText FileName:=NomFich, Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, Comma:=True, Space:=True, Tab:=True
        DoEvents
    J'ai testé et visualisé le format grâce à cette instruction lorsqu'il me le colle sur la feuille Excel et le résultat est correct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets(1).Copy After:=Workbooks(NomFichPrincipal).Sheets(Workbooks(NomFichPrincipal).Sheets.Count)
        DoEvents
    A présent, j'aimerai savoir s'il est possible qu'il aille coller les résultats directement sur une plage de donnée précise, par exemple dans la feuil1 dans B1 ?????

    Merci.

  4. #4
    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 SpaceX Voir le message
    A présent, j'aimerai savoir s'il est possible qu'il aille coller les résultats directement sur une plage de donnée précise, par exemple dans la feuil1 dans B1 ?????
    Il suffit de faire une copie de la zone qui t'intéresse dans le classeur source "texte" et d'indiquer comme destination B1 de ta feuille de données.
    https://msdn.microsoft.com/fr-fr/lib.../ff837760.aspx
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. copié-collé spécial de excel vers powerpoint
    Par bcsope dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/01/2016, 10h32
  2. Réponses: 2
    Dernier message: 25/08/2014, 17h25
  3. [XL-2007] Copié collé de données filtrées
    Par pastis.vi dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 05/07/2013, 09h32
  4. Réponses: 4
    Dernier message: 18/08/2008, 14h05
  5. Réponses: 4
    Dernier message: 04/12/2003, 08h12

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