sommer le contenu de 1000 cellules dans 20 fichiers par macro

boudu

XLDnaute Occasionnel
bonjour au forum
chaque mois je reçois 20 fichiers comportant chacun environ 1000 cellules
les fichiers sont ous formatés de la meme façon, il y a des entetes avec du texte et des nombres dans les autres cellules
je souhaite réaliser un fichier identique aux 20 que je reçois mais qui fait la somme de leur contenu en evitant d'avoir à saisir pour chaque cellule comme je l'ai fait dans l'exemple joint (le chemin est evidemment à modifier)

Merci d'avance
 

Pièces jointes

  • somme.zip
    12 KB · Affichages: 43
  • somme.zip
    12 KB · Affichages: 43
  • somme.zip
    12 KB · Affichages: 41

kiki29

XLDnaute Barbatruc
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Salut, vite fait , à vérifier et à toi de poursuivre
 

Pièces jointes

  • somme.zip
    16.1 KB · Affichages: 45
  • somme.zip
    16.1 KB · Affichages: 43
  • somme.zip
    16.1 KB · Affichages: 46
Dernière édition:

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

re bonjour Kiki29; le forum

Merci pour ta proposition mais ce n'est pas cela que je souhaite; je me suis mal exprimé
Les 20 fichiers sont tous formatés de la meme façon, je veux en créer un 21eme egalement formaté de la meme façon mais qui reprend dans ses resultats la somme de la cellule A1 des 20 fichiers, la somme de la cellule A2 des 20 fichiers.... Il y a des cellules contenant du texte et là je veux reprendre l'intitulé.
J'espere que c'est plus clair
Bonne fin de journée
 

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Re bonsoir
Pour preciser un peu plus et c'est le cas dans l'exemple que j'ai posté le resultat des cellules A2 jusqu'à A9 doit affichier 3, le resultat des cellules B2 jusqu'à B 9 doit etre 6 et la cellule A1 doit afficher val1...
c'est une replique des 20 fichiers concernant le texte mais chaque cellule doit afficher le cumul des memes cellules des 20 fichiers..
j'espere etre plus clair
merci pour vos suggestions
 

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Bpnjour kiki29; le forum
je prends conscience que mon exposé n'etait pas clair donc j'ai refait un exemple plus parlant
je redetaille ce que je souhaite faire faire à la macro dans le fichier

Bonne journée à tous
 

Pièces jointes

  • somme1.zip
    17.4 KB · Affichages: 30
  • somme1.zip
    17.4 KB · Affichages: 35
  • somme1.zip
    17.4 KB · Affichages: 36

michel_m

XLDnaute Accro
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Bonjour Boudu, kiki,
Ci joint proposition en laissant les fichiers sources fermés

les formules de somme (D2,D4,B10 à D10 ) sont écrites dans le classeur somme.xls ==> gain de temps, moins de transfert à écrire...

tu as quans m^me du boulot d'écriture avec les ref de cellules à extraire dans la macro "consolider"

Code:
For cptr = 1 To 12 'à adapter à ton nombre de cellules
        Plage = Choose(cptr, "A2", "B2", "C2", "A4", "B4", "C4", "B8", "B9", "C8", "C9", "D8", "D9") 'bon courage!!!
 

Pièces jointes

  • somme.xls
    39.5 KB · Affichages: 79
  • somme.xls
    39.5 KB · Affichages: 79
  • somme.xls
    39.5 KB · Affichages: 81

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Bonsoir Michel le forum
merci beaucoup pour cette solution qui fonctionnne tres bien
effectivement un peu de boulot pour la saisie de toutes les cellules mai quand meme beaucoup moins que ce que j'avais avec ma solution

Bonne continuation
 

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Re bonsoir Michel le forum
Je pondere un peu mon optimisme car effectivement je rest à saisir un tres grand nombre de cellules
n'est_il pas possible de faire une variable plus globale qui additionnerait quand c'est un nombre et qui recopierait quand c'est du texte??

Je sais, je suis un peu exigeant mais vraiment ça serait plus simple pour mes vrais fichiers

Merci et bonne continuation
 

