Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
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 14/02/2011, 13h31   #1
Invité de passage
 
Marc
Inscription : février 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Marc

Informations forums :
Inscription : février 2011
Messages : 2
Points : 0
Points : 0
Par défaut Commander Excel depuis Word

Bonjour tout le monde, et à toi plus particulièrement.
Voilà, quand une base de données dépasse les 65000 données on ne peut plus travailler avec Excel. Mais j'ai réussi à contourner le problème à partir de VBA avec Word.
Ainsi j'ai pu créer autant de classeurs Excel que je veux de feuilles dans un Classeur Excel donné.
Dans Word, j'arrive à ouvrir tous les classeurs Excel que je veux, mais je n'arrive pas à passer la commande "Déplacer une feuille". Rappel : je suis sous VBA de Word.
Voici mes dernières lignes de commande de cette affaire :

Code :
1
2
3
4
5
6
7
8
9
Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Workbooks.Open FileName:= "C:\DocTravail.xls" 'Ouverture du classeur de destination
 
    xlApp.Workbooks.Open FileName:="C:\DocOrigine.xls 'Ouverture du classeur d'origine
    xlApp.Visible = True 	'Rendre visible Excel
 
La commande que je voudrais passer est du style : 
	Sheets("DocOrigine").Move After:=Workbooks("DocTravail.xls").Sheets(3)
Mais naturellement, cette commande marche sous Excel, mais pas sous word (il ne connait pas Sheets)

Voilà pourquoi je vous sollicite, en cas de réponse je souhaiterai que l'on soit précis sur les déclarations de variable.

Merci d'avance
MarcoCham est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 17h57   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 219
Points : 29 219
Salut,

Petite astuce, lorsqu'on travaille dans une autre application, il est beaucoup plus facile de déclarer les objets complètement et en EarlyBinding.

Code :
1
2
3
Dim xlApp as Excel.Application
Dim xlWB as Excel.WorkBook
Dim xlWS As Excel.WorkSheet
On ajoute la référence Excel au Projet et on bénéficie de l'IntelliSense qui est une aide à la saisie du code. On peut alors obtenir les méthodes et propriétés qui sont applicables à l'objet.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 12h10   #3
Invité de passage
 
Marc
Inscription : février 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Marc

Informations forums :
Inscription : février 2011
Messages : 2
Points : 0
Points : 0
Citation:
Envoyé par Heureux-oli Voir le message
Salut,

Petite astuce, lorsqu'on travaille dans une autre application, il est beaucoup plus facile de déclarer les objets complètement et en EarlyBinding.

Code :
1
2
3
Dim xlApp as Excel.Application
Dim xlWB as Excel.WorkBook
Dim xlWS As Excel.WorkSheet
(Re) Bonjour, en effet le résultat est là et je te remercie.
Le seul truc qui me chagrine, c'est qu'il faut cocher la référence à la librairie objet d'Excel pour que cela tourne.
D'où une autre question : Le document sera en réseau et lancé par différente personnes. Dois-je prévoir une ligne de commande pour que la librairie s'active automatiquement ou pas ?
Et éventuellement, qu'elle est cette ligne de commande ?
Si j'obtiens cette dernière réponse, je pense que je pourrais clore le sujet.
Encore merci d'avance.
MarcoCham est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 14h15   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 219
Points : 29 219
Salut,

Le seul inconvénient à déclarer la bibliothèque dans le projet est que la version d'Excel doit être la même sur toutes les machines. Pour les utilisateurs, c'est totalement transparent.

Si les versions sont différentes, la méthode que j'utilise est lier la bibliothèque lorsque de la création du projet et par la suite, je change

Code :
1
2
Dim xlApp As Excel.application
Set xlApp  = New Excel.Appllication
en
Code :
1
2
Dim xlApp As object
Set xlApp = CreateObject("Excel.application")
J'évite les erreurs de saisie et des recherches parfois fastidieuses.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli 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 10h32.


 
 
 
 
Partenaires

Hébergement Web