Excel : VBA : Automatisation de fichiers (Décalage colonne / semaine)

MarieL91

XLDnaute Nouveau
Bonjour à tous,

Cela fait 1 semaine que je cherche une façon d'automatiser mes fichiers pour que :
Chaque nouvelle semaine ma synthèse de fichier se mette à jour automatiquement en fonction d'une base de donnée.
Je pensais passer par une macro mais sans résultat.

Ci joint le fichier avec les formules Excels et la base de donnée.
Et les explications de ce que je souhaiterais réaliser.

Je vous remercie d'avance,

J'espere que vous allez pouvoir m'aider .

Bonne journée

Marie
 

Pièces jointes

  • Fichier.xls
    40 KB · Affichages: 26
  • Fichier.xls
    40 KB · Affichages: 32
  • Fichier.xls
    40 KB · Affichages: 33

st007

XLDnaute Barbatruc
Re : Excel : VBA : Automatisation de fichiers (Décalage colonne / semaine)

Bonjour,
Ton soucis se résume à :
('BASE DE DONEE'!$AA$3:$AA$15))
pour modifier les AA nom de la colonne de recherche, tu peux utiliser indirect et adresse pour reconstituer ta formule
=ADRESSE(3;EQUIV(A1;'BASE DE DONEE'!A1:AH1;0))
deviendra
$AA$3
donc B5 deviendra
Code:
=SOMMEPROD(('BASE DE DONEE'!$F$3:$F$15="SITEA")*(INDIRECT("'BASE DE DONEE'!"&ADRESSE(3;EQUIV(A1;'BASE DE DONEE'!A1:AH1;0))&":"&ADRESSE(15;EQUIV(A1;'BASE DE DONEE'!A1:AH1;0)))))
Résolution par formule donc proposée ici, sous réserve d'avoir compris ...
 

Pièces jointes

  • Fichier.xls
    41 KB · Affichages: 41
  • Fichier.xls
    41 KB · Affichages: 31
  • Fichier.xls
    41 KB · Affichages: 29

MarieL91

XLDnaute Nouveau
Re : Excel : VBA : Automatisation de fichiers (Décalage colonne / semaine)

Merci beaucoup de ton aide cela fonctionne parafitement ^^
Je n'y aurais jamais pensé toute seule.

Par contre si j'ai bien compris, Je ne peux pas avoir deux noms identiques en debut de colonnes avec ta formule?
Exemple; AA= 19 et AB = 19 (19 est la valeur recherchée)
Il y a t il une solution plus simple que de renomer la colonne ? Exemple : AA = 19a et AB= 19b

Merci encore c'est super gentil de ta part .
 

st007

XLDnaute Barbatruc
Re : Excel : VBA : Automatisation de fichiers (Décalage colonne / semaine)

Re,
Je n'ai pas cherché à comprendre ton fichier, les p r, tu ne donnais qu'un exemple, la formule fonctionnera tant que tu cherches à additionner les valeurs en première colonne avec ton n° semaine. Donc les colonnes avec p
si tu veux additionner les colonnes avec r, tu peux insérer +1
ou encore "tricher" en indiquant un n° semaine v19p v19r v20p v20r etc par liste déroulante par exemple en A1, tronqué à l'affichage
tu auras alors equiv(A1;base de donee!A2:AH2)

Bon après, un tcd te serait peut être utile, je vois 7 affichages de ton fichier, une autre approche viendra peut être ...
 

MarieL91

XLDnaute Nouveau
Re : Excel : VBA : Automatisation de fichiers (Décalage colonne / semaine)

Re,

J'ai suivi vos conseils mais je suis bloquée sur une formule (me permettant de faire la différence de 2 colonnes selon la base de donnée) du même acabi que votre 1er formule.

La formule que j'ai essayé est :

=ABS(SOMMEPROD(('BASE DE DONEE'!$F$3:$F$15="SITEA")
*(('BASE DE DONEE'!$G$3:$G$15="EXCLUSIF")+('BASE DE DONEE'!$G$3:$G$15="MULTISITE"))
*(INDIRECT("'BASE DE DONEE'!"&ADRESSE(3;EQUIV(A1;'BASE DE DONEE'!A1:AI1;0))&":"&ADRESSE(15;EQUIV(A1;'BASE DE DONEE'!A1:AI1;0)))))
-(INDIRECT("'BASE DE DONEE'!"&ADRESSE(3;EQUIV(B1;'BASE DE DONEE'!A1:AI1;0))&":"&ADRESSE(15;EQUIV(B1;'BASE DE DONEE'!A1:AI1;0)))))

Ci joint le fichier, si ca ne vous derangerait pas de jeter un coup d'oeil...

Merci d'avance,

Bonne soiree
 

Pièces jointes

  • Fichier.xls
    41.5 KB · Affichages: 19
  • Fichier.xls
    41.5 KB · Affichages: 22
  • Fichier.xls
    41.5 KB · Affichages: 22

st007

XLDnaute Barbatruc
Re : Excel : VBA : Automatisation de fichiers (Décalage colonne / semaine)

Bonsoir,
il m'étais déjà apparu un soucis que tu reproduis ici,
"SITEA" est différent de "SITEA ",
je n'ai pas trop de temps là, mais un sommeprod des colonnes +1 auquel on soustrait sommeprod des colonnes ...
 

st007

XLDnaute Barbatruc
Re : Excel : VBA : Automatisation de fichiers (Décalage colonne / semaine)

Re,
donc,
=SOMMEPROD((F3:F15="SITEA")*(ABS(AB3:AB15-AA3:AA15)))
pourquoi te soucier de la colonne G, a moins que tu aie des sitea avec autre chose qu'exclusif et multisite

Code:
INDIRECT("'BASE DE DONEE'!"&ADRESSE(3;EQUIV(A1;'BASE DE DONEE'!A1:AI1;0)+1)&":"&ADRESSE(15;EQUIV(A1;'BASE DE DONEE'!A1:AI1;0)+1))))
Comme ceci les +1 au lieu de equiv(b1.....

Code:
=SOMMEPROD(('BASE DE DONEE'!F3:F15="SITEA")*(ABS(INDIRECT("'BASE DE DONEE'!"&ADRESSE(3;EQUIV(A1;'BASE DE DONEE'!A1:AI1;0)+1)&":"&ADRESSE(15;EQUIV(A1;'BASE DE DONEE'!A1:AI1;0)+1))-(INDIRECT("'BASE DE DONEE'!"&ADRESSE(3;EQUIV(A1;'BASE DE DONEE'!A1:AI1;0))&":"&ADRESSE(15;EQUIV(A1;'BASE DE DONEE'!A1:AI1;0)))))))
 

Pièces jointes

  • Fichier (1).xls
    37.5 KB · Affichages: 24
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 072
Membres
103 110
dernier inscrit
Privé