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 :

Concaténer toute une colonne Excel vers une ligne Word [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Est ce possible de Excel 2010 où je viens de coller un tableau, de copier et concaténer en même temps toute une colonne sur Word, pour obtenir une ligne de texte et plus une colonne sur Excel ?

    Merci

    Elwy

    Bon alors j'ai un début de solution qui marche

    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 excelversword()
     
    Dim wordApp As Word.Application
    Dim wordDoc As Word.Document
     
    Set wordApp = CreateObject("word.application")
    wordApp.Visible = True
    Set wordDoc = wordApp.Documents.Open("C:\Users\xxxxxxxxxxxxxxxx.docm")
     
     
    wordDoc.Range.Text = Range("A1")
     
     
    End Sub
    Maintenant je ne vois pas comment faire pour que cette fonction copie à la suite de la cellule A1 le contenu de la cellule A2, et sa jusqu’à ce qu'il n'y ai plus de valeur dans une cellule A
    Par exemple de A1 à A100

    Faire une boucle oui, mais là sa devient compliqué pour moi.

    Qui peut m'aider svp?

    Elwy

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    voici une piste à ajouter/adapter dans ton 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
    21
    22
    23
    24
    25
    26
    27
     
     
    Dim i as Integer
    Dim Chaine as String   ' on va concaténer le colonne dans cette variable
    Dim Sh as Worksheet
    Dim Separateur as String
     
    Set Sh = Thisworkbook.Worksheets("NomDeLaFeuille")
    Separateur = "Tu mets le séparateur de ton Choix"  ' si tu ne veux pas de séparateur, tu peux mettre cette ligne en commentaire
     
    With Sh
     
        Chaine = .Range("A1")     ' on traite la première valeur à la main pour simplifier la gestion du séparateur
     
        ' ATTENTION : en cas de cellule vide, cette boucle va quand même ajouter le séparateur pour la ligne 
        ' Aucune indication dans ton message à ce sujet
        For i = 2 to 100               ' on boucle sur les 99 lignes suivantes
     
            Chaine = Chaine & Separateur & .Range("A" & i)   ' on concatène chaque valeur
     
       Next i
     
    End With
     
    [Ici ton ouverture de Word]
     
    wordDoc.Range.Text = Chaine     ' j'ai pas testé, donc voir si le ".Range" doit être laissé ou non

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Re-bonjour !

    C'est la solution manuelle de Menhir de passer par Word dans ton autre discussion du forum Excel !

    Mais comme je l'ai indiqué, le VBA Excel peut se charger directement de la concaténation
    sans utiliser de feuille pour le résultat (à cause du nombre limité de caractères)
    soit en l'envoyant dans le Presse-papiers d'Office soit en créant un fichier texte,
    mais comme tu n'as pas répondu …


    __________________________________________________________________________________________________
    Tous unis, tous Charlie
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    Alors sa marche niquel. Merci pour ce bout de code.

    Bon me reste plus qu'a modifier la partie ouverture de word, car c'est un document (en parlant de excel) qui sera accessible a plusieurs personnes en même temps.
    Et tel que c'est codé pour le moment, il va y avoir le problème que le fichier word sera déjà ouvert lors d'une utilisation simultané.

    Je pense que l'on doit pouvoir dire d’ouvrir un document vierge au lieu d'un document existant

    dsl je n'avais pas vue la suite sur l'autre post

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Comme la solution passe par un code, le mieux est de répondre dans cette discussion.

    Clôturer l'autre discussion en précisant la suite se trouve ici et en mettant un lien …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    ok

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bon, il y a Menhir qui continue de l'autre côté avec Word, à toi de voir …

    Sinon côté Excel, la concaténation se fait en une ligne de code mais tant que tu ne réponds pas à ceci :

    Citation Envoyé par Marc-L Voir le message
    Code VBA effectuant la concaténation puis l'envoyant dans le Presse-papiers d'Office (comme un Copier)
    ou créant un fichier texte …

    Manuellement le Copier d'Excel fonctionne-t-il avec un Coller dans l'ailleurs ?
    … je suis dans l'expectative ! La colonne commence en A1 ?
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Il est préférable dans ce cas de tester si le document est en lecture seule ou non :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    If wordDoc.ReadOnly then   'si lecture seule
     
        'Eventuellement un message d'avertissement
        Msgbox "Le fichier étant en lecture seule, un nouveau document va être crée"
        wordDoc.Close False   ' fermeture du document sans l'enregistrer
        Set wordDoc = wordApp.Documents.Add   ' création d'un nouveau document et affectation immédiate
     
    End If
    Restera également à gérer l'enregistrement du nouveau fichier + le renommer si besoin

  9. #9
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Pas mal mais pourquoi s'embêter avec Word alors que le VBA Excel effectue la concaténation
    et la copie dans le Presse-papiers par exemple en deux lignes de code !

    Et l'autre solution créant un fichier texte n'en requière pas beaucoup plus, what else ?!

    Edit : chaque solution a besoin en fait de quatre lignes de code au total …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  10. #10
    Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    oula vous me perdez là.

    Moi au final il faut que l'utilisateur puisse a partir d'un fichier excel (fichier sans valeur, il sert juste a faire le tremplin entre le contenu d'une page web) récupérer et concaténer l'ensemble des valeurs (texte) de la colonne A, Toujours la A, et ensuite copier le résultat dans le descriptif d'une fiche produit de notre site internet (dans un champ texte sur la fiche)

    Source des données:
    Nom : vedelec.jpg
Affichages : 1346
Taille : 408,1 Ko

    Quand on sélectionne ce tableau on récupéré les 4 colonnes, et seule la une nous suffit. Voila pourquoi on colle dans excel ce tableau. De la on revient a ma demande, de recup seulement la colonne 1 donc la A sur excel, on la transforme en une ligne et on colle dans notre site web:

    Nom : presta.jpg
Affichages : 1389
Taille : 177,3 Ko

    Pour les utilisateurs, il faut que la procédure soit automatisé au maximum , style juste à copier le tableau appuyer sur un bouton afin qu'il n'ai plus qu'a coller le résultat.

    Donc pour moi étant donné qu'ils se servent de word et excel tt les jours, je suis restée la dessus.
    Maintenant si de excel juste on peut récupérer cette chaine de caractère sans ouvrir word et la coller direct sur le site sa me va aussi. Mais là dans excel je ne vois pas comment

  11. #11
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    N'ayant aucune précision quant au site Internet,
    voici une démonstration pour effectuer la concaténation de la colonne A vers le Presse-papiers Office
    (activer au préalable la référence Microsoft Forms 2.0 Object Library via le menu Outils du VBE),
    code à copier dans le module de la feuille de calculs contenant la colonne à concaténer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Demo()
        Dim oDO As New DataObject
            oDO.SetText Join(Application.Transpose(Cells(1).CurrentRegion.Columns(1)))
            oDO.PutInClipboard
        Set oDO = Nothing
    End Sub
    __________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  12. #12
    Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    alors je n'ai pas dans outils / Référence Microsoft Forms 2.0 Object Library. j'ai parcourus la liste plusieurs fois sans la trouver.

  13. #13
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut





    Ajouter alors un UserForm au projet, cela active de facto cette référence …

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  14. #14
    Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    alors la chapeau, sa marche niquel.

    J'ai du rajouter a la main la librairie. Plus besoins de Word. Me reste à ajouter un bouton sur tt les postes qui vont utiliser cette macro sur leur excel.

    Merci a vous trois. Je garde toutes les solutions en stock, sa peut toujours servir

    Cordialement

    Elwy

  15. #15
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Et ne pas oublier pour remercier les participants :

    __________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  16. #16
    Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par elwy07 Voir le message

    Merci a vous trois. Je garde toutes les solutions en stock, sa peut toujours servir

    Me semble l'avoir fait, mais c'est pas grave

    Encore merci beaucoup

  17. #17
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut





    Cliquer sur l'icône en bas à droite de chaque message ayant aidé, c'est aussi remercier !


    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  18. #18
    Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    ok je ne savais pas.

  19. #19
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    No problemo et merci !

    Ensuite une fois que tu en as fini avec cette discussion, la clôturer via l'icône
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2014, 16h32
  2. [Toutes versions] Publispostage "enregistrement suivant" vers une colonne et non une ligne
    Par alshjv dans le forum Word
    Réponses: 3
    Dernier message: 10/03/2011, 15h20
  3. coller une sélection d'une feuille excel vers une table access
    Par docjo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/01/2008, 17h50
  4. Comment transférer une ligne d'une feuille Excel vers une autre
    Par iboulaye1980 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/05/2007, 10h32
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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