XL 2019 formule pour qu'un résultat de partie soit mis dans une cellule

berru76

XLDnaute Occasionnel
Bonjour je cherche une formule pour qu'un résultat de partie soit mis dans une cellule
Dans ce cas joueur cellule AJ4/ AA22/ résultat cellule AI4 13 et AM4 5 soit mis en K25 et M5
Fichier ci joint
Merci
 

Pièces jointes

  • 96.xlsx
    183.7 KB · Affichages: 20
Solution
Bonjour berru76,

Je n'ai pas compris où vous avez placé le code. J'ai l'impression que le code a été placé dans un fichier à part. Ce qui 'est pas correct. Voici une procédure à suivre :
  1. lancer Excel et ouvrir votre fichier .xlsx
  2. enregistrer ce fichier sous le même nom mais cette fois ci avec le type "Classeur Excel (prenant en charge les macros) (*.xlsm)". Ceci se fait au moyen de la commande "Enregistrer sous..." à partir d'Excel.
  3. Le fichier est créé avec le même nom mais avec l'extension ".xlsm"
A ce stade, vous être sous Excel et le seul fichier ouvert est celui que vous venez de créer (.xlsm). Vérifier qu'il n'y a que votre fichier *.xlsm qui soit ouvert.

Vous allez passer de l'environnement ordinaire d'Excel à...

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @berru76,

Si j'ai bien compris la demande mais rien n'est moins sûr :
Voir dans le fichier les formules des cellules K4 et M4 à recopier vers le bas.

En K4: =SIERREUR(INDEX(AI:AI;EQUIV(C4;AJ:AJ;0)-EST.IMPAIR(EQUIV(C4;AJ:AJ;0)));0)
En M4: =SIERREUR(INDEX(AM:AM;EQUIV(C4;AJ:AJ;0)-EST.IMPAIR(EQUIV(C4;AJ:AJ;0)));0)
 

Pièces jointes

  • berru76- report valeur- v1.xlsx
    208.5 KB · Affichages: 18
Dernière édition:

berru76

XLDnaute Occasionnel
Bonjour
excusez moi le score est individuel
les numéros 41 et 19 dans la colonne sont le nom des joueurs qui s'afficherons automatiquement a la place des numéros
nous imprimons les parties pour que les joueurs sachent avec qui et contre qui il jouent nous enregistrons les résultats mais le classement est individuel
Merci
 

berru76

XLDnaute Occasionnel
oui c'est ça pour eux le 5 est en K et le 13 en M
je vous joint une feuille ou il ne me reste plus que les résultats a faire
il n'y a que 43 joueurs sur celle ci mais je pense que pour la formule cela ne change rien
Merci
 

Pièces jointes

  • 43.xlsx
    160.2 KB · Affichages: 2

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @berru76,

Étant donné le nombre variable de joueurs dans une équipe associés à un score dans une plage de cellules fusionnées, j'abandonne l'idée de formule et passe à une fonction personnalisée en VBA.

La fonction est : ScoreDeParmi(Joueur, Plage , Qui ):
  • Joueur est le nom du joueur qu'on recherche
  • Plage est la plage de cellules du tableau de recherche (5 colonnes)
  • Qui est un nombre : si Qui = 1 alors on renvoie le score du joueur sinon on renvoie le score de l'adversaire
Voir les formules en K4 et M4 à tirer/copier vers le bas.

Le code de la fonction est dans module1:
VB:
Function ScoreDeParmi(Joueur, plage As Range, Qui As Long) As Variant
Dim t, i&
t = plage.Value
For i = 1 To UBound(t)
   t(i, 1) = plage.Cells(i, 1).MergeArea.Cells(1, 1).Value
   If t(i, 1) = "" Then t(i, 1) = ""
   t(i, 5) = plage.Cells(i, 5).MergeArea.Cells(1, 1).Value
   If t(i, 5) = "" Then t(i, 5) = ""
   If t(i, 2) = Joueur Then ScoreDeParmi = IIf(Qui = 1, t(i, 1), t(i, 5)): Exit Function
   If t(i, 4) = Joueur Then ScoreDeParmi = IIf(Qui = 1, t(i, 5), t(i, 1)): Exit Function
