Re: Extraire le nb de feuilles crées ? for "Pounet95"
24 réponses
J. Catelan
ReBonjour,
Je reprends contact au sujet de l'application de la fonction INFO("nbfich") :
- Bonne nouvelle, ça fonctionne......en partie,
- Mauvaise nouvelle, le résultat est erroné d'une constante (+21), toujours la même quel que
soit la longueur du chemin sur lequel le classeur est situé. En plus, pour info, je n'ai pas d'autre
fichier d'application *.xls ouvert.
D'autre part, le fichier PERSO.XLS semble ne pas être ouvert, il indique dans ses propriétés qu'il
est en [lecture seule] et [caché].
Je m'interroge sur l'origine de cette constante ?
Si vous avez une idée ?
Merci d'avance
J.C
----- Original Message -----
>> "Pounet95" <pasdepub@oneado.fr> a écrit dans le message de news:
>> eMDck5E8FHA.3804@TK2MSFTNGP12.phx.gbl...
>>> Bonsoir,
>>> la fonction INFO("nbfich") devrait faire l'affaire mais ..... attention si le fichier PERSO.XLS
>>> est ouvert et caché
>>> ou tout autre classeur d'ailleurs !
>>>
>>> --
>>> Pounet95
>>> on trouve tout ( ou presque ) http://www.excelabo.net/
>>> Conseillé :
>>> http://dj.joss.free.fr/netiquet.htm
>>> (charte, nétiquette, conseils, abréviations, souriettes...)
>>> http://www.excelabo.net/mpfe/connexion.php
>>> (connexion, conseils...)
>>>
>>> "J. Catelan" <j.catelan.maps@free.fr> a écrit dans le message de news:
>>> 43849bf3$0$652$626a14ce@news.free.fr...
>>>> Bonjour,
>>>> Dans un classeur *.xls je souhaiterais, à l'aide d'une formule, extraire le nombre de feuilles
>>>> crées (variable) qq soit la feuille ouverte.
>>>> Je sais extraire le nom d'une feuille, mais là je bute ! Si vous avez une idée ?
>>>> Merci d'avance
>>>> J. C
les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à proprement parler : ont-ils des feuilles ????
J'ai vérifié, il semble que pour [Analys32.xll] ce soit NON, par contre [Morefunc.xll] n'existe pas chez moi (?) A+ J.C
michdenis
Bonjour J.Catelan,
Un bout de code de "Chip Pearson"
Tu copies ceci dans le ThisWorkbook de ton classeur. Le nombre de feuille va s'afficher en cellule A1 de la feuille ayant le nom d'onglet "Feuil1" à adapter au besoin dans la procédure...
Enregistre ton classeur, et ré-ouvre. Maintenat fais l'ajout ou la suppression d'une feuille ...
Obtiens-tu le résultat escompté ?
Tu peux inhiber les lignes de code qui affiche le message si tu le désires !
'Dans le haut de ton module ThisWorkbook Private CurrSheets() As String '---------------------------- Private Sub Workbook_Open() Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count LoadArray End Sub '---------------------------- Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim N As Integer
If Me.Worksheets.Count > UBound(CurrSheets) Then LoadArray MsgBox "Sheet Added : " & Sh.Name Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count Exit Sub End If For N = 1 To UBound(CurrSheets) If SheetExists(CurrSheets(N)) = False Then MsgBox "Sheet deleted : " & CurrSheets(N) Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count LoadArray Exit Sub End If Next N End Sub '---------------------------- Private Sub LoadArray() Dim N As Integer With Me.Worksheets Erase CurrSheets ReDim CurrSheets(1 To .Count) For N = 1 To .Count CurrSheets(N) = .Item(N).Name Next N End With End Sub '---------------------------- Private Function SheetExists(SheetName As String) As Boolean On Error Resume Next SheetExists = CBool(Len(Me.Worksheets(SheetName).Name)) End Function '----------------------------
Salutations!
"J. Catelan" a écrit dans le message de news: 43943666$0$21695$ Bonjour à tous, J'étais sur le point de baisser les bras, mais l'autre fois en parlant des fichiers XLA, j'ai eu l'idée de les explorer avec [Drag and view] un petit utilitaire bien pratique. Sur 5 XLA présent dans VBA, 3 possédaient des feuilles, à savoir : - AcrobatPDFMaker (PDFMaker.xla) => 2 feuilles - atpvbaen.Xls (ATPVBAEN.XLA) => 3 feuilles - EuroTool (EUROTOOL.XLA) => 16 feuilles - funcres (FRUNCRES.XLA) => 0 feuille - Internet_Assistant (HTML. XLA) => 0 feuille Ce qui fait 21, l'origine de la constante qui me gâchait la vie. Vive le trie sélectif !! Conclusion : Cette fonction est complètement nulle et inutile à mon avis. Je reste sur ma faim, moi qui ne voulait compter que les feuilles d'un classeur ouvert et actualiser automatiquement lors d'un ajout ou d'une suppression d'une ou plusieurs feuilles. Si vous avez une idée en VBA pour résoudre mon pb je suis preneur, car moi je suis faible de ce côté là. Merci d'avance. J.C
"Modeste" a écrit dans le message de news: ejxm$7X%
Bonsour® Pounet95 gardes-toi bien d'affirmer que toutes les macros complémentaires ont une feuille !!!! eurotool pour sa part en à 16 !!!!! les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à proprement parler : ont-ils des feuilles ????
à titre de test : Sub infos_feuilles() On Error Resume Next With Worksheets("feuil1") .Rows(1).Font.Bold = True .Range("a1:d1").Value = _ Array("Macro-complémentaire", "Nom", "Installé", "Nbr feuille(s)") For i = 1 To AddIns.Count .Cells(i + 1, 1) = AddIns(i).Title .Cells(i + 1, 2) = AddIns(i).Name
.Cells(i + 1, 3) = AddIns(i).Installed If AddIns(i).Installed Then .Cells(i + 1, 4) = Workbooks(AddIns(i).Name).Sheets.Count End If Next .Cells(i + 2, 2) = "Total macro Compl" .Cells(i + 2, 4).FormulaR1C1 = "=SUM(R2C:R[-1]C)" .Cells(i + 4, 2) = "Ce classeur" .Cells(i + 4, 3) = ThisWorkbook.Name .Cells(i + 4, 4) = ThisWorkbook.Worksheets.Count .Cells(i + 5, 2) = "Fonction =INFO(''nbfich'')" .Cells(i + 5, 4).FormulaLocal = "=INFO(""nbfich"")" .Range("A:C").Columns.AutoFit End With End Sub
le mystere demeure ???? peut-etre encore un truc caché de EXCEL ;o))) essaie de nommer une feuille du nom "Historique' ou bien "History" http://j-walk.com/ss/excel/odd/odd14 la difference de nombre constatée vient éventuellement de là il y a même peut-etre d'autres noms ou feuilles non listable ??????
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonjour J.Catelan,
Un bout de code de "Chip Pearson"
Tu copies ceci dans le ThisWorkbook de ton classeur.
Le nombre de feuille va s'afficher en cellule A1 de la feuille ayant le nom d'onglet "Feuil1"
à adapter au besoin dans la procédure...
Enregistre ton classeur, et ré-ouvre.
Maintenat fais l'ajout ou la suppression d'une feuille ...
Obtiens-tu le résultat escompté ?
Tu peux inhiber les lignes de code qui affiche le message si tu le désires !
'Dans le haut de ton module ThisWorkbook
Private CurrSheets() As String
'----------------------------
Private Sub Workbook_Open()
Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count
LoadArray
End Sub
'----------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim N As Integer
If Me.Worksheets.Count > UBound(CurrSheets) Then
LoadArray
MsgBox "Sheet Added : " & Sh.Name
Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count
Exit Sub
End If
For N = 1 To UBound(CurrSheets)
If SheetExists(CurrSheets(N)) = False Then
MsgBox "Sheet deleted : " & CurrSheets(N)
Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count
LoadArray
Exit Sub
End If
Next N
End Sub
'----------------------------
Private Sub LoadArray()
Dim N As Integer
With Me.Worksheets
Erase CurrSheets
ReDim CurrSheets(1 To .Count)
For N = 1 To .Count
CurrSheets(N) = .Item(N).Name
Next N
End With
End Sub
'----------------------------
Private Function SheetExists(SheetName As String) As Boolean
On Error Resume Next
SheetExists = CBool(Len(Me.Worksheets(SheetName).Name))
End Function
'----------------------------
Salutations!
"J. Catelan" <j.catelan.maps@free.fr> a écrit dans le message de news: 43943666$0$21695$626a54ce@news.free.fr...
Bonjour à tous,
J'étais sur le point de baisser les bras, mais l'autre fois en parlant des fichiers XLA, j'ai eu
l'idée de les explorer avec [Drag and view] un petit utilitaire bien pratique.
Sur 5 XLA présent dans VBA, 3 possédaient des feuilles, à savoir :
- AcrobatPDFMaker (PDFMaker.xla) => 2 feuilles
- atpvbaen.Xls (ATPVBAEN.XLA) => 3 feuilles
- EuroTool (EUROTOOL.XLA) => 16 feuilles
- funcres (FRUNCRES.XLA) => 0 feuille
- Internet_Assistant (HTML. XLA) => 0 feuille
Ce qui fait 21, l'origine de la constante qui me gâchait la vie. Vive le trie sélectif !!
Conclusion :
Cette fonction est complètement nulle et inutile à mon avis.
Je reste sur ma faim, moi qui ne voulait compter que les feuilles d'un classeur ouvert et actualiser
automatiquement lors d'un ajout ou d'une suppression d'une ou plusieurs feuilles.
Si vous avez une idée en VBA pour résoudre mon pb je suis preneur, car moi je suis faible de ce côté
là.
Merci d'avance.
J.C
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
ejxm$7X%23FHA.1032@TK2MSFTNGP11.phx.gbl...
Bonsour® Pounet95
gardes-toi bien d'affirmer que toutes les macros complémentaires ont une feuille !!!!
eurotool pour sa part en à 16 !!!!!
les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à
proprement parler : ont-ils des feuilles ????
à titre de test :
Sub infos_feuilles()
On Error Resume Next
With Worksheets("feuil1")
.Rows(1).Font.Bold = True
.Range("a1:d1").Value = _
Array("Macro-complémentaire", "Nom", "Installé", "Nbr feuille(s)")
For i = 1 To AddIns.Count
.Cells(i + 1, 1) = AddIns(i).Title
.Cells(i + 1, 2) = AddIns(i).Name
.Cells(i + 1, 3) = AddIns(i).Installed
If AddIns(i).Installed Then
.Cells(i + 1, 4) = Workbooks(AddIns(i).Name).Sheets.Count
End If
Next
.Cells(i + 2, 2) = "Total macro Compl"
.Cells(i + 2, 4).FormulaR1C1 = "=SUM(R2C:R[-1]C)"
.Cells(i + 4, 2) = "Ce classeur"
.Cells(i + 4, 3) = ThisWorkbook.Name
.Cells(i + 4, 4) = ThisWorkbook.Worksheets.Count
.Cells(i + 5, 2) = "Fonction =INFO(''nbfich'')"
.Cells(i + 5, 4).FormulaLocal = "=INFO(""nbfich"")"
.Range("A:C").Columns.AutoFit
End With
End Sub
le mystere demeure ????
peut-etre encore un truc caché de EXCEL
;o)))
essaie de nommer une feuille du nom "Historique' ou bien "History"
http://j-walk.com/ss/excel/odd/odd14
la difference de nombre constatée vient éventuellement de là
il y a même peut-etre d'autres noms ou feuilles non listable ??????
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com
http://faqword.free.fr
Tu copies ceci dans le ThisWorkbook de ton classeur. Le nombre de feuille va s'afficher en cellule A1 de la feuille ayant le nom d'onglet "Feuil1" à adapter au besoin dans la procédure...
Enregistre ton classeur, et ré-ouvre. Maintenat fais l'ajout ou la suppression d'une feuille ...
Obtiens-tu le résultat escompté ?
Tu peux inhiber les lignes de code qui affiche le message si tu le désires !
'Dans le haut de ton module ThisWorkbook Private CurrSheets() As String '---------------------------- Private Sub Workbook_Open() Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count LoadArray End Sub '---------------------------- Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim N As Integer
If Me.Worksheets.Count > UBound(CurrSheets) Then LoadArray MsgBox "Sheet Added : " & Sh.Name Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count Exit Sub End If For N = 1 To UBound(CurrSheets) If SheetExists(CurrSheets(N)) = False Then MsgBox "Sheet deleted : " & CurrSheets(N) Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count LoadArray Exit Sub End If Next N End Sub '---------------------------- Private Sub LoadArray() Dim N As Integer With Me.Worksheets Erase CurrSheets ReDim CurrSheets(1 To .Count) For N = 1 To .Count CurrSheets(N) = .Item(N).Name Next N End With End Sub '---------------------------- Private Function SheetExists(SheetName As String) As Boolean On Error Resume Next SheetExists = CBool(Len(Me.Worksheets(SheetName).Name)) End Function '----------------------------
Salutations!
"J. Catelan" a écrit dans le message de news: 43943666$0$21695$ Bonjour à tous, J'étais sur le point de baisser les bras, mais l'autre fois en parlant des fichiers XLA, j'ai eu l'idée de les explorer avec [Drag and view] un petit utilitaire bien pratique. Sur 5 XLA présent dans VBA, 3 possédaient des feuilles, à savoir : - AcrobatPDFMaker (PDFMaker.xla) => 2 feuilles - atpvbaen.Xls (ATPVBAEN.XLA) => 3 feuilles - EuroTool (EUROTOOL.XLA) => 16 feuilles - funcres (FRUNCRES.XLA) => 0 feuille - Internet_Assistant (HTML. XLA) => 0 feuille Ce qui fait 21, l'origine de la constante qui me gâchait la vie. Vive le trie sélectif !! Conclusion : Cette fonction est complètement nulle et inutile à mon avis. Je reste sur ma faim, moi qui ne voulait compter que les feuilles d'un classeur ouvert et actualiser automatiquement lors d'un ajout ou d'une suppression d'une ou plusieurs feuilles. Si vous avez une idée en VBA pour résoudre mon pb je suis preneur, car moi je suis faible de ce côté là. Merci d'avance. J.C
"Modeste" a écrit dans le message de news: ejxm$7X%
Bonsour® Pounet95 gardes-toi bien d'affirmer que toutes les macros complémentaires ont une feuille !!!! eurotool pour sa part en à 16 !!!!! les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à proprement parler : ont-ils des feuilles ????
à titre de test : Sub infos_feuilles() On Error Resume Next With Worksheets("feuil1") .Rows(1).Font.Bold = True .Range("a1:d1").Value = _ Array("Macro-complémentaire", "Nom", "Installé", "Nbr feuille(s)") For i = 1 To AddIns.Count .Cells(i + 1, 1) = AddIns(i).Title .Cells(i + 1, 2) = AddIns(i).Name
.Cells(i + 1, 3) = AddIns(i).Installed If AddIns(i).Installed Then .Cells(i + 1, 4) = Workbooks(AddIns(i).Name).Sheets.Count End If Next .Cells(i + 2, 2) = "Total macro Compl" .Cells(i + 2, 4).FormulaR1C1 = "=SUM(R2C:R[-1]C)" .Cells(i + 4, 2) = "Ce classeur" .Cells(i + 4, 3) = ThisWorkbook.Name .Cells(i + 4, 4) = ThisWorkbook.Worksheets.Count .Cells(i + 5, 2) = "Fonction =INFO(''nbfich'')" .Cells(i + 5, 4).FormulaLocal = "=INFO(""nbfich"")" .Range("A:C").Columns.AutoFit End With End Sub
le mystere demeure ???? peut-etre encore un truc caché de EXCEL ;o))) essaie de nommer une feuille du nom "Historique' ou bien "History" http://j-walk.com/ss/excel/odd/odd14 la difference de nombre constatée vient éventuellement de là il y a même peut-etre d'autres noms ou feuilles non listable ??????
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Modeste
Bonsour® J.catelan
les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à proprement parler : ont-ils des feuilles ????
les infos que je connais : http://xcell05.free.fr/pages/prog/api-c.htm
par contre [Morefunc.xll] n'existe pas chez moi (?) http://xcell05.free.fr/pages/telecharge/index.html#Morefunc
;o))) c'est le site du père fondateur de ce forum !!!! http://xcell05.free.fr
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonsour® J.catelan
les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne
sont pas des classeurs à proprement parler : ont-ils des feuilles ????
les infos que je connais :
http://xcell05.free.fr/pages/prog/api-c.htm
par contre [Morefunc.xll] n'existe pas chez moi (?)
http://xcell05.free.fr/pages/telecharge/index.html#Morefunc
;o)))
c'est le site du père fondateur de ce forum !!!!
http://xcell05.free.fr
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à proprement parler : ont-ils des feuilles ????
les infos que je connais : http://xcell05.free.fr/pages/prog/api-c.htm
par contre [Morefunc.xll] n'existe pas chez moi (?) http://xcell05.free.fr/pages/telecharge/index.html#Morefunc
;o))) c'est le site du père fondateur de ce forum !!!! http://xcell05.free.fr
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
J. Catelan
Bonjour, Merci pour le bout de code, çà marche. Dommage que MS n'ai pas eu l'idée de créer une fonction intelligente pour ce pb ! C'est comme l'insertion d'une nouvelle feuille, pourquoi ne pas donner le choix de la placer avant ou après de la dernière crée (lecture de gauche à droite ou inversement) ? A moins que j'ignore l'astuce ? Salutations J. C
"michdenis" a écrit dans le message de news: e1gyBwa%
Bonjour J.Catelan,
Un bout de code de "Chip Pearson"
Tu copies ceci dans le ThisWorkbook de ton classeur. Le nombre de feuille va s'afficher en cellule A1 de la feuille ayant le nom d'onglet "Feuil1" à adapter au besoin dans la procédure...
Enregistre ton classeur, et ré-ouvre. Maintenat fais l'ajout ou la suppression d'une feuille ...
Obtiens-tu le résultat escompté ?
Tu peux inhiber les lignes de code qui affiche le message si tu le désires !
'Dans le haut de ton module ThisWorkbook Private CurrSheets() As String '---------------------------- Private Sub Workbook_Open() Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count LoadArray End Sub '---------------------------- Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim N As Integer
If Me.Worksheets.Count > UBound(CurrSheets) Then LoadArray MsgBox "Sheet Added : " & Sh.Name Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count Exit Sub End If For N = 1 To UBound(CurrSheets) If SheetExists(CurrSheets(N)) = False Then MsgBox "Sheet deleted : " & CurrSheets(N) Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count LoadArray Exit Sub End If Next N End Sub '---------------------------- Private Sub LoadArray() Dim N As Integer With Me.Worksheets Erase CurrSheets ReDim CurrSheets(1 To .Count) For N = 1 To .Count CurrSheets(N) = .Item(N).Name Next N End With End Sub '---------------------------- Private Function SheetExists(SheetName As String) As Boolean On Error Resume Next SheetExists = CBool(Len(Me.Worksheets(SheetName).Name)) End Function '----------------------------
Salutations!
"J. Catelan" a écrit dans le message de news: 43943666$0$21695$ Bonjour à tous, J'étais sur le point de baisser les bras, mais l'autre fois en parlant des fichiers XLA, j'ai eu l'idée de les explorer avec [Drag and view] un petit utilitaire bien pratique. Sur 5 XLA présent dans VBA, 3 possédaient des feuilles, à savoir : - AcrobatPDFMaker (PDFMaker.xla) => 2 feuilles - atpvbaen.Xls (ATPVBAEN.XLA) => 3 feuilles - EuroTool (EUROTOOL.XLA) => 16 feuilles - funcres (FRUNCRES.XLA) => 0 feuille - Internet_Assistant (HTML. XLA) => 0 feuille Ce qui fait 21, l'origine de la constante qui me gâchait la vie. Vive le trie sélectif !! Conclusion : Cette fonction est complètement nulle et inutile à mon avis. Je reste sur ma faim, moi qui ne voulait compter que les feuilles d'un classeur ouvert et actualiser automatiquement lors d'un ajout ou d'une suppression d'une ou plusieurs feuilles. Si vous avez une idée en VBA pour résoudre mon pb je suis preneur, car moi je suis faible de ce côté là. Merci d'avance. J.C
"Modeste" a écrit dans le message de news: ejxm$7X%
Bonsour® Pounet95 gardes-toi bien d'affirmer que toutes les macros complémentaires ont une feuille !!!! eurotool pour sa part en à 16 !!!!! les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à proprement parler : ont-ils des feuilles ????
à titre de test : Sub infos_feuilles() On Error Resume Next With Worksheets("feuil1") .Rows(1).Font.Bold = True .Range("a1:d1").Value = _ Array("Macro-complémentaire", "Nom", "Installé", "Nbr feuille(s)") For i = 1 To AddIns.Count .Cells(i + 1, 1) = AddIns(i).Title .Cells(i + 1, 2) = AddIns(i).Name
.Cells(i + 1, 3) = AddIns(i).Installed If AddIns(i).Installed Then .Cells(i + 1, 4) = Workbooks(AddIns(i).Name).Sheets.Count End If Next .Cells(i + 2, 2) = "Total macro Compl" .Cells(i + 2, 4).FormulaR1C1 = "=SUM(R2C:R[-1]C)" .Cells(i + 4, 2) = "Ce classeur" .Cells(i + 4, 3) = ThisWorkbook.Name .Cells(i + 4, 4) = ThisWorkbook.Worksheets.Count .Cells(i + 5, 2) = "Fonction =INFO(''nbfich'')" .Cells(i + 5, 4).FormulaLocal = "=INFO(""nbfich"")" .Range("A:C").Columns.AutoFit End With End Sub
le mystere demeure ???? peut-etre encore un truc caché de EXCEL ;o))) essaie de nommer une feuille du nom "Historique' ou bien "History" http://j-walk.com/ss/excel/odd/odd14 la difference de nombre constatée vient éventuellement de là il y a même peut-etre d'autres noms ou feuilles non listable ??????
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonjour,
Merci pour le bout de code, çà marche.
Dommage que MS n'ai pas eu l'idée de créer une fonction intelligente pour ce pb !
C'est comme l'insertion d'une nouvelle feuille, pourquoi ne pas donner le choix de la placer avant
ou après de la dernière crée (lecture de gauche à droite ou inversement) ? A moins que j'ignore
l'astuce ?
Salutations
J. C
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e1gyBwa%23FHA.1248@TK2MSFTNGP14.phx.gbl...
Bonjour J.Catelan,
Un bout de code de "Chip Pearson"
Tu copies ceci dans le ThisWorkbook de ton classeur.
Le nombre de feuille va s'afficher en cellule A1 de la feuille ayant le nom d'onglet "Feuil1"
à adapter au besoin dans la procédure...
Enregistre ton classeur, et ré-ouvre.
Maintenat fais l'ajout ou la suppression d'une feuille ...
Obtiens-tu le résultat escompté ?
Tu peux inhiber les lignes de code qui affiche le message si tu le désires !
'Dans le haut de ton module ThisWorkbook
Private CurrSheets() As String
'----------------------------
Private Sub Workbook_Open()
Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count
LoadArray
End Sub
'----------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim N As Integer
If Me.Worksheets.Count > UBound(CurrSheets) Then
LoadArray
MsgBox "Sheet Added : " & Sh.Name
Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count
Exit Sub
End If
For N = 1 To UBound(CurrSheets)
If SheetExists(CurrSheets(N)) = False Then
MsgBox "Sheet deleted : " & CurrSheets(N)
Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count
LoadArray
Exit Sub
End If
Next N
End Sub
'----------------------------
Private Sub LoadArray()
Dim N As Integer
With Me.Worksheets
Erase CurrSheets
ReDim CurrSheets(1 To .Count)
For N = 1 To .Count
CurrSheets(N) = .Item(N).Name
Next N
End With
End Sub
'----------------------------
Private Function SheetExists(SheetName As String) As Boolean
On Error Resume Next
SheetExists = CBool(Len(Me.Worksheets(SheetName).Name))
End Function
'----------------------------
Salutations!
"J. Catelan" <j.catelan.maps@free.fr> a écrit dans le message de news:
43943666$0$21695$626a54ce@news.free.fr...
Bonjour à tous,
J'étais sur le point de baisser les bras, mais l'autre fois en parlant des fichiers XLA, j'ai eu
l'idée de les explorer avec [Drag and view] un petit utilitaire bien pratique.
Sur 5 XLA présent dans VBA, 3 possédaient des feuilles, à savoir :
- AcrobatPDFMaker (PDFMaker.xla) => 2 feuilles
- atpvbaen.Xls (ATPVBAEN.XLA) => 3 feuilles
- EuroTool (EUROTOOL.XLA) => 16 feuilles
- funcres (FRUNCRES.XLA) => 0 feuille
- Internet_Assistant (HTML. XLA) => 0 feuille
Ce qui fait 21, l'origine de la constante qui me gâchait la vie. Vive le trie sélectif !!
Conclusion :
Cette fonction est complètement nulle et inutile à mon avis.
Je reste sur ma faim, moi qui ne voulait compter que les feuilles d'un classeur ouvert et
actualiser
automatiquement lors d'un ajout ou d'une suppression d'une ou plusieurs feuilles.
Si vous avez une idée en VBA pour résoudre mon pb je suis preneur, car moi je suis faible de ce
côté
là.
Merci d'avance.
J.C
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
ejxm$7X%23FHA.1032@TK2MSFTNGP11.phx.gbl...
Bonsour® Pounet95
gardes-toi bien d'affirmer que toutes les macros complémentaires ont une feuille !!!!
eurotool pour sa part en à 16 !!!!!
les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à
proprement parler : ont-ils des feuilles ????
à titre de test :
Sub infos_feuilles()
On Error Resume Next
With Worksheets("feuil1")
.Rows(1).Font.Bold = True
.Range("a1:d1").Value = _
Array("Macro-complémentaire", "Nom", "Installé", "Nbr feuille(s)")
For i = 1 To AddIns.Count
.Cells(i + 1, 1) = AddIns(i).Title
.Cells(i + 1, 2) = AddIns(i).Name
.Cells(i + 1, 3) = AddIns(i).Installed
If AddIns(i).Installed Then
.Cells(i + 1, 4) = Workbooks(AddIns(i).Name).Sheets.Count
End If
Next
.Cells(i + 2, 2) = "Total macro Compl"
.Cells(i + 2, 4).FormulaR1C1 = "=SUM(R2C:R[-1]C)"
.Cells(i + 4, 2) = "Ce classeur"
.Cells(i + 4, 3) = ThisWorkbook.Name
.Cells(i + 4, 4) = ThisWorkbook.Worksheets.Count
.Cells(i + 5, 2) = "Fonction =INFO(''nbfich'')"
.Cells(i + 5, 4).FormulaLocal = "=INFO(""nbfich"")"
.Range("A:C").Columns.AutoFit
End With
End Sub
le mystere demeure ????
peut-etre encore un truc caché de EXCEL
;o)))
essaie de nommer une feuille du nom "Historique' ou bien "History"
http://j-walk.com/ss/excel/odd/odd14
la difference de nombre constatée vient éventuellement de là
il y a même peut-etre d'autres noms ou feuilles non listable ??????
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com
http://faqword.free.fr
Bonjour, Merci pour le bout de code, çà marche. Dommage que MS n'ai pas eu l'idée de créer une fonction intelligente pour ce pb ! C'est comme l'insertion d'une nouvelle feuille, pourquoi ne pas donner le choix de la placer avant ou après de la dernière crée (lecture de gauche à droite ou inversement) ? A moins que j'ignore l'astuce ? Salutations J. C
"michdenis" a écrit dans le message de news: e1gyBwa%
Bonjour J.Catelan,
Un bout de code de "Chip Pearson"
Tu copies ceci dans le ThisWorkbook de ton classeur. Le nombre de feuille va s'afficher en cellule A1 de la feuille ayant le nom d'onglet "Feuil1" à adapter au besoin dans la procédure...
Enregistre ton classeur, et ré-ouvre. Maintenat fais l'ajout ou la suppression d'une feuille ...
Obtiens-tu le résultat escompté ?
Tu peux inhiber les lignes de code qui affiche le message si tu le désires !
'Dans le haut de ton module ThisWorkbook Private CurrSheets() As String '---------------------------- Private Sub Workbook_Open() Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count LoadArray End Sub '---------------------------- Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim N As Integer
If Me.Worksheets.Count > UBound(CurrSheets) Then LoadArray MsgBox "Sheet Added : " & Sh.Name Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count Exit Sub End If For N = 1 To UBound(CurrSheets) If SheetExists(CurrSheets(N)) = False Then MsgBox "Sheet deleted : " & CurrSheets(N) Worksheets("Feuil1").Range("A1") = ThisWorkbook.Sheets.Count LoadArray Exit Sub End If Next N End Sub '---------------------------- Private Sub LoadArray() Dim N As Integer With Me.Worksheets Erase CurrSheets ReDim CurrSheets(1 To .Count) For N = 1 To .Count CurrSheets(N) = .Item(N).Name Next N End With End Sub '---------------------------- Private Function SheetExists(SheetName As String) As Boolean On Error Resume Next SheetExists = CBool(Len(Me.Worksheets(SheetName).Name)) End Function '----------------------------
Salutations!
"J. Catelan" a écrit dans le message de news: 43943666$0$21695$ Bonjour à tous, J'étais sur le point de baisser les bras, mais l'autre fois en parlant des fichiers XLA, j'ai eu l'idée de les explorer avec [Drag and view] un petit utilitaire bien pratique. Sur 5 XLA présent dans VBA, 3 possédaient des feuilles, à savoir : - AcrobatPDFMaker (PDFMaker.xla) => 2 feuilles - atpvbaen.Xls (ATPVBAEN.XLA) => 3 feuilles - EuroTool (EUROTOOL.XLA) => 16 feuilles - funcres (FRUNCRES.XLA) => 0 feuille - Internet_Assistant (HTML. XLA) => 0 feuille Ce qui fait 21, l'origine de la constante qui me gâchait la vie. Vive le trie sélectif !! Conclusion : Cette fonction est complètement nulle et inutile à mon avis. Je reste sur ma faim, moi qui ne voulait compter que les feuilles d'un classeur ouvert et actualiser automatiquement lors d'un ajout ou d'une suppression d'une ou plusieurs feuilles. Si vous avez une idée en VBA pour résoudre mon pb je suis preneur, car moi je suis faible de ce côté là. Merci d'avance. J.C
"Modeste" a écrit dans le message de news: ejxm$7X%
Bonsour® Pounet95 gardes-toi bien d'affirmer que toutes les macros complémentaires ont une feuille !!!! eurotool pour sa part en à 16 !!!!! les macros complémentaires de type XLL (Analys32.xll, Morefunc.xll) ne sont pas des classeurs à proprement parler : ont-ils des feuilles ????
à titre de test : Sub infos_feuilles() On Error Resume Next With Worksheets("feuil1") .Rows(1).Font.Bold = True .Range("a1:d1").Value = _ Array("Macro-complémentaire", "Nom", "Installé", "Nbr feuille(s)") For i = 1 To AddIns.Count .Cells(i + 1, 1) = AddIns(i).Title .Cells(i + 1, 2) = AddIns(i).Name
.Cells(i + 1, 3) = AddIns(i).Installed If AddIns(i).Installed Then .Cells(i + 1, 4) = Workbooks(AddIns(i).Name).Sheets.Count End If Next .Cells(i + 2, 2) = "Total macro Compl" .Cells(i + 2, 4).FormulaR1C1 = "=SUM(R2C:R[-1]C)" .Cells(i + 4, 2) = "Ce classeur" .Cells(i + 4, 3) = ThisWorkbook.Name .Cells(i + 4, 4) = ThisWorkbook.Worksheets.Count .Cells(i + 5, 2) = "Fonction =INFO(''nbfich'')" .Cells(i + 5, 4).FormulaLocal = "=INFO(""nbfich"")" .Range("A:C").Columns.AutoFit End With End Sub
le mystere demeure ???? peut-etre encore un truc caché de EXCEL ;o))) essaie de nommer une feuille du nom "Historique' ou bien "History" http://j-walk.com/ss/excel/odd/odd14 la difference de nombre constatée vient éventuellement de là il y a même peut-etre d'autres noms ou feuilles non listable ??????
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr