Recopie feuil1->feuil2 en aléatoire

Bonjour,

J’ai un petit problème de recopie de valeurs dans un ordre pseudo aléatoire que je n’arrive pas à faire.

Je m’explique :

Sur la feuille 1 par exemple,

dans la colonne A, j’ai des nombres aléatoires alea.entre.borne( 30;40)

dans la colonne B, j’ai des nombres aléatoires alea.entre.borne( 40;50)

dans la colonne C, j’ai des nombres aléatoires alea.entre.borne( 50;60)

…………

Sur la feuil1, les nombres sont donc rangés par colonnes. Chaque colonne contient donc des nombres situés dans un intervalle.

Je voudrais faire un "tableau classique" de toutes ces valeurs mélangées. Ce nouveau tableau doit avoir de 15 cellules de largeur (colonne O).

Je doute qu’il soit possible de recopier automatiquement dans un tableau de 15 cellules de largeur toutes ces valeurs de manières aléatoires (= qu’elle ne soient plus rangées).

Mon idée (c’est un compromis vu que le vraie aléatoire ne me semble pas possible) :

Sur la feuille 2

Recopier la 1ère ligne de la feuille 1 sur la feuille 2 (ligne 1), dès qu’on arrive à 15 cellules (colonne O) de la feuil2, je passe à la ligne 2 (feuil2) et recopie donc la suite sur la ligne 2. Et ainsi de suite…… (Bien sur pour la feuille 1, une fois que je suis arrivé au bou de la ligne 1, je passe à la ligne 2.

Bien sur, il ne faut pas recopier les cases vides de la feuille 1

Si vous avez une idée pour faire ce genre de recopie ; je suis preneur car cela dépasse largement mes compétences excel.

Merci pour votre aide

PS : ci-joint un exemple avec la feuille 1 remplie de valeurs aléatoires qu’il faudrait recopier sur la feuille 2.

22classeur.xlsx (9.99 Ko)

Salut,

Je vais jeter un œil à ton problème mais j'ai l'impression que tu te complique la vie... pourquoi ne pas faire directement un aléatoire entre borne 30 à 60 dans ta feuille 2 ?

Bonjour,

solution via une macro

Sub aargh()
    Dim t() 't liste des nombres pour le tirage
    Randomize Timer ' initialise le générateur de nombre aléatoire
    k = -1
    With Sheets("feuil1") 'on charge la liste
        For j = 1 To 13    'j colonne A à M
            dl = .Cells(Rows.Count, j).End(xlUp).Row
            For i = 1 To dl 'i n° de ligne
                k = k + 1
                ReDim Preserve t(k)
                t(k) = .Cells(i, j)
            Next i
        Next j
    End With
    With Sheets("feuil2")
                i = 1 ' i n° de ligne
        Do While True
            For j = 1 To 15 'j colonne A à O
                q = Application.RandBetween(0, k) 'on choisit un nombre au hasard
                .Cells(i, j) = t(q) 'on le met sur la feuil2
                t(q) = t(k) ' on élimine de la liste des nombres possibles, le nombre qui vient d'être tiré
                k = k - 1 ' on ajuste le nombre de nombres possibles
                If k = 0 Then Exit Do ' plus de nombre , on arrête
            Next j 'colonne suivante
            i = i + 1 ' ligne suivante
        Loop
    End With
End Sub

Oui je comprends la remarque.

En faite, j'ai pris des nombres aléatoires avec la fonctione aléatoire entre borne pour l'exemple mais en réalisté ce sont des nombres imposés sur la feuille 1 (étude stat) que je souhaite remettre en alétoire sur la feuille 2.

Parfait Merci beaucoup pour la macro

Rechercher des sujets similaires à "recopie feuil1 feuil2 aleatoire"