Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recuperation de donner sous condition

  • Initiateur de la discussion Initiateur de la discussion br44
  • 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 !

br44

XLDnaute Impliqué
Bonjour à tous le forum ,

voilà je voudrais savoir comment faire pour extraire des données d'une plage de cellules située dans feuille1 vers la feuilles 2 que si la lette "B" s'affiche dans la plage concernée .

Je vous joint un petit fichier avec des extrait des deux tableaux et des feuille concernées .


Exemple: si la lettre "B" s'affiche dans la colonne " C13 " de la feuille1 et que le résultat est de 7 dans la cellules "B13" de la feuille 1 je voudrais que le 7 apparaisse en "C9" de la feuille 2 et ainsi de suite pour toutes le fiches de feuille 1 .

Vous remerciant par avance je vous dit à, bientôt et merci d'avance pour le coup de main

Br44
 

Pièces jointes

Re : Recuperation de donner sous condition

Bonjour br44

Je ne pourrais pas t'aider, mais... ...au bout de 680 posts tu devrais savoir que les cellules fusionnées sont un problème ET pour appliquer des formules ET pour créer des macros.

A voir ton exemple, la solution sera, a mon humble avis, une usine à gaz, devant prendre en compte : "un coups j'suis fusionnée, un coups pas...."

Excel peut beaucoup mais pas n'importe quoi. Commence par une vraie base de données, puis crée ta feuille de présentation.

Cordialement
 
Re : Recuperation de donner sous condition

Bonjour br44, Efgé 🙂



J' adhère à 110 % aux propos de Efgé (que je salue). Tableau bancal, cellules fusionnées, structure incohérente pour y appliquer des formules simples et qu'on peut répéter, des noms de joueurs sur la Feuil2 en minuscule alors qu'ils sont en capitale sur Feuil1. En bref, tout pour simplifier la vie du formuliste (et non formaliste que ne suis pas).

J'ai supprimé les cellules fusionnées sur la Feuil2, remis les mêmes noms de joueurs sur Feuil2 que sur Feuil1, défini un nom (Ress) pour la plage =Feuil1!$A$12:$A$36, et je suis arrivé à la formule suivante:
Code:
=SI(ESTERREUR(SOMMEPROD(  (Ress=$A8) *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0))="B")  *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)-1)) ) + SOMMEPROD(  (DECALER(Ress;0;3)=$A8) *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)+3)="B")  *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)+2)) ));"";  SOMMEPROD(  (Ress=$A8) *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0))="B")  *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)-1)) ) + SOMMEPROD(  (DECALER(Ress;0;3)=$A8) *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)+3)="B")  *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)+2)) ))

Plus simple en Excel 2010:
Code:
=SIERREUR( SOMMEPROD(  (Ress=$A8) *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0))="B")  *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)-1)) ) + SOMMEPROD(  (DECALER(Ress;0;3)=$A8) *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)+3)="B")  *  (DECALER(Ress;0;EQUIV(B$6;Feuil1!$10:$10;0)+2)) );  "")
 

Pièces jointes

Re : Recuperation de donner sous condition

Re,

Je ne suis plus certain si Excel 2003 accepte toute une ligne ou toute une colonne dans la fonction EQUIV. Si ce n'est pas le cas remplacer Feuil1!$10:$10 par Feuil1!$A$10:$HZ$10 (par exemple)
 
Dernière édition:
Re : Recuperation de donner sous condition

Bonjour le fil, bonjour le forum,

Même avis que mes camarades sur tes tableaux bordéliques. Je ne m'en suis rendu compte qu'à la fin quand j'ai voulu tester le code sinon j'aurai fait comme Efgé, j'aurais laisser tomber car tu es un vrai goulamas (argot de Sète)
La proposition VBA :

Code:
Sub Macro1()
Dim O1 As Object 'déclare la variable O1 (Onglet 1)
Dim O2 As Object 'déclare la variable O2 (Onglet 2)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL1 As Range 'déclare la variable PL1 (PLage 1)
Dim PL2 As Range 'déclare la variable PL2 (PLage 2)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim R As Range 'déclare la variable R (Recherche)

Set O1 = Sheets("Feuil1") 'définit l'onglet O1
Set O2 = Sheets("Feuil2") 'définit l'onglet O2
'définit la plage PL1
Set PL1 = Application.Union(O1.Range("A12:A36"), O1.Range("D12:D36"), O1.Range("G12:G36"), O1.Range("J12:J36"))
DL = O2.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O2
Set PL2 = O2.Range("A8:B" & DL) 'définit la plage PL2
For Each CEL In PL1 'boucle sur toutes les cellules CEL de la plage PL
    If CEL.Offset(0, 2).Value = "B" Then 'condition : si la cellule décalée de deux colonnes à droite de CEL vaut "B"
        Set R = PL2.Find(CEL.Value, , xlValues, xlWhole) 'définit la recherche R
        'si il existe au moins une occurrence trouvée, récupère le stock
        'dans la celule décalée d'un colonne à droite de la première occurrence trouvée
        If Not R Is Nothing Then R.Offset(0, 1).Value = CEL.Offset(0, 1).Value
    End If 'fin de la condition
Next CEL 'prochaine cellule de la boucle
End Sub
 
Re : Recuperation de donner sous condition

Bonjour à tous,

Un exemple avec la conservation des cellules fusionnées. Une formule légèrement différente pour la deuxième cellule des colonnes à deux cellules pour chaque joueur (cellule à chercher dans le EQUIV) - avec toujours la remarque du message #4.
 

Pièces jointes

Re : Recuperation de donner sous condition

Bonjour à vous tous,

Tout d'abord je vous prie de bien vouloir m'excuser pour le fichier peu explicite que je vous mis en pièces jointes et mon intension était nullement de vous compliquer la vie .

Je voulait aussi vous remercier d'avoir prie le temps de vous être intéresser à ma demande .

mapomme merci pour la solution que m'avait transmise en regardant votre tableau je croie avoir compris le principe .

Juste une petite question dans la formule il y a ceci :" Feuil1 $10:$10 "

Cela correspond - t-il à l'ensemble des lignes est colonnes de la feuille1 où juste d'une plage élargie vu qu'il n'y a pas de lettre qui détermine les colonnes ?

Mercie encore à vous tous est promis plus de cellule fusionnées dans mais tableau .

a bientôt br44
 
Re : Recuperation de donner sous condition

Bonsoir br44,


La notation 8:12 correspond à la plage constituée de toutes les cellules comprises dans les lignes 8 à 12.
La notation 10:10 correspond donc à toutes les cellules de la ligne 10 (donc la ligne 10).

de même,

La notation C:H correspond à la plage constituée de toutes les cellules comprises dans les colonnes C à H.
La notation E:E correspond donc à toutes les cellules de la colonne E (donc la colonne E)

Les $ (référence absolue) n'étant présents que pour s'assurer qu'on désignera toujours cette ligne 10 où que l'on copie la formule.
 
Re : Recuperation de donner sous condition

Bonjour à tous ,

tout d'abord merci mapomme pour cette réponse très claire . je te prie de bien vouloir m'excuser pour la réponse tardive ,mais j'ai eu un impératif pro . A bientôt et merci encore
 
Re : Recuperation de donner sous condition

bonjour mapomme,

c'est normal déjà que je n'est pas été très claire des le départ , donc il est normal de remercier se qui vous aident . A plus et merci encore
 
- 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

Discussions similaires

Réponses
3
Affichages
326
  • Question Question
Microsoft 365 RECHERCHEV
Réponses
10
Affichages
554
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…