Compte nbre de ligne parmi divers onglet

liquid361

XLDnaute Nouveau
Bonjour !
J'ai fait beaucoup de recherche et je ne trouve pas trop ce qui peut accroché dans mon cas. Je ne trouve pas de réponse sur le forum pour ma situation alors je vous remercie d'avance pour le petit coup de main !!

J'ai un classeur Excel avec plusieurs onglet(env. 12) Il y aura toujours un nombre différent d'onglet ayant pour nom LAPP#. Par exemple dans un classeur il peut y avoir 3onglets(LAPP1 et LAPP2 et LAPP3 + plein d'autre onglet avec d'autres nom)

Je voudrais être capable de compter le nombre de ligne dans tous les onglets qui commence par le texte "LAPP". Voici le code que j'ai conçû. Mais il me donne des nombre incohérent alors un coup de main serait apprécier.
Macro
________
Sub test3()
Dim Ws As Worksheet
Dim nombre As Integer
nombre = 0
k = Application.WorksheetFunction.Count(Range("C1:C65536"))
For Each Ws In ActiveWorkbook.Worksheets
If Left(Ws.Name, 4) = "LAPP" Then
nombre = nombre + k
End If
Next
ActiveCell.Value = nombre
End Sub
___________________

Merci à l'avance de votre aide !!! :D
 

skoobi

XLDnaute Barbatruc
Re : Compte nbre de ligne parmi divers onglet

Bonjour liquid361,

je te propose ce code.
Tu peux modifier à loisirs la liste de feuille et des plages.
Code:
Sub compte()
Dim listSht As Variant, listAddresse As Variant, cpte As Long, i As Long
[COLOR=Blue][B]listSht = Array("LAPP1", "LAPP2", "LAPP3", "LAPP4")
listAddresse = Array("A1:C10", "A1:C10", "A1:C10", "A1:C10")[/B][/COLOR]
For i = 0 To UBound(listSht)
  With Sheets(listSht(i))
  On Error Resume Next 'si pas de formules ou constantes
  cpte = cpte + .Range(listAddresse(i)).SpecialCells(xlCellTypeFormulas).Count
  cpte = cpte + .Range(listAddresse(i)).SpecialCells(xlCellTypeConstants).Count
  End With
  On Error GoTo 0
Next
MsgBox "Nbre de cellules total utilisées: " & cpte
End Sub
 

liquid361

XLDnaute Nouveau
Re : Compte nbre de ligne parmi divers onglet

Merci skoobi pour ton apport à cette discussion !!
C'est très apprécier. Ta solution VBA fonctionnerais très bien si le nombre d'onglet nommée «LAPP#» était fixe.

Mais comme je le disait dans l'énoncé, il y aura toujours un nombre différent d'onglet ayant pour nom LAPP#. Et c'est un peu laborieux de constamment aller modifier le code vba. Serait-ce simplet d'arranger ce détail ?

Sinon, j'utiliserai la solution de BoisGontier. J'ai réussi à la comprendre(en partie!!) et à la modifier à ma guise. J'ai cependant un questionnement par rapport à un point. Si j'ai des onglets dont le nom débute aussi par LAPP# mais qui ont une suite.

Nom d'onglet à comptabilisé : «LAPP#»
Nom d'onglet à ne pas comptabilisé : «LAPP# à créer»

Y a-t-il un moyen simple de modifier une des formules ?
J'ai essayer de jouer avec les critères de caractères mais aucun résultat n'a aboutit à quelque chose d'intéressant.

Merci encore pour votre aides !
Et j'ose espérer que cette discussion aidera peut d'autres débutant d'Excel et du monde passionnant du code VBA.
 

tototiti2008

XLDnaute Barbatruc
Re : Compte nbre de ligne parmi divers onglet

Bonjour liquid361, Bonjour BOISGONTIER, Bonjour Skoobi,

sinon sur la base du code original :

Code:
Sub test3()
Dim Ws As Worksheet
Dim nombre As Long
nombre = 0
For Each Ws In ActiveWorkbook.Worksheets
If Left(Ws.Name, 4) = "LAPP" Then
k = Application.WorksheetFunction.CountA(Ws.Range("C1:C65536"))
nombre = nombre + k
End If
Next
ActiveCell.Value = nombre
End Sub
 

Statistiques des forums

Discussions
312 447
Messages
2 088 494
Membres
103 871
dernier inscrit
julienleburton