Copie et transfert de la valeur des cellules d'un tableau vers un autre tableau

Anonyme
2018-12-21T14:09:10+00:00

Bonjour,

J’ai transformé les grilles des pages « Concours » et « Finale » en tableau. Cela m’amène une plus grande souplesse d’utilisation. Maintenant, il me suffit de rentrer un numéro dans la cellule de la colonne « B » libre suivante, pour créer une ligne tout en gardant toute la programmation qui va avec. Exemple : dépassement des valeurs, le match nul interdit …

La ligne 5 contenant les titres des colonnes du tableau est masquée. Les colonnes « R, S, T, U et V » aussi sont aussi masquées.

Dans l’exemple, à l’issue des 3 parties, un classement a été effectué par l’intermédiaire du bouton « Classement ». Ensuite, les valeurs des cellules « B6 : C13 » sont transférées dans les cellules « J7 : K14 » de la feuille « Finale » par le bouton « Qualifié Finale ».

Il reste à copier le reste des équipes(N° et Equipes). La liste démarre à partir de la neuvième ligne du tableau (quatorzième ligne), ça c’est le point de départ qui ne change jamais, jusqu’à C « aléatoire ». Aujourd’hui, il y a 16 équipes, demain, il y aura peut-être 40 …et ça c’est la valeur inconnue.

Ma question est de savoir comment copier la valeur des cellules des colonnes « B et C » de la feuille « Concours » puis de les coller dans les cellules des colonnes « B et C » de la feuille « Repechage et trier la colonne « B » en ordre croissant.

Je pourrai faire manuellement un copier/coller et le transférer dans la feuille « Repechage » dans la cellule « B6 » et classer la colonne « B ».

Maintenant, est-ce qu’un code pourrait remplacer cette dernière action ?

Merci pour ton aide.

Cordialement

https://1drv.ms/x/s!Avq7hyE1Ux3Mkn61aCQQYrcJBX5h

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

110 réponses

Trier par : Les plus anciens
  1. Anonyme
    2018-12-27T09:37:20+00:00

    bonjour Daniel,

    avec le dernier mail, j'ai ajouté des lignes au tableau1. En appuyant sur le bouton "Repechage" de la feuille "Concours", on retrouve le même nombre de ligne copiées. J'ai réfléchis et je crois t'avoir dis une bêtise, à savoir, qu'on avait une valeur connue (8) et une inconnue (nombre de lignes à copiées indéterminées).

    Je crois que cette inconnue ne l'est pas vraiment. En effet, à la fin des inscriptions, je sais exactement le nombre d'équipes inscrites. Ce sont les nombres inscrits en colonne "B". Maintenant, si je mets en "U2 = 20" (c'est le nombre total d'équipes inscrites sur ce tableau maintenant), et qu'en "V2"= "U2"- 8, j'obtiens le nombre de lignes à copiées dans la feuille "Repechage".

    Et comme cette valeur n'est pas figée, peut-être faire une variable du style :

         Dim nbLigneCopiees as Integer

         nbLigneCopiees = Range("V2")

    Comme ça, à chaque nouveau concours, je rentrerai le nombre d'équipes en "U2". Mais ça, cela n'engage que moi. Le pro, c'est toi.

    Tout ça pour dire que la belle inconnue ne l'était pas.

    Merci pour ton aide

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2018-12-27T11:29:30+00:00

    Bonjour,

    Sub test()

    Dim C As Range, Plage As Range, DL As Long

          With Sheets("Concours")

                Set Plage = .Range("B14", .Cells(.Rows.Count, 2).End(xlUp)).Resize(, 21)

          End With

          Application.EnableEvents = False

          With Sheets("Repechage")

                      .Unprotect

                Plage.Copy .[B6]

                      DL = .Cells(.Rows.Count, 2).End(xlUp).Row

                      .Range("B6", .Cells(DL, 3)).Sort .[B6], xlAscending, Header:=xlNo

                      .Range("B6", .Cells(DL, 2)).HorizontalAlignment = xlCenter

    '                  .Range("B6", .Cells(DL, 2)).Interior.Color = 13434879

                      .Range("D6", .Cells(DL, "Q")).HorizontalAlignment = xlCenter

                      .Range("D6", .Cells(DL, "U")).ClearContents

                      .Range("M6", .Cells(DL, "V")).Locked = True

                      .Range("C6", .Cells(DL, "Q")).Interior.ColorIndex = xlNone

                      With .Range("B6", .Cells(DL, "Q"))

                        .Borders.LineStyle = xlContinuous

                        .FormatConditions.Delete

                        .VerticalAlignment = xlCenter

                        .Locked = False

                      End With

                      With Union(.Range("D6", .Cells(DL, 4)), .Range("G6", .Cells(DL, 7)), .Range("J6", .Cells(DL, 10)))

                        .FormatConditions.Delete

                        .FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _

                            Formula1:="="""""

                        .FormatConditions(.FormatConditions.Count).SetFirstPriority

                        .FormatConditions(1).Interior.ColorIndex = 40

                        .FormatConditions(1).StopIfTrue = False

                      End With

                      'EF ; HI ; KL

                      With Union(.Range("E6", .Cells(DL, "F")), .Range("H6", .Cells(DL, "I")), .Range("K6", .Cells(DL, "L")))

                        .FormatConditions.Delete

                        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _

                            Formula1:="="""""

                        .FormatConditions(.FormatConditions.Count).SetFirstPriority

                        .FormatConditions(1).Interior.ColorIndex = 24

                        .FormatConditions(1).StopIfTrue = False

                      End With

                      .Protect

          End With

          Application.EnableEvents = True

     End Sub

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2018-12-27T11:33:28+00:00

    Je lis ton message juste après t'avoir répondu. Regarde si la macro fonctionne  correctement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2018-12-27T13:06:15+00:00

    il y a ces ligne de code qui sont en rouge :

                        .FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _

                            Formula1:="="""""

    Elles sont utilisées 2 fois

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. DanielCo 107.7K Points de réputation
    2018-12-27T13:46:42+00:00

    J'ai dû faire une erreur en copiant le code. Voici le fichier :

    https://1drv.ms/x/s!AqRP0RQrhNWW_CbOYEhqXBwBVDhu

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire