Variables dans une sous-procédure

Résolu
Signaler
Messages postés
41
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
30 octobre 2008
-
Messages postés
8
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
19 septembre 2011
-
Bonjour!!

Je crée une procédure qui créé un nouveau fichier excel de cette façon :

Set xlapp = New
Dim xlapp As Excel.Application
Dim Workbook As Excel.Workbook
Screen.MousePointer = vbHourglass
Set xlapp = New Excel.Application
xlapp.DisplayAlerts = False
xlapp.WindowState = xlMaximized
xlapp.Visible = True
xlapp.ShowWindowsInTaskbar = True
xlapp.Workbooks.add

Suis une liste de traitements à effectuer sur la feuille excel. Or ma procédure est trop grande. J'essaie de la découper mais je n'ai aucune idée de la façon dont je peux récupérer cette même feuille dans mes sous-procédures (j'ai essayé plusieurs commandes _ GetObject, Active worksheet, activeworkbook...) mais l'objet xlapp n'est jamais reconnu (les autres non plus d'ailleurs)

Comment faut-il déclarer ses variables et les initialiser?
(S'il y a des paramètres je ne sais pas non plus comment les passer lorsque j'appelle ma sous-procédure à partir de ma form_load).

Merci pour votre aide
Amélie

2 réponses

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Si ta procédure est trop grande (et il faut vraiment qu'elle soit
gigantesque pour causer une erreur), il y a obligatoirement des moyens
de regrouper des actions dans des procédures annexes. Un exemple
ci-dessous.







Set xlapp = New

Dim xlapp As Excel.Application

Dim Workbook As Excel.Workbook

Screen.MousePointer = vbHourglass

Set xlapp = New Excel.Application

<strike>xlapp.DisplayAlerts = False

xlapp.WindowState = xlMaximized

xlapp.Visible = True

xlapp.ShowWindowsInTaskbar = True

</strike>FaireDesChoses xlapp

xlapp.Workbooks.add

[...]


Public Sub FaireDesChoses(ByRef e as Excel.Application)

e.DisplayAlerts = False

e.WindowState = xlMaximized

e.Visible = True

e.ShowWindowsInTaskbar = True

End Sub

Manu
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
8
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
19 septembre 2011

Salut,

Si t'enleve la premiere ligne : Set xlapp = New, ton code fonctionne correctement.
N'oublie pas d'ajouter la référence à ton projet "Microsoft Excel Object Library" (Menu : Projet / References), sinon comme dans ton cas, vb ne reconnait pas les objets que tu utilise.

Ensuite, tu as plusieurs façon d'exploiter excel
Un autre exemple :

Dim xlapp As Object
Set xlapp = CreateObject("Excel.Application")

' Supprime l'affichage des messages d'erreurs ou de confirmation de suppression
xlapp.DisplayAlerts = False


' Ajoute des feuilles
xlapp.Workbooks.Add

' Mise en page .. etc.....

' Sauvegarde
xlapp.ActiveWorkbook.SaveAs FileName:="C:\test.xls", FileFormat:=17, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

' Ferme ton objet excel
xlapp.Application.Quit

Si ça peut t'aider...

Nicolas