afficher une valeur lors de sa saisie dans une autre cellule

largoj

XLDnaute Nouveau
Bonjour,

Je suis prof EPS et je saisis des résultats de matchs de mes élèves sur un tableau.
Je souhaiterais savoir s'il serait possible (en utilisant une fonction ou en VBA) d'afficher dans une cellule différente le résultat saisi dans une première cellule. C'est pour un gain de temps.. cela me permettrait de saisir 2 valeurs en même temps.
Si quelqu’un a une solution je serait très reconnaissant. Je joints un fichier pour que cela soit plus claire.

D'avance merci.
 

Pièces jointes

  • enregistrement matchs.xlsx
    12.2 KB · Affichages: 50
  • enregistrement matchs.xlsx
    12.2 KB · Affichages: 50
  • enregistrement matchs.xlsx
    12.2 KB · Affichages: 53

bbb38

XLDnaute Accro
Re : afficher une valeur lors de sa saisie dans une autre cellule

Bonjour largoj, le forum,
Une idée à modifier, voir à simplifier (exemple : en supprimant l’affichage des scores dans l’UserForm), et certainement à améliorer.
J’ai supposé que les adversaires étaient mentionnés directement sur la feuille.
Je n’ai réalise le code que pour les scores du match 1.
Cordialement,
Bernard
 

Pièces jointes

  • largoj_enregistrement matchs.xlsm
    35.4 KB · Affichages: 37

job75

XLDnaute Barbatruc
Re : afficher une valeur lors de sa saisie dans une autre cellule

Bonjour largoj, bbb38, le forum,

@ bbb38 : un UserForm pour une chose aussi simple c'est vraiment très exagéré.

Voyez le fichier joint avec ces macros dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 14 Then Exit Sub
Dim noms As Range, L As Long
Set noms = Range("A14", [A65536].End(xlUp))
L = Target.Row - noms.Row + 1
Copie noms, Intersect(noms.EntireRow, [B:D]), L
Copie noms, Intersect(noms.EntireRow, [F:H]), L
End Sub

Sub Copie(noms As Range, plage As Range, L As Long)
Dim i As Variant
Application.EnableEvents = False
i = Application.Match(noms(L), plage.Columns(2), 0)
If IsNumeric(i) Then
  plage(i, 1) = plage(L, 3)
  plage(i, 3) = plage(L, 1)
End If
Application.EnableEvents = True
End Sub
Edit : le test Or Target.Count > 1 en 2ème ligne était inutile.

A+
 

Pièces jointes

  • enregistrement matchs(1).xls
    53.5 KB · Affichages: 47
Dernière édition:

largoj

XLDnaute Nouveau
Re : afficher une valeur lors de sa saisie dans une autre cellule

Bonjour bbb38

J'ai testé le travail que tu m'as envoyé, mais je n'arrive pas au résultat attendu.
Lorsque je je sélectionne un adversaire de A, (par exemple H), son nom et son score ne s'affichent pas sur sa ligne. Cela est valable pour les deux tableaux de matchs. Je me suis peut être mal exprimé dans ce que je souhaitais avoir.

Merci encore et à +


JML
 

bbb38

XLDnaute Accro
Re : afficher une valeur lors de sa saisie dans une autre cellule

Bonsoir largoj, le forum,
Une nouvelle version, en espérant avoir compris ta demande (mes neurones n’ont plus 20 ans). J’ai mis des explications sur la feuille. Pour les matchs 2, les adversaires sont-ils identiques aux matchs 1 (principe aller retour) ?
Cordialement,
Bernard

P.S. Bonsoir job75 :
@ bbb38 : un UserForm pour une chose aussi simple c'est vraiment très exagéré.
Parce que je n’ai pas tes compétences. Je te remercie pour ton code. Je vais essayer de le comprendre pour m’améliorer. En cas de problème, je me permettrai de te contacter. J’utilise beaucoup les boucles, alors qu’il serait préférable d’utiliser les variables avec Range - et – Set, comme dans ton code : Dim noms As Range, L As Long - Set noms = Range("A14", [A65536].End(xlUp))).
 

Pièces jointes

  • largoj_enregistrement matchs v1.xlsm
    40.1 KB · Affichages: 26

largoj

XLDnaute Nouveau
Re : afficher une valeur lors de sa saisie dans une autre cellule

Bonjour bbb38,

Tout d'abord merci pour le travail réalisé.
J'ai constaté cependant un problème lorsque je désire enregistrer le résultat d'un match à partir du tableau "saisie des scores" quand je clique dans donner le résultat du match sur victoire, un message d'erreur apparait.
Je ne suis pas un spécialiste mais serait-il possible de réaliser les saisies des 2 matchs avec le tableau "saisie score" apparent sur la feuille (les noms et score apparaitraient dans le tableau sous forme de liste déroulante)
Dans ce cas peut être on peut se passer du premier tableau.
Pour moi cela serait plus commode et rapide quand je dois saisir les scores de plusieurs élèves à la suite. Les points viendraient s'ajouter automatiquement dans une colonne. ( je joints un montage tel que j'aimerai que ce la apparaisse)
Pour répondre à ta question concernant les matchs, les élèves font 2 matchs contre 2 adversaires différents. (il s'agit en fait d'un mini tournoi destiné à les classer par la suite)
Je comprends que cela entraine certainement encore beaucoup de travail, alors si c'est le cas on peut arrêter là.

Encore merci JML
 

Pièces jointes

  • enregistrement matchs.xlsx
    47.2 KB · Affichages: 31
  • enregistrement matchs.xlsx
    47.2 KB · Affichages: 29
  • enregistrement matchs.xlsx
    47.2 KB · Affichages: 36

job75

XLDnaute Barbatruc
Re : afficher une valeur lors de sa saisie dans une autre cellule

Bonjour largoj, bbb38, le forum,

En voyage, sur un ordi sans Excel.

Dans le fichier de mon post #3 remplacez le code de la feuille par celui-ci :


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row < 14 Then Exit Sub
Dim noms As Range, L As Long
Set noms = Range("A14", [A65536].End(xlUp))
L = Target.Row - noms.Row + 1
Copie noms, Intersect(noms.EntireRow, [B:D]), L
Copie noms, Intersect(noms.EntireRow, [F:H]), L
End Sub

Sub Copie(noms As Range, plage As Range, L As Long)
Dim i As Variant
Application.EnableEvents = False
i = Application.Match(plage(L, 2), noms, 0)
If IsNumeric(i) Then
  plage(i, 2) = noms(L)
  plage(i, 1) = plage(L, 3)
  plage(i, 3) = plage(L, 1)
End If
Application.EnableEvents = True
End Sub
Maintenant le nom de l'adversaire est copié.

Edit : je ne copiais pas le bon nom, j'ai corrigé...

A+
 
Dernière édition:

largoj

XLDnaute Nouveau
Re : afficher une valeur lors de sa saisie dans une autre cellule

Bonsoir bbb38

C'est ok cela marche tout à fait bien. Nous verrons plus tard comment est il possible de faire la même opération pour le scd match.

Merci, cordialement,

JML
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p