IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Garder le résultat d'un tirage sur une autre ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 211
    Par défaut
    Bonsoir le forum,

    j'ouvre une noucelle discussion suite à la participation d'un loto cet après midi.
    Voici un code qui me fait un tirage aléatoire pour un loto et qui me m'affiche le dernier N° tiré en AB4, ce que je voudrais ajouter, c'est sur une ligne à partir de AN4, c'est qu'il me recopie les N° tiré et que lorsqu'on réinitialise, le prochain Tirage se mettent lui en dessous , c'est à dire en AN5 etc..
    merci de votre aide, je vous jopins le code tirer et le code Initialiser
    Jacky
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub tirer()
    Dim i As Integer, j As Integer
       If [M2].Value = 90 Then Exit Sub
       Do
          i = Int(10 * Rnd): j = Int(10 * Rnd)
       Loop While IsEmpty([B4].Offset(i, j))
       [M2].Value = 1 + [M2].Value
       With [O4].Offset(i, j)
            .Value = [B4].Offset(i, j).Value
            .Font.ColorIndex = 2
            .Interior.ColorIndex = 1
        End With
       [AB4].End(xlUp).Offset(1, 0).Value = [B4].Offset(i, j).Value
       [B4].Offset(i, j) = Empty
    End Sub
    Sub initialiser()
    Dim i As Integer, j As Integer
       Randomize
       Application.Calculation = xlManual
       Range("B4:K12,M2,O4:X12,AB4:AK12").ClearContents
       For i = 0 To 8
          For j = 0 To 9
             [B4].Offset(i, j) = 10 * i + j + 1
          Next j
       Next i
       Application.Calculation = xlAutomatic
    End Sub
    re,

    j'ai oublié de dire que ce code a été fait par Mercatog que je remercie particulièrement car il m'aide depuis le début.
    Merci
    jacky

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Option Explicit
    Dim LigTir As Integer
    Sub tirer()
    Dim i As Integer, j As Integer
    Dim ColTir As Integer
    ColTir = Cells(LigTir + 1, Columns.Count).End(xlToLeft).Column
    If ColTir < 39 Then ColTir = 39
     
     
    If [M2].Value = 90 Then Exit Sub
    Do
        Randomize
        i = Int(10 * Rnd): j = Int(11 * Rnd)
    Loop While IsEmpty([B4].Offset(i, j))
    [M2].Value = 1 + [M2].Value
    With [O4].Offset(i, j)
        .Value = [B4].Offset(i, j).Value
        .Font.ColorIndex = 2
        .Interior.ColorIndex = 1
    End With
    Cells(LigTir + 1, ColTir + 1) = [B4].Offset(i, j).Value
    [B4].Offset(i, j) = Empty
    End Sub
    Sub initialiser()
    Dim i As Integer, j As Integer
    Range("B4:K12,M2,O4:X12,AB4:AK12").ClearContents
    For i = 0 To 8
        For j = 0 To 9
            [B4].Offset(i, j) = 10 * i + j + 1
        Next j
    Next i
    LigTir = Cells(Rows.Count, 40).End(xlUp).Row
    If LigTir < 3 Then LigTir = 3
     
    End Sub

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 211
    Par défaut
    re,

    c'est prseque cela, j'aimerais que les N° commencent en AN4 (la ils commencent en AN1) et j'aurais aussi aimé que le dernier N° sorti s'affiche toujours en AB4(la il ne s'affiche plus).
    merci
    jacky

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ils commencent en ligne 4
    si on sens inverse et on mets par exemple 10 séries de 13 tirages
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Dim LigTir As Integer
    Sub tirer()
    Dim i As Integer, j As Integer, ColTir As Integer
    Dim k As Byte, m As Byte
    For m = 1 To 10
        initialiser
        For k = 1 To 14
            If LigTir < 3 Then LigTir = 3
            ColTir = Cells(LigTir + 1, Columns.Count).End(xlToLeft).Column
            If ColTir < 39 Then ColTir = 39
            If [M2].Value = 90 Then Exit Sub
            Do
                Randomize
                i = Int(10 * Rnd): j = Int(11 * Rnd)
            Loop While IsEmpty([B4].Offset(i, j))
            [M2].Value = 1 + [M2].Value
            With [O4].Offset(i, j)
                .Value = [B4].Offset(i, j).Value
                .Font.ColorIndex = 2
                .Interior.ColorIndex = 1
            End With
            Cells(LigTir + 1, ColTir + 2 - k) = [B4].Offset(i, j).Value
            [B4].Offset(i, j) = Empty
        Next k
    Next m
    End Sub
    Sub initialiser()
    Dim i As Integer, j As Integer
    Range("B4:K12,M2,O4:X12").ClearContents
    For i = 0 To 8
        For j = 0 To 9
            [B4].Offset(i, j) = 10 * i + j + 1
        Next j
    Next i
    LigTir = Cells(Rows.Count, 40).End(xlUp).Row
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 211
    Par défaut
    re,

    alors vba s'affole,il me fait tous les tirage sans s'arrêter et s'arr^tent lorsqu'il en a fait 10
    .
    Mais le code d'avant commence sur la ligne 1, je l'efface et ensuite, commence sur la ligne 4 et je voudrais garder aussi le dernier N° tiré à chaque fois en AB4
    merci
    jacky

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Rien ne s'affole
    puisque tu n'écris pas clairement

    j'ai bien écris (10 séries de 13 n° tirés)
    Si tu explicite clairement ce que tu veux
    combien de numéros tirés à chaque fois
    combien de séries
    etc

Discussions similaires

  1. copie du résultat d'un filtre sur une autre feuille
    Par totogabi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2015, 16h39
  2. Réponses: 6
    Dernier message: 31/05/2010, 16h28
  3. Résultat de 2 requêtes sur une même ligne
    Par cgone dans le forum SQL
    Réponses: 1
    Dernier message: 20/04/2007, 17h17
  4. Garder la proportion d un dbgrid sur une form
    Par neuneu1 dans le forum Delphi
    Réponses: 5
    Dernier message: 13/04/2007, 15h44
  5. Réponses: 5
    Dernier message: 26/02/2007, 01h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo