Excel et l'insertion d'une feuille

cs_titeuf44 Messages postés 44 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 28 mars 2008 - 5 sept. 2005 à 16:13
cs_titeuf44 Messages postés 44 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 28 mars 2008 - 7 sept. 2005 à 19:14
Bonjour,
je ne suis pas trés doué avec VB, mais je cherche à m'améliorer et pour cela, vous serait il possible de me donner une solution pour ajouter une feuille dans mon fichier excel et de la renommer.
Aprés avoir consulter codes et forums, rien n'a fonctionné.

Voici le code que j'ai. C'est simple un fichier excel un bouton quand je click j'ouvre j'ajoute je renomme et je referme.

Dim n As Integer
Dim objXL As Object ' déclaration d'un objet
Set objXL = CreateObject("Excel.Application") ' Création de l'objet
objXL.Visible = False
' Ouverture du fichier Excel
objXL.Workbooks.Open FileName:="D:\temp\temp.xls"
' Création d'une nouvelle feuille
Sheets.Add

' renommer une feuille


' Fermeture excel
objXL.DisplayAlerts = False
objXL.Workbooks.Close
objXL.Application.Quit

Merci de votre aide !!

###TITEUF###

11 réponses

Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
5 sept. 2005 à 18:14
Salut,


Tu peux essayer ce code ... je sais pas si j'ai tout pris en compte...






Dim objXL As Excel.Application


Set objXL = New Excel.Application



objXL.Visible = False

objXL.Workbooks.Open App.Path & "\Classeur1.xls" 'charger dans le rep courrant

Call objXL.Workbooks.Add



' Ajouter une feuille

Call objXL.ActiveWorkbook.Sheets.Add



' Renommer la derniere feuille

objXL.ActiveWorkbook.Sheets(objXL.Sheets.Count).Name = "Nouveau NOM"





' Sauver et quitter

objXL.DisplayAlerts = False

objXL.ActiveWorkbook.Save

objXL.Workbooks.Close

objXL.Application.Quit





' Libération de la mémoire


Set objXL = Nothing























Si tu as besoin tu peux toujours consulter cette liste ou voir un tutorialrapide

++

Zlub
0
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
6 sept. 2005 à 12:55
Salut,

Je crois que ceci suffi.

objXL.Workbooks.Add("nom de la feuille")

Sacha
\!/
00
!
0
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
6 sept. 2005 à 12:56
Oops

objXL.Workbooks("le nom du book").Sheets.Add("nom de la feuille")

désolé
Sacha

\!/
00
!
0
cs_titeuf44 Messages postés 44 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 28 mars 2008
7 sept. 2005 à 10:30
Merci de ta réponse, mais qu'appelles tu "book" dans excel (le classeur ok) mais comment le nommer ?

###TITEUF###
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
7 sept. 2005 à 11:03
Hi titeuf44,

Votre question était :
vous serait il possible de me donner une solution pour ajouter une feuille dans mon fichier excel et de la renommer.

Pour moi la question est clair tu as un book (classeur) EXISTANT, et tu veux y ajouter une nouvelle Sheet (feuille) et la renomer.
la méthode : objXL.Workbooks("le nom du book".Sheets.Add quand tu ajoutes une feuille elle est toujours active
objXL.Workbooks.ActiveSheet.Name = "le nom du de la feuille"
ceci apparement ne fonctione pas (j'en étais pourtant sur) désolé.
objXL.Workbooks("le nom du book").Sheets.Add("nom de la feuille")

Tu ne peux pas renomer un classeur(ou fichier) tu peux faire un SaveAs de celui-ci avec cette méthode
Workbooks("le nom du book").SaveAs([Filename], [FileFormat], [Password], [WriteResPassword], [ReadOnlyRecommended], [CreateBackup], [AccessMode As XlSaveAsAccessMode = xlNoChange], [ConflictResolution], [AddToMru], [TextCodepage], [TextVisualLayout], [Local]) avec toutes les options normalement disponible même en VB6.
sans oublier que le (filename) doit comporter le chemin c-a-d "C:\mon folder\mon_book.xls" en format string bien évidement.

Sacha

\!/
00
!
0
cs_titeuf44 Messages postés 44 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 28 mars 2008
7 sept. 2005 à 13:47
Coucou !!
J'ia effectivement testé ce que tu me proposes, mais impossible d'ajouter une feuille à mon classeur
Le message d'erreur est la méthode Add de la classe sheets a échoué
runtime error 1004

Si quelqu'un a une idée .........;

Merci.
Voici le bout de code que j'ai essayé

Dim n As Integer
Dim objXL As Object ' déclaration d'un objet
Set objXL = CreateObject("Excel.Application") ' Création de l'objet
objXL.Visible = False
' Ouverture de la feuille Excel
objXL.Workbooks.Open FileName:="D:\base.xls"
' Création d'une nouvelle feuille
objXL.Workbooks("base.xls").Sheets.Add ("test")

' Fermeture excel
objXL.DisplayAlerts = False
objXL.Workbooks.Close
objXL.Application.Quit

###TITEUF###
0
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
7 sept. 2005 à 14:17
Voici

Dim n As Integer
Dim objXL As Object ' déclaration d'un objet
Set objXL = CreateObject("Excel.Application") ' Création de l'objet
objXL.Visible = False
' Ouverture de la feuille Excel
objXL.Workbooks.Open FileName:="D:\base.xls"
' Création d'une nouvelle feuille
objXL.Workbooks("base.xls").Sheets.Add
objXL.Workbooks("base.xls).ActiveSheet.Name ='test"

Sacha

\!/
00
!
0
cs_titeuf44 Messages postés 44 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 28 mars 2008
7 sept. 2005 à 14:27
Désolé mais cela ne fonctionne pas !!

###TITEUF###
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
7 sept. 2005 à 14:33
Salut titeuf44,





et ceci ça ne fonctione pas ?





<hr size="2" width="100%">
Dim objXL As Excel.Application

Set objXL = New Excel.Application



objXL.Visible = False

objXL.Workbooks.Open "D:\base.xls" 'charger dans le rep courrant

Call objXL.Workbooks.Add



' Ajouter une feuille

Call objXL.ActiveWorkbook.Sheets.Add



' Renommer la derniere feuille

objXL.ActiveWorkbook.Sheets(objXL.Sheets.Count).Name = "test"



<hr size="2" width="100%">

++

Zlub
0
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
7 sept. 2005 à 14:49
Damned,

Bon ben pas mieux théoriquement les deux méthodes devraient fonctionnés.
Peut être >>
Sheets.Add Before:=Worksheets(Worksheets.Count) , mais dans l'aide il parle d'optional donc pas nécéssaire depuis VBA, maitenant enVB6 ???

Sacha
\!/
00
!
0
cs_titeuf44 Messages postés 44 Date d'inscription lundi 24 novembre 2003 Statut Membre Dernière intervention 28 mars 2008
7 sept. 2005 à 19:14
Désolé mais rien ne fonctionne !
Merci de ton aide.

A+

###TITEUF###
0
Rejoignez-nous