Next i
   ScoreDeParmi = CVErr(xlErrNA): Exit Function
End Function
 

Pièces jointes

  • berru76- report valeur- v2.xlsm
    189 KB · Affichages: 5

berru76

XLDnaute Occasionnel
Excusez moi plus tout jeune et pas trop de connaissance
cela semble être très bien mais pouvez vous m'expliquer ce que je dois faire pour le mettre dans le dossier excel
J'ai mis le texte dans module 1 de mon dossier
Dans le fichier berru76 J'ai essayé de mettre les formules

=ScoreDeParmi(C4;$AI$4:$AM$25;1)
=ScoreDeParmi(C4;$AI$4:$AM$25;2)

=ScoreDeParmi(C4;$AQ$4:$AU$25;1)
=ScoreDeParmi(C4;$AQ$4:$AU$25;2)

=ScoreDeParmi(C4;$AY$4:$BC$25;1)
=ScoreDeParmi(C4;$AY$4:$BC$25;2)

=ScoreDeParmi(C4;$BG$4:$BK$25;1)
=ScoreDeParmi(C4;$BG$4:$BK$25;2)

dans les autres résultats en copier coller mais dans les deux fichiers cela ne veut pas les accepter voyez vous mon erreur
ci joint le résultats lorsque je rentre le fichier dans mon dossier
sinon je peux vous mettre le dossier en cours pour mieux voir ou est l'erreur
Merci
 

Pièces jointes

  • Resultats dans mon dossier.xlsx
    162.1 KB · Affichages: 1
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour berru76,

Je n'ai pas compris où vous avez placé le code. J'ai l'impression que le code a été placé dans un fichier à part. Ce qui 'est pas correct. Voici une procédure à suivre :
  1. lancer Excel et ouvrir votre fichier .xlsx
  2. enregistrer ce fichier sous le même nom mais cette fois ci avec le type "Classeur Excel (prenant en charge les macros) (*.xlsm)". Ceci se fait au moyen de la commande "Enregistrer sous..." à partir d'Excel.
  3. Le fichier est créé avec le même nom mais avec l'extension ".xlsm"
A ce stade, vous être sous Excel et le seul fichier ouvert est celui que vous venez de créer (.xlsm). Vérifier qu'il n'y a que votre fichier *.xlsm qui soit ouvert.

Vous allez passer de l'environnement ordinaire d'Excel à l'environnement de VBA (Visual Basic for Application): Pour cela :
  • tapez simultanément sur les deux touches ALT + F11 (F11 est la touche de fonction F11)
  • La fenêtre de l'environnement VBA apparait
démo-1.gif

Vous devez avoir un panneau "VBA - VBAProject. Si ce n'est pas le cas, affichez ce panneau le via le menu Fenêtres / Explorateur de projets.

Nous allons créer un module pour y coller le code de la fonction personnalisée "ScoreDeParmi" :
  • via le menu Insérer / Module, on crée un nouveau module
  • dans le panneau Explorateur apparait le groupe des module avec un nouveau module
  • Double-cloquer sur le nouveau module -> la fenêtre d'édition du code du nouveau module s'ouvre
démo-2.gif

Dans la fenêtre de code du nouveau module :
  • coller le code de la fonction
  • puis refermer l'éditeur VBA
  • vous être à nouveau dans l'environnement Excel
  • revalidez vos formules
  • ça devrait fonctionner
  • n'oubliez pas de sauvegarde votre fichier modifié
démo-3.gif
 

Pièces jointes

  • démo-1.gif
    démo-1.gif
    74.9 KB · Affichages: 8
  • démo-2.gif
    démo-2.gif
    65.2 KB · Affichages: 11
  • démo-3.gif
    démo-3.gif
    98.7 KB · Affichages: 11

