Rapport de message :*
 

Re: Tirage au sort

Titre du sujet : Re: Tirage au sort
par myDearFriend! le 06/08/2009 00:25:17

Bonsoir Serval et bienvenue sur mDF-XLpages.com
Bonsoir le Forum,

Tu trouveras ci-joint une tentative de réponse à ton problème par macro VBA.

J'ai utilisé le code suivant :
Option Explicit
'------------------------------------------------
' myDearFriend!  -  www.mdf-xlpages.com
' Date      : 06/08/2009
'------------------------------------------------
Sub CartAlea()
Dim CelDep As Range
Dim Cartes(1 To 44) As Byte
Dim C As Byte, L As Byte, V As Byte
   
    Set CelDep = Selection(1)
    If CelDep.Value = vbNullString Or CelDep.Row <> 2 Then
        MsgBox "Sélectionnez d'abord un mois !"
        Exit Sub
    End If
   
    Randomize
    For C = 1 To 2
        For L = 1 To 22
            Do
                V = 45 * Rnd + 1
                If Not IsError(Application.Match(V, Cartes, 0)) Then
                    V = 0
                End If
            Loop Until V > 0
            Cartes(L * C) = V
            CelDep.Offset(L, C - 1).Value = V
        Next L
    Next C
End Sub
Ce code est lié au bouton TIRAGE placé sur ta feuille excel dans le fichier joint.

Il convient de sélectionner d'abord le mois souhaité (cellule E2 par exemple), puis de cliquer simplement sur ce bouton TIRAGE.


Seule modification apportée à ton classeur d'origine : les cellules fusionnées sont toujours à éviter. Dans la pièce jointe, tu verras que j'ai remplacé cette fusion par un simple alignement "centré sur plusieurs colonnes" (si, si, c'est possible...) . L'effet visuel est le même, mais tu évites ainsi bien des soucis pour gérer VBA correctement...

Si tu éprouves quelques difficultés pour mettre en oeuvre cette solution sur ton classeur original, n'hésite pas à le dire. On t'expliquera.

Cordialement,