XL 2019 Transfert de données dans une autre page

Caninge

XLDnaute Accro
Bonjour,

Jacky67 m’a suggéré de faire un autre post.

Dans mon fichier il y a les feuilles SAISIES_RESULTATS et PARTIES.
Serait-il possible d'envoyer les données de la feuille PARTIES dans la feuille SAISIES_RESULTATS aux bons endroits.
Je n’en doute pas !
Comme dans mon exemple en pièce jointe.

Il faut bien entendu de la macro mais je ne sais pas faire. Pouvez-vous m'aider ?

Merci.

CANINGE
 

Pièces jointes

  • Scrabble - Tournoi de Scrabble V5.xlsm
    154 KB · Affichages: 4

Caninge

XLDnaute Accro
Bonjour job75,
vous voulez dire le numéro de table :
par exemple dans la feuille PARTIES le numéro de Pourtat Michel est le numéro entre parenthèse c'est à dire le 1. Que l'on retrouve dans la feuille SAISIES_RESULTATS dans la cellule J22 de sa fiche.
A+
 

Caninge

XLDnaute Accro
Bonjour Job75,
oups ! sans doute la chaleur j'ai mis n'importe quoi !
Je corrige :
Exemple le numéro de table de Michel Pourtat

Feuille BASE DE DONNEES ET INSCRIPTIONS Cellule H4
Feuille PARTIES Cellule E5
Feuille SAISIE_RESULTATS Cellule C6

J'ai mis un nouveau fichier

Merci

CANINGE
 

Pièces jointes

  • Scrabble - Tournoi de Scrabble V6.xlsm
    147.5 KB · Affichages: 1

job75

XLDnaute Barbatruc
Bonjour Canige,

Voyez le fichier joint et cette macro dans le code de la feuille "Saisie_Résultats" :
VB:
Private Sub Worksheet_Activate()
Dim d As Object, c As Range, j%, partie%, i&, s
Application.ScreenUpdating = False
'---repérage et effacement des tableaux---
Set d = CreateObject("Scripting.Dictionary")
For Each c In UsedRange
    If c = "Nom" Then
        d(c(5, 2).Value) = c.Address 'mémorise l'adresse de la 1ère cellule
        Union(c(1, 2).Resize(3), c(8, 2).Resize(4, 3)) = ""
    End If
Next c
'---remplissage des tableaux---
With Sheets("Parties")
    For j = 2 To 23 Step 7
        partie = partie + 1
        For i = 4 To .Cells(.Rows.Count, j).End(xlUp).Row
            If d.exists(.Cells(i, j).Value) Then 'joueur de gauche
                Set c = Range(d(.Cells(i, j).Value))
                s = Split(.Cells(i, j + 1))
                c(1, 2) = s(0) 'nom
                c(2, 2) = s(1) 'prénom
                c(3, 2) = Application.VLookup(c(5, 2), Sheets("Classement").Columns("C:E"), 3, 0) 'ville
                c(7 + partie, 2) = .Cells(i, j + 3)
                c(7 + partie, 3) = .Cells(i, j + 2)
                c(7 + partie, 4) = .Cells(i, j + 5)
            End If
            If d.exists(.Cells(i, j + 3).Value) Then 'joueur de droite
                Set c = Range(d(.Cells(i, j + 3).Value))
                s = Split(.Cells(i, j + 4))
                c(1, 2) = s(0) 'nom
                c(2, 2) = s(1) 'prénom
                c(3, 2) = Application.VLookup(c(5, 2), Sheets("Classement").Columns("C:E"), 3, 0) 'ville
                c(7 + partie, 2) = .Cells(i, j)
                c(7 + partie, 3) = .Cells(i, j + 5)
                c(7 + partie, 4) = .Cells(i, j + 2)
            End If
    Next i, j
End With
End Sub
Elle se déclenche quand on active la feuille.

A+
 

Pièces jointes

  • Scrabble - Tournoi de Scrabble V6.xlsm
    160.5 KB · Affichages: 8

Caninge

XLDnaute Accro
Bonjour Job75,

j'ai fais plusieurs essais avec des tournois avec des nombres de joueurs différents.
Ca fonctionne merveilleusement bien. Je vais pouvoir faire mon tournoi de scrabble avec
un bon fichier EXCEL. Je voudrais trop comprendre toutes ces procédures VBA. Mais bon je n'ai jamais fait d'anglais. Je suis déjà limité.

Merci JOB75, c'est bien sympa de donner un coup de main.

A la prochaine.
CANINGE
 

Discussions similaires

Réponses
7
Affichages
348

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 207
Membres
103 157
dernier inscrit
youma