Affichage inversé

MARGAR

XLDnaute Junior
Bonjour le forum,

J'ai un petit souci avec mon fichier.
J'aimerai que mon affichage reste logique mais après plusieurs essais, je n'y parviens toujours pas.

Je vous joins 2 copies d'écrans et le code qui pause problème.

Merci d'avance

Cordialement

Margar

Voici le code :
Code:
For I = 1 To rencontre Step 1
        For J = 1 To NbJ Step 1
            If bigtablo(J, L + 16) = I Then
                If Sheets("P" & L).Cells(3 + I, 1).Value = "" Then
                    Sheets("P" & L).Cells(3 + I, 1).Value = bigtablo(J, 1)
                    numequipe = bigtablo(J, L + 1)
                Else
                    If bigtablo(J, L + 1) = numequipe Then
                        If Sheets("P" & L).Cells(3 + I, 2).Value = "" Then
                            Sheets("P" & L).Cells(3 + I, 2).Value = bigtablo(J, 1)
                        Else
                            If Sheets("P" & L).Cells(3 + I, 3).Value = "" Then
                                Sheets("P" & L).Cells(3 + I, 3).Value = bigtablo(J, 1)
                            End If
                        End If
                    Else
                        If Sheets("P" & L).Cells(3 + I, 4).Value = "" Then
                            Sheets("P" & L).Cells(3 + I, 4).Value = bigtablo(J, 1)
                        Else
                            If Sheets("P" & L).Cells(3 + I, 5).Value = "" Then
                                Sheets("P" & L).Cells(3 + I, 5).Value = bigtablo(J, 1)
                            Else
                                Sheets("P" & L).Cells(3 + I, 6).Value = bigtablo(J, 1)
                            End If
                        End If
                    End If
                End If
            End If
            
        Next J
    Next I
 

Pièces jointes

  • Affichage  OK.PNG
    Affichage OK.PNG
    26.1 KB · Affichages: 118
  • Affichage pas OK.PNG
    Affichage pas OK.PNG
    25.4 KB · Affichages: 116

MARGAR

XLDnaute Junior
Re : Affichage inversé

Bonjour Bebere, Dormeur 74, le forum,

Je vous joins le fichier.

Bonne journée

Margar
 

Pièces jointes

  • TOURNOI PVA EN 5 MANCHES.zip
    621.8 KB · Affichages: 91
  • TOURNOI PVA EN 5 MANCHES.zip
    621.8 KB · Affichages: 87
  • TOURNOI PVA EN 5 MANCHES.zip
    621.8 KB · Affichages: 87

Bebere

XLDnaute Barbatruc
Re : Affichage inversé

