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 :

Excel vers word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2023
    Messages : 4
    Par défaut Excel vers word
    Bonjour à la communauté,

    Je mets ici mon premier post, soyez indulgeant !

    Voila j'essaie de me créer un tableur qui me permet, via un Userform, d'exporter les feuilles sélectionnées vers Word. Le soucis, c'est que je m'aperçois que lorsque je sélectionne plusieurs feuilles, j'ai l'impression qu'il copie/colle la première feuille, puis "efface" et recolle par dessus la deuxième feuille sélectionnée.

    En fait, j'aimerais que le contenu des feuilles sélectionnées soit coller à la suite sur le document Word...J'espère avoir été clair dans mes explications.

    Je précise que ce sont mes tout premiers codes VBA, ne soyez pas trop sévère avec moi

    Si vous avez d'autres idées ou techniques afin de rédiger un rapport à partir d'Excel, ou même des tableurs, je suis preneur !

    Merci à tous ceux qui aident au quotidien, vous êtes parfais les gars et j'espère pouvoir le faire à mon tour un jour.

    Prenez soin de vous
    Fichiers attachés Fichiers attachés

  2. #2
    Membre très actif
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Décembre 2021
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 389
    Par défaut
    Bonjour,

    J'ai ajouté une checkbox sur l'usf pour indiquer s'il faut faire un saut de page entre les contenus.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Private Sub ExporterFeuillesVersWord()
        ' Exporte les feuilles sélectionnées vers Word
     
        Dim ObjWord As Object 'Word.Application
        Dim WordDoc As Object 'Word.Document
        Dim WordSelect As Object 'Word.Selection
     
        Dim Feuille As Worksheet
        Dim I As Integer
        Dim Cell As Range
        Dim Contenu As String
     
        ' Vérifier si Word est ouvert
        On Error Resume Next
        Set ObjWord = GetObject(, "Word.Application")
        On Error GoTo 0
     
        If ObjWord Is Nothing Then
            ' Si Word n'est pas déjà ouvert, le démarrer
            Set ObjWord = CreateObject("Word.Application")
            ObjWord.Visible = True ' Vous pouvez changer cela en fonction de vos besoins
        End If
     
        Set WordDoc = ObjWord.Documents.Add
        Set WordSelect = ObjWord.Selection
     
     
        ' Exporter chaque feuille sélectionnée vers Word
        For I = 0 To ListBoxFeuilles.ListCount - 1
     
            If ListBoxFeuilles.Selected(I) Then
     
                Set Feuille = ThisWorkbook.Sheets(ListBoxFeuilles.List(I))
                ' Construire le contenu à partir des cellules de la feuille
                For Each Cell In Feuille.UsedRange
                    Contenu = Contenu & Cell.Value & vbTab ' Utilisez un tableau pour séparer les cellules
                Next Cell
     
                With WordSelect
                     .Text = Contenu
                     .InsertParagraphAfter
                     .EndKey unit:=6, Extend:=0
                     If CheckBoxSautDePage Then .InsertBreak Type:=7
                End With
                Contenu = "" ' Réinitialiser le contenu
                Set Feuille = Nothing
     
            End If
     
        Next I
     
        ' Nettoyer
        Set ObjWord = Nothing: Set WordDoc = Nothing: Set WordSelect = Nothing
        Unload Me
     
    End Sub
    Fichiers attachés Fichiers attachés

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2023
    Messages : 4
    Par défaut
    Bonjour,

    Super E KERGRESSE, je te remercie beaucoup !!

    Que penses tu de mon code VBA sinon? Aurais tu fais différemment?

    Bonne journée,

  4. #4
    Membre très actif
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Décembre 2021
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 389
    Par défaut
    Bonjour,

    La réponse est dans mon code. Dans Word, l'objet Sélection a beaucoup d'importance, c'est pour cela que j'ai remplacé ton WordRange par la variable WordSelect.
    Sinon, le code qui vient mettre à jour le document Word aurait été dans un module standard et l'initialisation du userform aurait été dans la procédure de lancement dans le module standard, mais là il s'agit seulement d'une habitude.

    Cordialement.

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2023
    Messages : 4
    Par défaut
    D'accord merci pour ce retour.

    Merci beaucoup de m'avoir aidé aussi.

    En revanche, sais-tu s'il y à possibilité de garder la mise en forme du tableur lorsque l'opération "copier/coller" est réalisée? Car finalement il n'y à juste un copier coller du texte mais la mise en forme disparait sur Word. As-tu une idée de ce que je devrais modifier pour maintenir la mise en page lors de l'export?

    Bonne journée, merci

  6. #6
    Membre très actif
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Décembre 2021
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 389
    Par défaut
    Au lieu de prendre le contenu, il faut copier les cellules :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Private Sub ExporterFeuillesVersWord()
        ' Exporte les feuilles sélectionnées vers Word
     
        Dim ObjWord As Object
        Dim WordDoc As Object
        Dim WordSelect As Object
     
        Dim Feuille As Worksheet
        Dim I As Integer
        Dim Cell As Range
     
        ' Vérifier si Word est ouvert
        On Error Resume Next
        Set ObjWord = GetObject(, "Word.Application")
        On Error GoTo 0
     
        If ObjWord Is Nothing Then
            ' Si Word n'est pas déjà ouvert, le démarrer
            Set ObjWord = CreateObject("Word.Application")
            ObjWord.Visible = True ' Vous pouvez changer cela en fonction de vos besoins
        End If
     
        Set WordDoc = ObjWord.Documents.Add
        Set WordSelect = ObjWord.Selection
     
     
        ' Exporter chaque feuille sélectionnée vers Word
        For I = 0 To ListBoxFeuilles.ListCount - 1
     
            If ListBoxFeuilles.Selected(I) Then
     
                Set Feuille = ThisWorkbook.Sheets(ListBoxFeuilles.List(I))
                ' Construire le contenu à partir des cellules de la feuille
                Feuille.UsedRange.Copy
                With WordSelect
                     .Paste
                     .InsertParagraphAfter
                     .EndKey unit:=6, Extend:=0
                     If CheckBoxSautDePage Then .InsertBreak Type:=7
                End With
                Contenu = "" ' Réinitialiser le contenu
                Set Feuille = Nothing
     
            End If
     
        Next I
     
        ' Nettoyer
        Set ObjWord = Nothing: Set WordDoc = Nothing: Set WordSelect = Nothing
        Unload Me
     
    End Sub

Discussions similaires

  1. problème copie Tableau de Excel vers Word
    Par el_titou007 dans le forum VBA Word
    Réponses: 2
    Dernier message: 02/04/2007, 09h42
  2. Réponses: 2
    Dernier message: 12/02/2007, 13h39
  3. [VBA-Word] Exportation Excel vers Word
    Par le_sonic dans le forum VBA Word
    Réponses: 6
    Dernier message: 20/12/2006, 17h18
  4. [VBA-A]Copier des données d'Excel vers Word
    Par soad029 dans le forum VBA Word
    Réponses: 15
    Dernier message: 16/03/2006, 11h56
  5. [VBA-E]Copie graphique de excel vers word
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2006, 10h49

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