Code VBA avec randbetween

Bonjour, svp quelquun peut il m aider avec mon devoir? Merci

execrcise 2 4

Bonjour Asty, le forum,

Un essai...

Génère des nombres aléatoires de 1 à 100 sans doublons, de A1 à A20....

Sub Nombre_Aleatoire()  'sans doublons
 Dim plage As Range, cel As Range, NBaleatoire As Double

Application.ScreenUpdating = False

Set plage = Range("A1:A20")  '.....plage devant recevoir les nombres
    plage.Value = ""
  Randomize
   For Each cel In plage
1
    NBaleatoire = WorksheetFunction.RandBetween(1, 100)
     If Application.CountIf(plage, NBaleatoire) Then
      GoTo 1
     Else
      cel = NBaleatoire
     End If
   Next cel
End Sub
6classeur1.xlsm (17.09 Ko)

Cordialement,

Merci, mais stp dis moi comment fais tu pour avoir copy sur la page d'excell?

Et si je veux creer une meme case sur excell avec le mot generer tel que tu l'as fait pour copy, comment je m'y prends stp?

Bonjour et merci pour le retour,

Merci, mais stp dis moi comment fais tu pour avoir copy sur la page d'excell?

Désolé, je ne comprends pas ta demande,

C'est cette ligne qui écrit sur la feuille:

cel = NBaleatoire '...................................on l'écrit dans la cellule

Le code commenté:

Sub Nombre_Aleatoire()  'sans doublons
 Dim plage As Range, cel As Range, NBaleatoire As Double '...variables

Application.ScreenUpdating = False '.........................désactive rafraichissement de l'écran

 With Sheets("Feuil1") '.....................................agit sur cette feuille uniquement (nom à adapter)
  Set plage = .Range("A1:A20")  '............................plage devant recevoir les nombres
      plage.Value = "" '.....................................réinitialise la plage
   Randomize '...............................................Initialise le générateur de nombres aléatoires
    For Each cel In plage '..................................boucle sur chaque cellule de la plage
1 '..........................................................étape
     NBaleatoire = WorksheetFunction.RandBetween(1, 100) '...génère un nombre entre 1 et 100
      If Application.CountIf(plage, NBaleatoire) Then '......si ce nombre existe déjà dans la plage
       GoTo 1 '..............................................on revient à 1 donc on en génère un nouveau
      Else '.................................................sinon
       cel = NBaleatoire '...................................on l'écrit dans la cellule
      End If '...............................................fin de la condition
    Next cel '...............................................passe à la cellule suivante
    plage.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
    Header:=xlNo, Orientation:=xlTopToBottom '...............tri par odre croissant
 End With
End Sub

Cordialement,

En fait je parlais de la boite commande.

Merci enormement pour ta disponibilite. Ton code m'a permis de comprendre le fichier du cours de ce site sur les boites de dialogue. Merci encore, il fallait juste cette orientation maintenant je peux faire la suite de mon devoir. Merci vraiment.

Rechercher des sujets similaires à "code vba randbetween"