Menu

VBA sélectionner page 2 et copie en fi de doc

Messages postés
29
Date d'inscription
dimanche 5 août 2018
Statut
Membre
Dernière intervention
5 juin 2019
- - Dernière réponse : Max83830
Messages postés
29
Date d'inscription
dimanche 5 août 2018
Statut
Membre
Dernière intervention
5 juin 2019
- 16 déc. 2018 à 19:21
Bonjour à tous et à toutes,
Je débute le VBA sous Word.
Je souhaiterai créer une macro qui sélectionne la page deux intégralement, la copie et la colle en fin de document en respectant la mise en page.

J'utilise WORD 2016.
Merci d'avance


Configuration: Windows / Edge 17.17134
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
6138
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 juillet 2019
373
1
Merci
Bonjour,

voici 2 sites pour démarrer

utiliser l'enregistreur de macro:

https://openclassrooms.com/fr/courses/1438346-redigez-facilement-des-documents-avec-word/1443761-macros-et-vba

et pour aller plus loin:

https://heureuxoli.developpez.com/office/word/vba-word/

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 54758 internautes nous ont dit merci ce mois-ci

Max83830
Messages postés
29
Date d'inscription
dimanche 5 août 2018
Statut
Membre
Dernière intervention
5 juin 2019
1 -
Merci pour les liens, j'ai déjà essayé avec l'enregistreur de macro, mais je suis plus à l'aise avec Excel, il faut que j'approfondisse et je suis limite avec le temps
cs_Le Pivert
Messages postés
6138
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 juillet 2019
373 -
Tu sélectionnes le début de ton texte: dans le ruban Insertion Signet que tu nommes debut
La fin du texte Insertion signet fin
Tu vas à l'endroit que tu veux coller ton texte: Insertion Signet copier

voici les macros:

Sub selectiontexte()
'Déclare les nom des signets
Const UnSignet As String = "debut"
Const DeuxSignet As String = "fin"

'Déclare le variable Range
Dim Signet1Rge As Range
Dim Signet2Rge As Range
Dim selection As Range

'Assigne les variables
With ActiveDocument
Set Signet1Rge = .Bookmarks(UnSignet).Range
Set Signet2Rge = .Bookmarks(DeuxSignet).Range

'Assigne le texte à selectionner
'(Texte compris entre fin du premier signet
'et début du deuxième)
Set selection = _
.Range(Signet1Rge.End, Signet2Rge.Start)

'selectionne le texte pour la copie
selection.Select
 selection.Copy 'copie le texte
End With
End Sub
Sub copiertexte()
'Déclare les nom du signet
Const Troissignet As String = "copier"

'Déclare le variable Range
Dim Signet3Rge As Range
Dim selection As Range

'Assigne la variable
With ActiveDocument
Set Signet3Rge = .Bookmarks(Troissignet).Range

Set selection = _
.Range(Signet3Rge.Start)

'selectionne le début de copie
selection.Select
selection.Paste 'colle le texte
End With
End Sub




Voilà

@+ Le Pivert
Max83830
Messages postés
29
Date d'inscription
dimanche 5 août 2018
Statut
Membre
Dernière intervention
5 juin 2019
1 -
Merci,
macro fonctionnelle,
mais serait-il possible de lui faire copier sur la ligne avant le signet copier, pour pouvoir renouveler l'opération autant de fois que nécessaire, car lors de la copie il écrase le signet et l'opération n'est possible qu'une fois.
Merci par avance
Max83830
Messages postés
29
Date d'inscription
dimanche 5 août 2018
Statut
Membre
Dernière intervention
5 juin 2019
1 -
Bonsoir,
j'ai trouvé une façon peu académique de traiter ce problème.
Deux macros, tes deux modules en un, puis j'ajoute après être allé à la ligne deux fois, une macro qui insère ton signet coller pour le traitement suivant.Pour l'instant, je n'ai pas le temps de voir plus en avant, mais je te remercie pour ta solution clé en main.
Commenter la réponse de cs_Le Pivert