Nouvelle feuille Excel en VB2005 [Résolu]

Signaler
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009
-
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
-
Bonjour, jai un projet add'ins excel en vb2005, dans le quel je crée un nouvelle feuille à l'aide de la commande "Globals.ThisWorkbook.Sheets.Add()" mais le probleme c'est que je n'arrive pas a interragir avec, dans le code.

Si quelqu'un a une idée qu'il leve au la main  merci

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!

15 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Essaye ceci :
Dim Sheet As Microsoft.Office.Interop.Excel.Worksheet = CType(Global.ThisWorkbook.Sheets.Add(), Microsoft.Office.Interop.Excel.Worksheet)







__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Salut,

La méthode (fonction?) Add ne te retourne pas l'instance de la feuille créer ?







__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

l'instance??? (je me perd tout le temps dans les termes)

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Je n'ai pas vsto pour tester, donc, je suis à l'aveugle.
Ne peux tu pas faire un truc du genre :
Dim Sheet as Excel.Sheet = Globals.ThisWorkbook.Sheets.Add()

Ou Sheet contiendra l'instance (la classe) qui représente la feuille créer (pour acceder à ses membres (méthodes, fonctions, propriétées)).






__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

Oups dsl pour le blanc.

Na il veut pas. Il me sort "Impossible d'effectuer un cast du proxy transparent en type 'Microsoft.Office.Interop.Excel.Sheets'." comme erreur

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Donc la fonction retourne bien quelquechose.
Donc, si tu met :
Dim Sheet as Microsoft.Office.Interop.Excel.Sheets = Globals.ThisWorkbook.Sheets.Add()
Ca devrai marcher.







__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

Na marche pas il me met toujours la même erreur

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

Trop fort ca foncttionne ^^ merci beaucoup

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Haaa, j'ai quand même fini par trouver ^^
Tout ca à l'aveugle sans pouvoir tester.




__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
"Je ne répondrais pas aux MP s’il s’agit de questions qui peuvent êtres posée dans le forum. Merci."


Ce n'est pas parsque je n'ai pas envis de répondres au question mais parsque j'en recoit beaucoup trop par jours et que beaucoup de ces question aurait une meilleur place dans le forum.

Comment je fais pour déplacer l'onglet de la feuille a suite des autres et non devant ?
Dans la fonction Add, je pense que tu as des paramétres pour definir sa position.

Comment je fais pour supprimer une rectangle (ajouter a l'aide de "Sheet.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeOval, L, T, W, H)")  ?
Soit tu peux ajouter un "name" en paramètre à la fonction AddShape.
Sinon cette fonction te retourne surment l'élement ajouter. Et tu aura un méthode Remove ou Delete.









__________
Kenji

(


Nouveau forum VBA/Office
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

oui il y a une option pour sa position. Mais c'est "Add([Before as object], [After as object], [Count as object], [Type as object]) as object" j'ai deja essayer "add(Feuil3)" "add(globals.feuil3)". Mais ca ne marche pas.

Et mettre un nom aux shapes c'est bon mais il n'y a pas de delete, remove, ou autre methode du genre.

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Messages postés
202
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
10 février 2009

Jai essayer "Add(After:=Globals.Feuil3)
" mais il me dis "Le type ne correspond pas. (Exception de HRESULT : 0x80020005 (DISP_E_TYPEMISMATCH))"

--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Nan désolé, mais la je ne peux pas.
Je ne dispose pas des ressources nécessaires.







__________
Kenji

(


Nouveau forum VBA/Office