kiki29

XLDnaute Barbatruc
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Salut, il serait intéressant que tu fournisses un fichier complet avec ses 1000 lignes, cela permettrait peut-être de trouver une formule VBA pour générer les cellules concernées dans un tableau , ici Plage = Array("A2", "B2", "C2","A4", "B4", "C4",......etc)
 
Dernière édition:

michel_m

XLDnaute Accro
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Bonjour,

Kiki a raison, on attend ton fichier zippé... mais peut être faudra t il changer la disposition des cellules (plage Ax:By) si tu en est d'accord. en effet, pour utiliser ADO, il faut que les colonnes possèdent le m^me type de données (texte ou nombre)... et peut avoir des "pas" réguliers pour créer des boucles
dans l'attente
Bon fin de WE
 

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

bonsoir Michel Kiki29 le forum
Je suis en weeke nd et c'est un fichier professionnel donc je ne l'ai evidemment pas avec moi..
Je tiens à preciser que les 21 fichiers sont rigoureusement identiques: les 20 sources et celui que je souhaite generer qui contient la macro (ce sont des statistiques qui sont générées par 20 sites et dont je souhaite faire la synthese)
cela veut dire qu'effectivement les lignes d'entete sont toutes au meme emplacememnt, les resultats au meme emplacememnt et les totaux au meme emplacememnt (je prefere d'ailleurs une recopie des totaux pour pouvoir verifier la coherence plutot que des formules ajoutées au 21eme fichier (synthese)
c'est pour eviter d'avoir à faire la saisie du type array(toutes les cellules) que j'ai posté
Je n'ai pas parlé de 1000 lignes mais de 1000 cellules à recopier au meme emplacement dans le 21eme fichier, pour l'instant ça donne:
Range("A2").Select
ActiveCell.FormulaR1C1 = _
"=[3.xls]Feuil1!R2C1+[2.xls]Feuil1!R2C1+[1.xls]Feuil1!R2C1"
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=[3.xls]Feuil1!R2C2+[2.xls]Feuil1!R2C2+[1.xls]Feuil1!R2C2"
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=[3.xls]Feuil1!R2C3+[2.xls]Feuil1!R2C3+[1.xls]Feuil1!R2C3"
... alors vous voyez ce que ça represente pour les 1000 cellules..

Il est impossible de changer l'emplacement des cellules car tous les fichiers sont formatés de la meme maniere donc ADO sera vraisemblablement impossible
Je serai mercredi au boulot et posterai l'un des 20 fichiers zippé à ce moment-là
Merci et bonne fin de week end
 

boudu

XLDnaute Occasionnel
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

bonjour Michel, kiki29, le forum
Voivi l'un des 20 fichiers qui doit etre additionné, ce fichier ne comprend que des valeurs
Le resultat (le 21eme) doit reprendre la disposition exacte des cadres, le texte et additionner le contenu des dellules dans lesquelles il y a des nombres

Bonne journée à tous
 

kiki29

XLDnaute Barbatruc
Re : sommer le contenu de 1000 cellules dans 20 fichiers par macro

Salut, en reprenant et adaptant la solution proposée par michel_m, il te restera à la vérifier et éventuellement à compléter le fichier texte ( CellulesALire.txt ) qui contient les cellules à balayer.
pour ce qui est du distinguo numérique/texte à priori placer à l'endroit idoine :
Code:
        If IsNumeric(ShStats.Range(sPlage(i))) Then
            ShStats.Range(sPlage(i)) = ShStats.Range(sPlage(i)) + ShStats.Range("F2")
        Else
            ShStats.Range(sPlage(i)) = ShStats.Range("F2")
        End If
 

Pièces jointes

  • Somme.zip
    47.7 KB · Affichages: 66
  • Somme.zip
    47.7 KB · Affichages: 70
  • Somme.zip
    47.7 KB · Affichages: 73
Dernière édition:

Discussions similaires

Réponses
26
Affichages
382

Statistiques des forums

Discussions
312 218
Messages
2 086 357
Membres
103 197
dernier inscrit
sandrine.lacaussade@orang