Rechercher : dans
Par :

[VBA Excel] SOS Somme si 3 critères

Dernière réponse le 4 jan 2007 à 17:59:21 Nicotfc, le 11 sep 2006 à 11:12:27 
 Signaler ce message aux modérateurs

Bonjour à tous !

SOS !
Cela fait 1 semaine que je me prend la tête sur 1 macro Excel.
Je veux automatiser un outils suivi projet qui me permettra de suivre les frais de projets divers.
Je dispose de 2 fichiers excel:
* Outils suivi projet
* Suivi frais

1 fichier "suivi frais" est saisi par 1 collaborateur, voilà sa composition:
1 tableau croisé dynamique avec 3 menus déroulant :
* Nom projet (Administratif, Projet 1, Projet 2) Colonne A
* Catégorie de dépense (Frais déplacement, Frais hôtel, Divers) Col B
* Mois Col C

Projet (A4) Catégorie dépense (B4) mois (C4)
Projet 1 (A5) Frais deplacement (B5) le montant à exporter (C5)

1 fois ce fichier rempli, je veux importer automatiquement à l'aide d'1 macro (ou d'1 fonction si cé possible...) les montants de Frais déplacement, Frais hôtel et Divers dans les cellules excel du fichier : "Outil suivi projet" si le nom projet (A5 "Suivi frais") = nom projet (A1 "Outil suivi projet") et si (B5 "Suivi frais" = A6 "Outil suivi projet") et si (C5 "suivi frais"= F5 "Outil suivi projet")

Composition du fichier:
1 tableau avec :
* Colonne A : Frais
3 lignes : Frais déplacement (L1) Frais hôtel (L2) Divers (L3)
* Colonne B: Mois (Montant par mois)
Cellule B1 : le montant Frais déplacement de "suivi frais" que je veux omporter !

Nom projet (A1)

Frais (A4) mois (F5)
Frais déplacement (A6) Montant à importer (F6)

Voilà le code que j'ai commençé :

Sub xxl()
Application.Workbooks("Outil suivi projet").Activate
Range("A1").Select
cellule1 = Range("A1").Value 'Nom projet

Application.Workbooks("suivi frais").Activate
If cellule1 = Range("A5").Value And Range("C4").Value = "janvier-06" Then
cellule2 = Range("C8").Value
Application.Workbooks("Outil suivi projet_Rev07").Activate
Range("F6").Value = cellule2
End If
If cellule1 = Range("A9").Value And Range("C4").Value = "janvier-06" Then
cellule2 = Range("C11").Value
Application.Workbooks("Outil suivi projet").Activate
Range("F6").Value = cellule2
End If
If cellule1 = Range("A12").Value And Range("C4").Value = "janvier-06" Then
cellule2 = Range("C14").Value
Application.Workbooks("Outil suivi projet_Rev07").Activate
Range("F6").Value = cellule2
End If

Application.Workbooks("exemple suivi frais").Activate
If cellule1 = Range("A5").Value And Range("D4").Value = "février-06" Then
cellule2 = Range("D8").Value
Application.Workbooks("Outil suivi projet_Rev07").Activate
Range("I6").Value = cellule2
End If
If cellule1 = Range("A9").Value And Range("D4").Value = "février-06" Then
cellule2 = Range("D11").Value
Application.Workbooks("Outil suivi projet_Rev07").Activate
Range("I6").Value = cellule2
End If
If cellule1 = Range("A12").Value And Range("D4").Value = "février-06" Then
cellule2 = Range("D14").Value
Application.Workbooks("Outil suivi projet_Rev07").Activate
Range("I6").Value = cellule2
End If
End Sub

Voilà, je ne suis pas sûr de mon code, les montants ne s'importent pas, il y a avé 1 problème de sélection au début, je les ai résolus mé les montants ne s'importent toujours pas !

Si quelqu'un peut me venir en aide ? Merci!

1

Nicotfc, le 11 sep 2006 à 11:52:53

Excusez moi pour le titre du message, c'est plutôt un import suivant 3 critères !!!

Répondre à Nicotfc

2

JvDo, le 11 sep 2006 à 17:51:44

Bonjour,

monte ton fichier sur http://cjoint.com/

ce que j'ai l'impression d'avoir compris, c'est que :
1) ton fichier de saisie n'est pas un TCD,
2) qu'il a des listes de validation et
3) que la solution à ton problème passe peut-être justement par un TCD.

A+

Répondre à JvDo

3

Nicotfc, le 12 sep 2006 à 16:34:04

Cé fait, jé envoyé 2 ficihiers
* Suivi frais
* Outil suivi frais

http://cjoint.com/?jmqCUBPmcP

Répondre à Nicotfc

4

Nicotfc, le 12 sep 2006 à 16:40:44

