Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Re: Extraire le nb de feuilles crées ? for "Pounet95"

24 réponses
Avatar
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

4 réponses

1 2 3
Avatar
J. Catelan
Bonjour Modeste,
Pour cette question :
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


Avatar
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




Avatar
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



Avatar
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









1 2 3