berru76

XLDnaute Occasionnel
Bonjour berru76,

Je n'ai pas compris où vous avez placé le code. J'ai l'impression que le code a été placé dans un fichier à part. Ce qui 'est pas correct. Voici une procédure à suivre :
  1. lancer Excel et ouvrir votre fichier .xlsx
  2. enregistrer ce fichier sous le même nom mais cette fois ci avec le type "Classeur Excel (prenant en charge les macros) (*.xlsm)". Ceci se fait au moyen de la commande "Enregistrer sous..." à partir d'Excel.
  3. Le fichier est créé avec le même nom mais avec l'extension ".xlsm"
A ce stade, vous être sous Excel et le seul fichier ouvert est celui que vous venez de créer (.xlsm). Vérifier qu'il n'y a que votre fichier *.xlsm qui soit ouvert.

Vous allez passer de l'environnement ordinaire d'Excel à l'environnement de VBA (Visual Basic for Application): Pour cela :
  • tapez simultanément sur les deux touches ALT + F11 (F11 est la touche de fonction F11)
  • La fenêtre de l'environnement VBA apparait
démo-1.gif

Vous devez avoir un panneau "VBA - VBAProject. Si ce n'est pas le cas, affichez ce panneau le via le menu Fenêtres / Explorateur de projets.

Nous allons créer un module pour y coller le code de la fonction personnalisée "ScoreDeParmi" :
  • via le menu Insérer / Module, on crée un nouveau module
  • dans le panneau Explorateur apparait le groupe des module avec un nouveau module
  • Double-cloquer sur le nouveau module -> la fenêtre d'édition du code du nouveau module s'ouvre
démo-2.gif

Dans la fenêtre de code du nouveau module :
  • coller le code de la fonction
  • puis refermer l'éditeur VBA
  • vous être à nouveau dans l'environnement Excel
  • revalidez vos formules
  • ça devrait fonctionner
  • n'oubliez pas de sauvegarde votre fichier modifié
démo-3.gif
 
Dernière édition:

berru76

XLDnaute Occasionnel
Bonjour
J ai suivi pas a pas votre tuto
dans la feuille inscription de mon dossier "doublettes" j ai crée un nouveau module nommée 93
puis j'ai été dans la feuille résultats 95
lorsque je met la formule
=ScoreDeParmi(C4;$AI$4:$AM$51;1)
=ScoreDeParmi(C4;$AI$4:$AM$51;2)
me dis : nom ambigu détecté ScoreDeParmi
#VALEUR!

Dans la feuille 96 j'ai mis pour les résultats de gauche la formule
En K4: =SIERREUR(INDEX(AI:AI;EQUIV(C4;AJ:AJ;0)-EST.IMPAIR(EQUIV(C4;AJ:AJ;0)));0)
En M4: =SIERREUR(INDEX(AM:AM;EQUIV(C4;AJ:AJ;0)-EST.IMPAIR(EQUIV(C4;AJ:AJ;0)));0)
et j ai complété les résultats de droite avec des =
cela fonctionne mais j'ai des feuilles a faire de 96 a 40
est ce que je peux vous joindre mon dossier doublettes pour voir ou est le problème
ou pouvez vous finir la formule sierreur
Merci
 

berru76

XLDnaute Occasionnel
Bonjour j' ai recommencé tout et je pense avoir trouve l'erreur
j ai bien réussi a afficher les résultats des 4 tours je vais pouvoir les copier sur chaque feuille
seul soucis par rapport a la formule sierreur c'est que si on a pas rentre un scores
### s'affiche je vous joint une capture d’écran
Merci
 

Pièces jointes

  • Ecran lorsque pas de resultats.PNG
    Ecran lorsque pas de resultats.PNG
    104.8 KB · Affichages: 7
  • Resultas sierreur.PNG
    Resultas sierreur.PNG
    103.5 KB · Affichages: 7
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 316
Messages
2 087 182
Membres
103 491
dernier inscrit
bilg1