Multi-recherchev et SI imbriquées VBA

MagicRiver

XLDnaute Nouveau
Bonjour,

Je viens vers vous car je débute seulement à utiliser des fonctions et des macro sur excel, et je rencontre un problème que je n'arrive pas à contourner.

J'ai une fonction que je souhaiterai effectuer avec une macro, mais cela ne fonctionne pas quand je la tape pendant un enregistrement de macro. Je dois donc la convertir en VBA mais je n'ai aucune idée de comment faire et j'aurai besoin d'un peu d'aide (au moins un début de piste!) :)

Voilà ma formule (attention accrochez vous) :

=SI([Dep]=75001;(RECHERCHEV([Hotel];'1er'!C(-9):C(-7);3;FAUX));(SI([Dep]=75002;(RECHERCHEV([Hotel];'2è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75003;(RECHERCHEV([Hotel];'3è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75004;(RECHERCHEV([Hotel];'4è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75005;(RECHERCHEV([Hotel];'5è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75006;(RECHERCHEV([Hotel];'6è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75007;(RECHERCHEV([Hotel];'7è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75008;(RECHERCHEV([Hotel];'8è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75009;(RECHERCHEV([Hotel];'9è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75010;(RECHERCHEV([Hotel];'10è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75011;(RECHERCHEV([Hotel];'11è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75012;(RECHERCHEV([Hotel];'12è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75013;(RECHERCHEV([Hotel];'13è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75014;(RECHERCHEV([Hotel];'14è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75015;(RECHERCHEV([Hotel];'15è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75016;(RECHERCHEV([Hotel];'16è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75017;(RECHERCHEV([Hotel];'17è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75018;(RECHERCHEV([Hotel];'18è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75019;(RECHERCHEV([Hotel];'19è'!C(-9):C(-7);3;FAUX));(SI([Dep]=75020;(RECHERCHEV([Hotel];'20è'!C(-9):C(-7);3;FAUX)))))))))))))))))))))))))))))))))))))))))

En gros mon fichier regroupe des ventes effectuées dans des hôtels sur Paris, et la première feuille représente les ventes du mois passé. Vient ensuite ma 2ème feuille "1er" qui correspond au récapitulatif des ventes de l'année des hôtels du 1er arrondissement, puis "2è" pour le 2ème arrondissement ... jusqu'au 20ème.
[Dep] correspond à la colonne des département dans ma 1ere feuille, et [Hotel] a la colonne des hôtels dans chacune des autres feuilles.

Voilà voilà, si quelqu'un peut m'indiquer comment s'y prendre avec les fonctions imbriquées SI et rechercheV en VBA ça serai très sympa.

Merci!

PS: Si vous voulez mieux comprendre le fonctionnement, je vous ai mis mon fichier en pièce jointe, il n'y a qu'a copier/coller la formule dans la cellule K4.
 

Pièces jointes

  • Ventes par arrondissement 2015 new444.xlsm
    221.9 KB · Affichages: 28
Dernière édition:

joss56

XLDnaute Accro
Re : Multi-recherchev et SI imbriquées VBA

Bonjour,

Pourquoi une feuille par arrondissement? A mon sens, une seule feuille suffit, et un tableau croisé dynamique répondra à ta demande.
Sauf si tu souhaites vraiment passer par du VBA...
A+
Jocelyn
 

MagicRiver

XLDnaute Nouveau
Re : Multi-recherchev et SI imbriquées VBA

Une feuille par arrondissement c'est pour la facilité de lecture. En fait ce fichier est à mes supérieurs et ils tiennent à la mise en forme.

Mais j'y penserai je viens de regarder ça à l'air pas mal merci.
Sinon, problème résolu, si quelqu'un cherche, mon code final sous VBA me donne :

Sub Macro17()
'
' Macro17 Macro
'

'
Range("K4").Select
ActiveCell.FormulaR1C1 = _
"=IF([Dep]=75001,VLOOKUP(C[-9],'1er'!C[-9]:C[-7],3,FALSE),IF([Dep]=75002,(VLOOKUP(C[-9],'2è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75003,(VLOOKUP(C[-9],'3è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75004,(VLOOKUP(C[-9],'4è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75005,(VLOOKUP(C[-9],'5è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75006,(VLOOKUP(C[-9],'6è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75007,(VLOOKUP(C[-9],'7è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75008,(VLOOKUP(C[-9],'8è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75009,(VLOOKUP(C[-9],'9è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75010,(VLOOKUP(C[-9],'10è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75011,(VLOOKUP(C[-9],'11è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75012,(VLOOKUP(C[-9],'12è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75013,(VLOOKUP(C[-9],'13è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75014,(VLOOKUP(C[-9],'14è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75015,(VLOOKUP(C[-9],'15è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75016,(VLOOKUP(C[-9],'16è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75017,(VLOOKUP(C[-9],'17è'!C[-9]:C[-7],3,FALSE))," _
& "IF([Dep]=75018,(VLOOKUP(C[-9],'18è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75019,(VLOOKUP(C[-9],'19è'!C[-9]:C[-7],3,FALSE)),IF([Dep]=75020,(VLOOKUP(C[-9],'20è'!C[-9]:C[-7],3,FALSE)),""""))))))))))))))))))))"

Range("K5").Select
End Sub

Thx, see you!
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel