Bonjour Julie, le Forum
Tu ne nous dérange pas du tout. Par contre tu ne précises pas vraiment comment dimensionner ta recherche pour sommer tes différents dossiers.
Donc dans un premier temps il est pratquement imposssible de te répondre parfaitement pour ton cas précis, mais je peux te donner juste une généralité :
Imaginons que tu veuille avoir un message indiquant :
1) Le Nombre Total de Classeurs Ouverts (sans compter celui où se trouve le code)
2) Le Nombre Total de Feuilles de tous ces classeurs ouverts
3) Le Nombre Total de Cellules contenant une valeur numérique dans toutes ces feuilles
4) Le Grand Total de toutes ces valeurs numériques
Genre de macro un peu farfelue, dont on a absolument pas besoin lol
Enfin pour t'éclairer voici le code :
Option Explicit
Sub AddingAllCellsAllOpenWorkBook()
Dim WB As Workbook
Dim WS As Worksheet
Dim Plage As Range, Cell As Range
Dim WBCount As Byte, WSCount As Byte
Dim CellCount As Long
Dim Total As Double
For Each WB In Workbooks
If WB.Name <> ThisWorkbook.Name Then
WBCount = WBCount + 1
For Each WS In WB.Worksheets
WSCount = WSCount + 1
Set Plage = WS.UsedRange
For Each Cell In Plage
If IsNumeric(Cell.Value) Then
CellCount = CellCount + 1
Total = Total + Cell.Value
End If
Next
Next WS
End If
Next WB
MsgBox "Le total des valeurs numériques des " & WBCount & " Classeurs ouverts" & vbCrLf & _
"et des " & WSCount & " Feuilles et des " & CellCount & _
" Cellules contenant des valeurs numériques est de " & vbCrLf & Total
End Sub
Voilà, il est évident que si tu précises une Plage en lieu et place de UsedRange (Exemple Set Plage = WS.Range("A1:A10")) le code ira bien plus vite.
Ce n'est qu'une première approche avec les éléments en mains.
Bon Appétit
@+Thierry