XL 2019 Transfert de données dans une autre page

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

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

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+
 
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

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
 
- 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
5
Affichages
523
Retour