Je ne t'ai envoyé ci-dessus que le fichier Outil suivi projet et NON Outil suivi frais comme je lé écrit

Voici le lien vers le 2ème fichier :

Suivi frais

http://cjoint.com/?jmqJMlnTDU

Répondre à Nicotfc

5

JvDo, le 12 sep 2006 à 18:13:49

Bonjour,

en F6 de "Frais + autres coûts directs" tu mets cette petite formule :

=SI(ESTNA(EQUIV(TEXTE(F$4;"mmmm-aa");[Suivi_frais.xls]Feuil1!$4:$4;0)-1);0;SI(ESTNA(RECHERCHEV($A6;DECALER([Suivi_frais.xls]Feuil1!$A$1;EQUIV($A$1;[Suivi_frais.xls]Feuil1!$A:$A;0)-1;1;EQUIV("Total "&$A$1;[Suivi_frais.xls]Feuil1!$A:$A;0)-EQUIV($A$1;[Suivi_frais.xls]Feuil1!$A:$A;0);NBVAL([Suivi_frais.xls]Feuil1!$4:$4)-1);EQUIV(TEXTE(F$4;"mmmm-aa");[Suivi_frais.xls]Feuil1!$4:$4;0)-1;FAUX));0;RECHERCHEV($A6;DECALER([Suivi_frais.xls]Feuil1!$A$1;EQUIV($A$1;[Suivi_frais.xls]Feuil1!$A:$A;0)-1;1;EQUIV("Total "&$A$1;[Suivi_frais.xls]Feuil1!$A:$A;0)-EQUIV($A$1;[Suivi_frais.xls]Feuil1!$A:$A;0);NBVAL([Suivi_frais.xls]Feuil1!$4:$4)-1);EQUIV(TEXTE(F$4;"mmmm-aa");[Suivi_frais.xls]Feuil1!$4:$4;0)-1;FAUX)))
et tu recopies cette formule partout dans les cellules montant.
en A1 de cet onglet, tu auras naturellement indiqué le nom d'un projet se trouvant dans le TCD issu de la saisie.

remarque : ne pourrais-tu pas construire un autre TCD qui ressemblerait à ton résultat de suivi de projet?

cordialement

Répondre à JvDo

6

Nicotfc, le 18 sep 2006 à 10:17:10

Merci pour la formule, je suis en train de la tester.
J'ai enregistré les 2 fichiers dans le même répertoire, j'ai inséré ta formule dans F6 de "Frais +ACD", en collant (on me demande : "Mettre à jour les valeurs : Suivi-frais.xls"), j'ai donc sélectionné "Suivi-frais.xls".
J'ai recopié la formule dans les cases I6, L6, O6, R6 de "Outil suivi projet" mais rien ne s'affiche. J'ai mis comme nom de projet en A1 1001 Admin-Secrétariat puis Admin-Secrétariat mais toujours rien.

Comment dois-je écrire les noms projets: avec les chiffres + nom, seulement avec le nom ?
Sinon, t'as testé la formule, ça marché ?

Répondre à Nicotfc

7

JvDo, le 18 sep 2006 à 15:04:17

Bonjour,

en collant (on me demande : "Mettre à jour les valeurs : Suivi-frais.xls"), j'ai donc sélectionné "Suivi-frais.xls".
ça, je ne comprends pas

Comment dois-je écrire les noms projets:
exactement comme ils sont écrits dans ton TCD

Sinon, t'as testé la formule, ça marché ?
là, tu me vexes!
comment veux-tu que j'écrive une formule comme celle-là sans l'avoir testée!! regarde là : http://cjoint.com/?jspc0bMT6i

à l'ouverture de ton fichier, il y a une proposition de mettre à jour les liaisons, proposition que je refuse vu que je n'ai pas le fichier concerné.

A+

Répondre à JvDo

8

Nicotfc, le 18 sep 2006 à 17:57:52

Quand j'ouvre les fichiers joints, il apparaît dans toutes les cases du tableau "Outils suivi projet" : #VALEUR!

Que dois-je faire ?

Merci pour tout ces renseignements, ça m'est trés profitable!

Répondre à Nicotfc

9

Nicotfc, le 18 sep 2006 à 18:08:40

Non cé bon, je n'avais pas enregistré les 2 fichiers dans 1 répertoire !
Excuse moi, je n'ai rien dit!
Merci !!!!!!!!!!

Répondre à Nicotfc

10

 Nicotfc, le 4 jan 2007 à 17:59:21

Bonsoir,

Je reprend l'outil suivi projet dont j'ai parlé ci-dessus, peut on remplacer la fonction que m'a envoyé JvDo par une macro ? car sinon le fichier est trop lourd.

Merci.

Répondre à Nicotfc