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

VB.NET Discussion :

Générer Nombre Aléatoire sur Excel à chaque entrée


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Générer Nombre Aléatoire sur Excel à chaque entrée
    Bonjour,

    J'organise un évènement pour lequel les gens doivent s'inscrire en ligne.

    J'utilise Excel pour encoder chaque participant qui s'inscrit avec des colonnes simples (nom, prénom, adresse, etc...).

    J'aimerais ajouter une colonne supplémentaire qui génère un nombre unique à 12 chiffres aléatoire à chaque nouvelle entrée. Donc chaque fois que j'appuis sur "enter" pour aller à la ligne, automatiquement dans la case en question de la nouvelle ligne, un nombre apparaît et n'est plus redoublé dans la colonne afin d'être unique.

    Existe-t-il une fonction pour cela ?

    Merci pour votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Une piste, dans le module de la feuille et sur l'évènement "Change". Dans mon exemple, la colonne des codes est la colonne F et les actions d'ajout des codes se fait sur la colonne E, c'est à dire que chaque fois que tu change la valeur en colonne E, un code unique est inscrit en colonne F sur la même ligne. Il te faut tester et adapter ainsi qu'insérer les divers contrôles de saisies si nécessaire :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
        Dim Plage As Range
     
        'action seulement en colonne E
        If Not Intersect(Target, Columns(5)) Is Nothing Then
     
            'les codes sont en colonne F (6 ème) à partir de la ligne 2
            With ActiveSheet
     
                Set Plage = .Range(.Cells(2, 6), .Cells(.Rows.Count, 6).End(xlUp))
     
            End With
     
            'inscrit un nombre aléatoire de 12 chiffres
            Target.Offset(0, 1) = NbAleatoire(Plage)
     
        End If
     
    End Sub
     
    Function NbAleatoire(Plage As Range) As Double
     
        Dim Dico As Object
        Dim Result As Double
        Dim I As Long
     
        Set Dico = CreateObject("Scripting.Dictionary")
     
        'récupère les codes déjà existants dans la plage
        'si 1 code est en doublon, affiche une boite de message
        'et la modif sera à faire à la "main"
        For I = 1 To Plage.Count
     
            If Dico.exists(Plage(I).Value) = False Then
     
                Dico.Add Plage(I).Value, Plage(I).Value
     
            Else
     
                MsgBox "Attention, le nombre " & Plage(I).Value & " est en doublon en cellule " & Plage(I).Address(0, 0)
                Exit Function
     
            End If
     
        Next I
     
        'initialise
        Randomize
     
        'recherche un code unique
        Do
     
            Result = Int((1000000000000# * Rnd) + 1)
     
            On Error Resume Next
            Dico.Add Result, Result
     
        Loop While Dico.exists(Result) = False
     
        NbAleatoire = Result
     
    End Function
    Hervé.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse Hervé, seulement je suis un vrai débutant, peux tu me dire où je dois insérer ce code dans Excel ?

  4. #4
    Membre régulier
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Points : 100
    Points
    100
    Par défaut
    Hum, dis voir, tu génères un fichier Excel depuis du code VB.net c'est bien ça ?
    Ou alors tu travaille directement dans Excel ?

    Si tu travaille directement sur Excel, malheureusement tu n'es pas dans le bon forum :s

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Le code est à mettre dans le module de la feuille où tu vas entrer tes données. Pour aller dans le VBE, Alt+F11, dans la petite fenêtre en haut à gauche, tu double clique sur la feuille qui a entre parenthèses le nom que tu lui a donné dans Excel et tu colle le code dans la partie droite qui vient de s'afficher.

    Hervé.

Discussions similaires

  1. Générer 50 nombres aléatoires sur un intervalle
    Par sim91510 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/02/2013, 12h40
  2. Réponses: 4
    Dernier message: 18/08/2008, 12h40
  3. Prendre un nombre aléatoire sur une sélection.
    Par fafabzh6 dans le forum SAS Base
    Réponses: 0
    Dernier message: 30/07/2008, 15h27
  4. générer nombre aléatoire
    Par LesLemmings dans le forum C#
    Réponses: 6
    Dernier message: 25/06/2008, 15h32
  5. Remplissage aléatoire sur Excel
    Par Trooper2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/06/2006, 19h14

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