Sommer dynamiquement des plages de cellule avec une formule

Bonjour à tous,

Excusez moi j'ai un nouveau problème que je n'arrive malheureusement pas a résoudre :/

A l'aide d'un membre de ce forum j'ai déjà pu résoudre le problème mais le problème c'est que c'est statique c'est a dire que je dois faire un parcours pour chaque plages de cellules et donc si j'ai plusieurs plages a faire sommer mon code devient très long.

Je vais re expliquer ce que je voudrais faire:

En fait j'ai 3 classeurs Excel.

Et dans les 2 premiers classeurs il y'a differentes plages de cellules avec des nombres.

Et je dois faire la somme de chaque cellule et y insérer la formule de la somme par macro et mettre le résultat dans le 3e classeur.

je vais prendre un exemple :

Dans le classeur1, j'ai des nombres dans la plage E10:E20 et d'autres dans E30:E40 etc ...

Dans le classeur2, j'ai des nombres dans la plage E10:E20 et d'autres dans E30:E40 etc ...

Je dois faire la somme de la cellule E10 du classeur1 avec la cellule E10 du classeur2, de la cellule E11 du classeur1 avec la cellule E11 du classeur2, ainsi de suite .. et mettre le résultat de la somme dans le classeur3 dans les plages E10:E20 et faire apparaitre la formule de la somme

Et faire de meme pour la plage E30:E40 et bien sur pour les autres plages qu'il peut y avoir dans la feuille excel.

Mon problème c'est que j'arrive a faire une macro(qui malheureusement n'est pas dynamique car je fais la somme pour chaque plage)qui fait la somme et la renvoie dans le classeur3 mais je n'arrive pas a trouver une formule pour faire cela de façon dynamique également.

Mon idée était de mettre les plages dans des tableaux, de parcourir les tableaux et de récupérer les valeurs mais malheureusement en faisant une formule qui appelle le tableau je reçois un message d'erreur sur excel.

je vous mets les fichiers en pièces jointes.

J'espère avoir quelques reponses pour m'aider ..

10classeur1.xlsm (31.24 Ko)
6classeur2.xlsm (30.04 Ko)
9classeur3.xlsm (31.60 Ko)
Laeticia a écrit :

...A l'aide d'un membre de ce forum j'ai déjà pu résoudre le problème...

Bonjour,

Cà ... je vais avoir du mal à le croire ...

Peux-tu définir ... ton "dynamique" ... pour remplacer ton "statique" ... ???

Est-ce un modulo 10 ... par hasard ...???

En fait je me suis rendue compte après que si dans la feuille excel j'ai 34 autres plages differentes sur une colonne et bien sur d'autres plages dans les autres colonnes je vais devoir faire un test pour chaque plage.

ce n'est pas forcement un modulo 10.

Et il faut savoir qu'entre ces différentes plages il peut y avoir du texte dans des cellules ou des nombres que je ne veux pas toucher.

Le seul avantage c'est que les plages a sommer entre elles sont dans les memes colonnes et memes plages dans les 2 premiers classeurs.

Re,

Pour résoudre facilement ton problème, il faut clarifier trois points :

1. Existe-t-il une séquence pour les plages ... comme tu le décris c'est-à-dire pour le début des plages : 10,30,50,etc.... ?

2. Chacune de tes plages est-elle de 10 lignes .... ?

3. Quelque chose pourrait-il permettre de déterminer soit le nombre total de plages ... ou pas ...?


Laeticia,

Sur la base de ta première macro, ci-joint un test de la version dynamique ...

Sub Laeticia2()
' Version "dynamique"
Dim i As Integer    ' nombre de plages
Dim x As Integer    ' lignes des plages
Dim y As Integer    ' boucle

For i = 1 To 2
  x = i * 10 + (i - 1) * 10
  For y = x To x + 10
    ActiveSheet.Cells(y, 5).Formula = "='[Classeur10.xlsm]Feuil1'!E" & y & "+" & "'[Classeur20.xlsm]Feuil1'!E" & y
  Next y
Next i
End Sub

Dis-moi si cela correspond à ton attente ... ou pas ...

Ah , je vois ce que tu veux dire..

Non il n'existe pas de séquence pour les plages marquées(avec des couleurs). Tu peux avoir dans le classeur de la plage E1:E7, E10:E20, E30:E40, E43:E69 ...

Tout ce que je sais c'est que les plages marquées dans le classeur1 sont également marquées dans le classeur2 pour pouvoir faire la somme et mettre le résultat dans les memes plages marquées du classeur3.

Donc chacune des plages ne contiennent pas forcement 10 lignes

Pour déterminer le nombre total de plages je pense qu'on pourrait regarder les plages avec des couleurs mais ce n'est qu'une idée. je ne sais pas s'il est possible de savoir le nombre total de plages.

JE viens d'essayer le programme il fonctionne juste lorsque c'est plages vont de 10 en 10 c'est ça?

parce que j'ai justement essayer de créer une autre plages de nombres A1:A4 dans les 2 classeurs mais ça ne me mets pas le résultat de la somme dans la plage A1:A4 du classeur3 .

Re,

Malheureusement ... des plages de couleur ... ensoleillées ou pas ... ... ne vont pas permettre de définir les bornes indispensables de tes différentes plages ...

Peux-tu chercher (et trouver) une méthode d'identification....qui soit solide ...???

Effectivement, la dernière macro s'appuie sur la structure des Classeur10 et Classeur20 ... pour autant de plages que nécessaire ...

D'accord..

En tout cas merci bcp pour ton aide !

Re,

En conclusion ... (temporaire) ....

Dès que tu arrives à définir une structure pour toutes tes plages ... l'adaptation "dynamique" ... deviendra possible ...

Bon Courage ...

Bonsoir ,

j'ai pu trouver la macro qui me permet de faire mon addition :

Sub Additionner()

Dim v As Variant

For Each v In Array("N13:N16", "O12", "H102:AF102","H104")

Workbooks("Classeur_T.xlsm").Worksheets(3).Range(v).FormulaArray = _

"=[Classeur_T.xlsm]Feuil1!" & v & "+[Classeur_T.xlsm]Feuil2!" & v

Next v

Ens Sub

Mais jai encore un petit soucis :/

Lorsque j'ai une cellule qui a été faite par une fusion de plusieurs autre cellules comme par exemple la cellule fusionnée "H102:AF102" comme dans la macro, l'addition ne se fait pas.

Est ce qu'il y'a des propriétés spécifiques pour les cellules fusionnées ?

Laeticia,

Je croyais que tu avais le projet de construire une procédure dynamique ...

On dirait que tu sembles t'en écarter ... car le code que tu affiches ... est en statique ... !!!

Concernant les cellules fusionnées ... pour moi, elles sont totalement bannies ... car elles ne font que créer des problèmes

Ouais,

j'avoue que c'était ca mais bon tout ce qui est statique c'est le fait que je dois mettre les plages mais la formule fait le reste.

c'est vrai que par rapport aux cellules fusionnées je ne comprends pas grand chose

Re,

La seule chose pertinente à faire avec les cellules fusionnées .... s'en débarasser ...

Merci du conseil

Laeticia a écrit :

Merci du conseil

Je te félicite de passer le cap et de supprimer toutes les fusionnées ...

Si j'en avais le pouvoir ... je les retirerai complètement d'Excel ...

Rechercher des sujets similaires à "sommer dynamiquement plages formule"