Sommer sur des dossiers différents

  • Initiateur de la discussion Julie
  • Date de début
J

Julie

Guest
Bonjour à tous !
Excusez moi de vous deranger mais je trvaille en ce moment sur un e macro et je me retrouve confrontée à un obstacle que je n'arrive pas à surmonter.
En fait je voudrais sommer les valeurs de cellules qui ne se trouvent pas dans le meme dossier. De plus il faut que la macro puisse definir le nombre d'eléménts car la quantité de feuilles où se trouvent ces cellules peut changer.(pour ceci je pense à une boucle do while ou un if mais je ne suis pas sure)
En vous remerciant d'avance, bonne journée !
 
@

@+Thierry

Guest
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
&nbsp;&nbsp;&nbsp;&nbsp;If WB.Name <> ThisWorkbook.Name Then
&nbsp;&nbsp;&nbsp;&nbsp;WBCount = WBCount + 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For Each WS In WB.Worksheets
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WSCount = WSCount + 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set Plage = WS.UsedRange
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For Each Cell In Plage
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If IsNumeric(Cell.Value) Then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CellCount = CellCount + 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total = Total + Cell.Value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next WS
&nbsp;&nbsp;&nbsp;&nbsp;End If
&nbsp;&nbsp;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
 
J

Julie

Guest
Merci pour votre reponse si rapide !

et pour info j'ai effectivement bien mangé merci !

Je me suis surement mal exprimée, en fait dans ma macro je dois sommer différentes valeurs qui se trouvent chacunes dans des dossiers différents, la difficulté de la chose reside dans le fait que les dossiers où je dois chercher ces valeurs ne font pas partie du dossier Excel sur lequel mam macro agit. Aujourd'hui, elle va chercher des valeurs qu'elle peut ensuite exploiter au moyen simple du type : Feuille1_agents.Cells (x,Y) ect...
Mon ennui est que je souhaiterai qu'elle somme des cellules n'appartenant pas à une même feuille.
Je précise que je n'ai pas créé la macro sur laquelle je travaille et donc, je ne sais pas comment atribuer le dossier dans lequel la macro va aller chercher. Suis je claire ? Je suis désolée si non, je n'arrive pas à l'exprimer mieux... Il est vrai que je ne trvaille que depuis 1 semaine sur ce type de macro d'où peut etre le brouillon de mes explications. Si vous ne m'avez toujours pas comprise ne vous embetez pas. Je chercherai à faire travailler ma petite tête un peu mieux ! lol
Je vous remercie en tout cas encore pour votre patience t votre disponibilté !
A bientôt peut-être !
 
@

@+Thierry

Guest
Re Bonjour Julie

Non c'est bien ce que j'avais compris, c'est maintenant que j'ai l'impression que tu ne me comprends pas.

Le Code que je t'ai fourni va bien additionner des valeurs depuis des Classeurs Distants (dans des dossiers différents comme tu dis)

Maintenant ce qu'il manque c'est plus de précision sur ces classeurs...

On connait leur Nom ?
Sont ils ouverts ? (Faut-il les ouvrir ?)

Pour les Feuilles c'est le même topo, qui sont elles ? on connait leur nom ? doit on prendre en considération toutes les feuilles quelle qu'elles soient ?

Pour les plages de cellules ensuite, il faut savoir si ce sera toujours la mêmes sur toutes les Feuilles de Tous les Classeurs (Sous entendu les Feuilles sont-elles bien structurées ?)

Sans tout ceci, on ne pourra guerre avancer...

Bonne Digestion (moi je file déjeuner maintenant)
@+Thierry
 
J

Julie

Guest
Un grand merci à vous
J'ai en partie grace à vous et grace à une coequipière trouvé la solution à mon problème et ma macro marche !!!
Je suis trop contente !
soulagée et tout ce qui s'ensuit !
je vous souhaite une bonne continuation et peut-être à bientôt si je rencontre de nouveaux problèmes durant mon stage !
Bonne soirée !
 

Discussions similaires

Statistiques des forums

Discussions
314 207
Messages
2 107 274
Membres
109 791
dernier inscrit
frederic.perrier@hotmail.