Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/10/2011, 12h25   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
Par défaut [Excel 2007] ActiveSheet.Range

Bonjour,

J'utilise une macro qui me sélectionne des cellules dans une feuille Excel pour les envoyer dans un fichier word.
Tout fonctionne mais j'aimerai maintenant récupérer ces cellules sur l'ensemble du classeur et je ne trouve pas la solution.

Celle qui fonctionne est :

Pour le classeur entier j'ai essayé :
Si quelqu'un a la solution je suis preneur

Merci
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 13h42   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Bonjour,

Si je comprend bien, tu veux retourner toutes les cellules sélectionnées du classeur.

Cette proposition boucle sur chaque onglet du classeur et affiche dans une msgbox les cellules sélectionnées
Code :
1
2
3
4
5
6
7
8
Dim Sh As Worksheet
 
For Each Sh In ThisWorkbook.Worksheets
 
    Sh.Activate
    MsgBox Selection.Address
 
Next
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 14h42   #3
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
Non en fait je veux encore garder un certain range de cellules.

Ma macro actuelle est :
Code :
ActiveSheet.Range("A10:X39").Copy
et je veux appliquer la même chose sur l'ensemble des feuilles du classeur.
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 14h56   #4
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Si tu copies toujours la même plage

Code :
1
2
3
4
5
6
7
8
9
10
11
Dim Sh As Worksheet
 
For Each Sh In ThisWorkbook.Worksheets
 
     Sh.Range("A10:X39").Copy
 
 
     'ligne de collage vers Word     
 
 
Next
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 15h30   #5
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
Merci Jérôme pour ta réponse.
Je viens d'essayer mais cela me prend uniquement la dernière feuille du classeur.
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 17h21   #6
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Tu as bien mis la ligne de collage word dans la boucle comme je le stipule le code dans mon précédent post?

Donne nous ton code (cette partie) pour qu'on puisse analyser
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 17h29   #7
Invité de passage
 
Inscription : septembre 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 21
Points : 4
Points : 4
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim oWdApp As Object 'Word.Application
Dim oWdDoc As Object 'Word.Document
 
'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")
 
'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Open("C:\Users\utilisateur\Contrat.docx")
 
'Rendre Word visible
oWdApp.Visible = True
 
'Copier une plage depuis Excel
ActiveSheet.Range("A10:X39").Copy
 
'Coller la plage dans Word
oWdApp.Selection.Paste
 
'Annuler le mode couper/copier
Application.CutCopyMode = False
Ambrocbt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 17h52   #8
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 894
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 894
Points : 7 178
Points : 7 178
Essais comme cela

A voir le collage dans word car je ne sais pas s'il écrasera le précédent
un repositionnement est peut etre nécessaire
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim oWdApp As Object 'Word.Application
Dim oWdDoc As Object 'Word.Document
Dim Sh As Worksheet
 
'Lancer une instance Word
Set oWdApp = CreateObject("Word.Application")
 
'Ouvrir un nouveau document
Set oWdDoc = oWdApp.Documents.Open("C:\Users\utilisateur\Contrat.docx")
 
'Rendre Word visible
oWdApp.Visible = True
For Each Sh In ThisWorkbook.Worksheets
   'Copier une plage depuis Excel
   Sh .Range("A10:X39").Copy
 
   'Coller la plage dans Word
   oWdApp.Selection.Paste
 
Next Sh
 
'Annuler le mode couper/copier
Application.CutCopyMode = False
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h14.


 
 
 
 
Partenaires

Hébergement Web