même question que Dormeur
ton programme est bien fait
pour mettre bigtablo dans saisie
à mettre avant la ligne For L = 1 To NbManche (pas besoin de répéter l'action)
les step 1 ne sont pas utiles
Code:
With Sheets("Saisie")
For L = 1 To UBound(bigtablo, 1)
For c = 2 To UBound(bigtablo, 2)
.Cells(L + 2, c + 2).Value = bigtablo(L, c)
Next c
Next L
End With
 

MARGAR

XLDnaute Junior
Re : Affichage inversé

@ Dormeur,

Parce que lorsque je clique sur Manche 1,2,3,4,5, l'affichage n'est pas correct, logiquement,cela devrait être,
d'abord les Triplettes et ensuite les Doublettes.
Voir Miniatures dans 1er message

@Bebere,

Lorsque j'applique ton code, il y a une erreur de compil, variable non définie : c

Cordialement

Margar
 

MARGAR

XLDnaute Junior
Re : Affichage inversé

je l'ai déclaré et je n'ai plus l'erreur de compil, mais le problème d'affichage est tjs présent.

En fait, cela se passe lorsqu'il y a un Nombre Impair de Triplettes et Doublettes.

Par ex : pour 25 Joueurs inscrits, il y a 5 Triplettes et 5 Doublettes, donc, l'affichage devrait être :

Equipe 1 Equipe 2

Triplette contre Triplette
Triplette Triplette
Triplette Doublette
Doublette Doublette
Doublette Doublette
 

Dormeur74

XLDnaute Occasionnel
Re : Affichage inversé

MARGAR a bien défini la déclaration obligatoire des variables (Option Explicit).

Chez moi, lorsque je clique sur le bouton "Manche 1" (2,3,4 et 5) de la feuille d'accueil (Menu) j'ai bien les triplettes en tête et les doublettes à la suite dans mes tableaux.

Juste noté un truc assez vicieux en VBA : n'utilise pas directement les foncions Right() et Left(). Fais-les précéder de VBA. Ce qui va donner (exemple de ton code) :
Code:
LaDate = WorksheetFunction.Match(Left(VBA.Right(Sheets("Classement").Range("A1"), 21), 16), ActiveSheet.Range("O1:AG1"), 0)

Autre remarque : tu utilises Goto à deux reprises dans ton code pour gérer des événements : ce n'est pas pire que Resume Next, mais c'est franchement à proscrire. A n'utiliser, à mon avis, que dans la gestion des erreurs (On Error Goto GESTERREUR par exemple). Avec au moins un Err.Number et un Err.Description après l'étiquette.
 

Bebere

XLDnaute Barbatruc
Re : Affichage inversé

Margar si tu parles de l'affichage UserFormManche
essaye ce code
Code:
Private Sub UserForm_initialize()
    Dim J As Long, Rng As Range, Rng1 As Range
    Dim I As Integer, x As Integer, x1 As Integer
    Dim Indice As Integer

    UserFormManche.Label2.Caption = nomanche & " Manche"
    UserFormManche.LabelDateTournoi.Caption = Right(Sheets("Classement").Range("A1").Value, 22)
    With Sheets("P" & numanche)

        ' Inscription des noms
        ' Le premier label nom est le 10
        Indice = 10
        For J = 4 To 12
        Set Rng = .Range("A" & J & ":C" & J): Set Rng1 = .Range("D" & J & ":F" & J)
        x = Application.CountA(Rng): x1 = Application.CountA(Rng1)
        If x = x1 Then
            For I = 1 To 6
                Me("Label" & Indice).Caption = .Cells(J, I).Value
                Indice = Indice + 1
            Next I
        ElseIf x1 > x Then
             For I = 4 To 6
                Me("Label" & Indice).Caption = .Cells(J, I).Value
                Indice = Indice + 1
            Next I
                      For I = 1 To 3
                Me("Label" & Indice).Caption = .Cells(J, I).Value
                Indice = Indice + 1
            Next I
  
        End If
            Me("Label" & 96 + J) = .Range("I" & J)
            Me("TextBoxResult" & J - 3) = .Range("G" & J)
            Me("TextBoxResult" & J + 6) = .Range("H" & J)
        Next J

        ' Inscription des scores
        ' Inscription des terrains
        ' Le premier label terrain est le 100
        '    Indice = 100
        '    For J = 8 To 10
        '     Me("Label" & Indice) = .Range("I" & J)
        '      Indice = Indice + 1
        '      ' Pour les points équipe 1 les Textbox vont de 1 à 9
        '      UserFormManche.Controls("TextBoxResult" & J - 3) = .Range("G" & J)
        '      ' Pour les points équipe 2 les Textbox vont de 10 à 18
        '      UserFormManche.Controls("TextBoxResult" & J + 6) = .Range("H" & J)
        '
        '    Next J

    End With
End Sub
si tu as un problème avec une fonction vba,il faut aller voir dans outils,références
si MANQUANT: est présent il faut décocher la case
 

Dormeur74

XLDnaute Occasionnel
Re : Affichage inversé

Je crois que tu as vu juste Bebere. A 25 joueurs, on avait 2 triplettes contre 2 triplettes à gauche (Equipe 1) au lieu de 3 triplettes contre trois triplettes. Avec ta modif, on a plus de triplettes contre triplettes à gauche. Fallait comprendre !:rolleyes:

#MARGAR
Je confirme que j'ai une erreur dans les traitement des chaînes Right () et Left(). Contrairement à VB 6.0, il est prudent d'écrire VBA.Right(), VBA.Left() et VBA.Mid().
 

MARGAR

XLDnaute Junior
Re : Affichage inversé

Bonjour Bebere, Dormeur, le forum

J'ai bien appliqué ton dernier code et il y a tjs des problèmes d'affichage dans les manches 2 et 5.
Ci-jointes les copies d'écran.

Amicalement

Margar
 

Pièces jointes

  • AFFICHAGE 1ERE MANCHE OK.jpg
    AFFICHAGE 1ERE MANCHE OK.jpg
    66.5 KB · Affichages: 79
  • AFFICHAGE 2EME MANCHE PAS OK.jpg
    AFFICHAGE 2EME MANCHE PAS OK.jpg
    62.2 KB · Affichages: 79
  • AFFICHAGE 4EME MANCHE OK.jpg
    AFFICHAGE 4EME MANCHE OK.jpg
    65.9 KB · Affichages: 81
  • AFFICHAGE 5EME MANCHE PAS OK.jpg
    AFFICHAGE 5EME MANCHE PAS OK.jpg
    66.1 KB · Affichages: 86

Statistiques des forums

Discussions
312 503
Messages
2 089 062
Membres
104 014
dernier inscrit
Aurélie MONTEIL