nombre aleatoire via macro

drisou

XLDnaute Occasionnel
bonjour le forum, j ai tableau contenant 7 colonnes et une quarantaine de lignes , dans chaque colonne j ai 32 cellules vides dans lesquels je dois entrer des nombres de 1 a 32 sans qu il y est 2 fois le meme nombre dans la meme colonne , le reste des cellules sont deja rempli par des x. pour cela j ai une macro qui me rempli les cellules vides par les nombres, mais il me les rempli tj dans le meme ordre c est a dire de 1 a 32 et ce que je souhaiterais c est qu il me rempli les cellules par des nombres aleatoire compris entre 1 et 32.
voici ma macro.


Sub Verif()
'Déclaration des variables
Dim Cel As Range, Reponse As Integer, i As Integer
'ici on initialise un tableau (array) dans la mémoire de l'ordi
Dim MesSv(1 To 32)

'On scanne les 40 cellules dans la colonne où se trouve le curseur
'Exemple de B2 à B41, la ligne 1 est occupée avec les entêtes de notre tableau
For Each Cel In Range(Cells(7, Selection.Column), Cells(70, Selection.Column))
'ici on remplit notre array avec des true ou des false
For i = 1 To 32
'Si la cellule contient la valeur de i
If Cel = i Then
'on place à true
MesSv(i) = True
End If
Next
Next

'Après traitement mettre les Sv en place
For i = 1 To 32
If MesSv(i) = False Then
Reponse = MsgBox('Le Sv ' & i & ' n'est pas attribué, Voulez-vous le distribuer', vbYesNo, 'SERVICES SEMAINE')
'si la réponse est oui
If Reponse = 6 Then
'pour trouver la première cellule vide de la colonne
For Each Cel In Range(Cells(7, Selection.Column), Cells(70, Selection.Column))
Cel.Select 'pas nécessaire mais cela permet de visualiser où l'on se trouve
If Cel = '' Then
Cel = i
'ici si on vient de remplir la cellule on doit quitter la boucle for each
GoTo Poursuite
End If
Next
ElseIf Reponse = 7 Then
'idem si on repond non, on quitte la boucle
GoTo Poursuite
End If
End If
'point de repère pour le Goto
Poursuite:
Next
End Sub

merci pour votre aide.
 

drisou

XLDnaute Occasionnel
salut hervé, le forum j ai essayé ta methode ca fonctionne tres bien je te remercie , comme je te l ai dit precedement c est pour l appliquer a un tableau contenant 27 services la semaine et 32 le weekend ,que dois je modifier dans la macro pour que je puisse aussi l utiliser pour affecter les services du week end c est a dire pour mettre 32 nombres le weekend. je garde la macro que tu m a donné pour les services la semaine et avoir une autre macro pour le weekend ca serait donc la meme mais sauf que je metterais 32 nombres au lieu de 27. merci
 

Hervé

XLDnaute Barbatruc
Bonsoir drisou, le forum

En pièce jointe la macro modifiée.

Une seule macro pour les 27 et 32, je vais chercher l'information en ligne 5.

Pour faire des tests, j'ai effacé quelques infos en colonne samedi et dimance, fait attention.

salut drisou


[file name=planningdrisou.zip size=34662]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/planningdrisou.zip[/file]
 

Pièces jointes

  • planningdrisou.zip
    33.8 KB · Affichages: 12

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia