Afficher selon une recherche.

  • Initiateur de la discussion Initiateur de la discussion Oyami
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

O

Oyami

Guest
Bonjour à tous,
Cela fait maintenant plus de 6 heures que je parcourre le forum sans succès.
J'ose donc vous demander de l'aide plus concrète!

feuille suivi dépenses: contient mes entrées de factures et j'ai attribué un # de transaction qui sert d'identifiant en colonne A.
A - B - C - D - E
# de transaction - Charge - Poste Comptable - Date -Fournisseur

En B j'ai 4 possibilités amenées par un menu déroulant: Correction, Personnelle, Entreprise, Conjointe.

J'aimerais que dans la seconde feuille (nommée suivi débours), qu'Excel cherche pour moi à l'aide d'une formule (VBA je comprend rien) tous les # de transaction Colonne A de la feuille suivi dépenses et me copie ceux qui ont en B les choix Personnelle, Entreprise, Conjointe. Autrement dit, ne pas m'afficher ceux qui ont en B ''CORRECTION''.

Ensuite, que dans la colonne B et C de cette même feuille de suivi débours, il me copie l'information correspondante à l'identifiant depuis la feuille de suivi dépenses.

Je sais que c'est possible, j'ai vraiment cherché. Je m'avoue vaincue et m'incline déjà devant l'aide que vous m'apporterez!

Merci d'avance!
 
Re : Afficher selon une recherche.

Bonjour,

Un essai avec une formule matricielle en A2 onglet Suivi Débours :

Code:
=SI(LIGNE()-1>SOMME(('Suivi Dépenses'!$C$2:$C$5000<>"Correction")*
('Suivi Dépenses'!$C$2:$C$5000<>""));"";PETITE.VALEUR(SI(('Suivi Dépenses'!
$C$2:$C$500<>"Correction")*('Suivi Dépenses'!$C$2:$C$500<>"");('Suivi Dépenses'!
$C$2:$C$500<>"Correction")*(LIGNE('Suivi Dépenses'!$2:$500)));LIGNE()-1))

Formule matricielle à valider par CTRL + MAJ + ENTREE

En B2 :

Code:
=SI(A2="";"";INDEX('Suivi Dépenses'!$D$1:$D$500;A2))

en C2 :

Code:
=SI(A2="";"";INDEX('Suivi Dépenses'!$F$1:$F$500;A2))

Plages de cellules à adapter

Formules à recopier vers le bas

@+
 
Re : Afficher selon une recherche.

Merci beaucoup Tibo!
Je n'aurais JAMAIS, mais JAMAIS réussi à trouver ce type de formule.

Pour les colonnes B et C: tout brille! Impec!

Pour la colonne A (formule matricielle), les valeurs qui me sont renvoyées sont décalées de 1.

Je crois que cela est causé par LIGNE()-1.
J'ai tenté de changé cela, sans obtenir de résultats.

Aussi je me pose la question suivante, ne connaissant pas assez bien le fonctionnement de cette formule matricielle: Si mon identifiant était différent par exemple FS4500, FS4501 etc, est-ce que cela fonctionnerat? Car dans le fichier joint j'avoue avoir réduit au minimum les valeurs. Mon besoin est de pouvoir avoir n'importe quel type d'identifiant. Numérique, alphanumérique et ne commençant pas nécessairement par 1.


Voir fichier ci-joint dans lequel j'ai insérer tes bouts de codes!

Merci encore de bidouiller pour moi!
 

Pièces jointes

Dernière modification par un modérateur:
Re : Afficher selon une recherche.

re,

Il faut que les données de la colonne A soient croissantes et continues.

Dans ce cas, une toute petite correction :

Code:
=SI(LIGNE()-1>SOMME(('Suivi Dépenses'!$C$2:$C$20<>"Correction")*
('Suivi Dépenses'!$C$2:$C$20<>""));"";PETITE.VALEUR(SI(('Suivi Dépenses'!
$C$2:$C$20<>"Correction")*('Suivi Dépenses'!$C$2:$C$20<>"");('Suivi Dépenses'!
$C$2:$C$20<>"Correction")*(LIGNE('Suivi Dépenses'!$2:$20)));LIGNE()-1)[COLOR=Red][B]-1[/B][/COLOR])
Si les codes de la colonne A ne devaient pas être continues, il faudrait ajouter une fonction INDEX à la formule pour "lire" cette colonne A.

Petite précision : Valide matriciellement la formule en A2, puis recopier la ensuite vers le bas. Ca rend la formule plus facile à corriger le cas échéant.

@+

Edit : Je n'avais pas lu complètement ton post (qui rejoint ce que j'évoquais ci-dessus. Avec la fonction INDEX, ça donne ceci :

Code:
=SI(LIGNE()-1>SOMME(('Suivi Dépenses'!$C$2:$C$20<>"Correction")*
('Suivi Dépenses'!$C$2:$C$20<>""));"";INDEX('Suivi Dépenses'!$A$1:$A$26;
PETITE.VALEUR(SI(('Suivi Dépenses'!$C$2:$C$20<>"Correction")*
('Suivi Dépenses'!$C$2:$C$20<>"");('Suivi Dépenses'!$C$2:$C$20<>
"Correction")*(LIGNE('Suivi Dépenses'!$2:$20)));LIGNE()-1)))

Toujours matricielle donc CTRL + MAJ + ENTREE

Bonne soirée

@+
 
Dernière édition:
Re : Afficher selon une recherche.

Hola!

C'est vraiment super! Merci de tout coeur 🙂

En plus de m'aider avec ce truc pour lequel j'ai cogité au moins un bon 30h avec les recherches sur le net... j'apprend en plus ce petit truc pour la validation matricielle!

quoi dire de plus... Merci!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

R
Réponses
6
Affichages
1 K
rodgeur80
R
N
  • Question Question
Réponses
5
Affichages
3 K
U
Réponses
0
Affichages
1 K
uolmo
U
Retour