Integer "
Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement, la
répartition aléatoire fait appelle à une fonction mathématique ou c'est
une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition semble
se faire au moins sur la première page, mais le sablier reste bloquer et
finalement un message m'indique que le programme ne répond pas dès que je
tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Integer "
Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430eea3a$0$2519$a3f2974a@nnrp1.numericable.fr...
Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement, la
répartition aléatoire fait appelle à une fonction mathématique ou c'est
une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition semble
se faire au moins sur la première page, mais le sablier reste bloquer et
finalement un message m'indique que le programme ne répond pas dès que je
tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uj$zHyhqFHA.240@tk2msftngp13.phx.gbl...
Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430e44f6$0$2522$a3f2974a@nnrp1.numericable.fr...
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Integer "
Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement, la
répartition aléatoire fait appelle à une fonction mathématique ou c'est
une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition semble
se faire au moins sur la première page, mais le sablier reste bloquer et
finalement un message m'indique que le programme ne répond pas dès que je
tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
evkXi4sqFHA.3624@TK2MSFTNGP10.phx.gbl...
Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430eea3a$0$2519$a3f2974a@nnrp1.numericable.fr...
Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uj$zHyhqFHA.240@tk2msftngp13.phx.gbl...
Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430e44f6$0$2522$a3f2974a@nnrp1.numericable.fr...
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour.
Cela provient du fait que le ppost a coupé la première ligne :
remplace :
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
par
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer
Dim Lim As Integer
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 43105d0f$0$2517$Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé
une solution très pratique sans macro pour 1000 lignes. Pour du plus gros
je suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe.
sur la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim
As Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant
le 100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")"
par 1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As
Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit
plus complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour.
Cela provient du fait que le ppost a coupé la première ligne :
remplace :
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
par
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer
Dim Lim As Integer
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 43105d0f$0$2517$a3f2974a@nnrp1.numericable.fr...
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé
une solution très pratique sans macro pour 1000 lignes. Pour du plus gros
je suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe.
sur la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
evkXi4sqFHA.3624@TK2MSFTNGP10.phx.gbl...
Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim
As Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430eea3a$0$2519$a3f2974a@nnrp1.numericable.fr...
Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant
le 100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")"
par 1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uj$zHyhqFHA.240@tk2msftngp13.phx.gbl...
Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As
Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430e44f6$0$2522$a3f2974a@nnrp1.numericable.fr...
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit
plus complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour.
Cela provient du fait que le ppost a coupé la première ligne :
remplace :
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
par
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer
Dim Lim As Integer
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 43105d0f$0$2517$Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé
une solution très pratique sans macro pour 1000 lignes. Pour du plus gros
je suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe.
sur la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim
As Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant
le 100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")"
par 1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As
Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit
plus complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon totalement
aléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon totalement
aléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon totalement
aléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
evkXi4sqFHA.3624@TK2MSFTNGP10.phx.gbl...
Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430eea3a$0$2519$a3f2974a@nnrp1.numericable.fr...
Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uj$zHyhqFHA.240@tk2msftngp13.phx.gbl...
Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430e44f6$0$2522$a3f2974a@nnrp1.numericable.fr...
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
MERCI A TOUS LES CONTRIBUTEURS DE CE FIL QUI M'ONT PERMIS AU FINAL de
TROUVER 2 SOLUTIONS, MOI QUI N'EN ESPERER QU'UNE.
Stéphane.
"STEPHANE" a écrit dans le message de
news:
430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement
aléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
MERCI A TOUS LES CONTRIBUTEURS DE CE FIL QUI M'ONT PERMIS AU FINAL de
TROUVER 2 SOLUTIONS, MOI QUI N'EN ESPERER QU'UNE.
Stéphane.
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news:
430e44f6$0$2522$a3f2974a@nnrp1.numericable.fr...
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement
aléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
MERCI A TOUS LES CONTRIBUTEURS DE CE FIL QUI M'ONT PERMIS AU FINAL de
TROUVER 2 SOLUTIONS, MOI QUI N'EN ESPERER QU'UNE.
Stéphane.
"STEPHANE" a écrit dans le message de
news:
430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement
aléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
evkXi4sqFHA.3624@TK2MSFTNGP10.phx.gbl...
Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430eea3a$0$2519$a3f2974a@nnrp1.numericable.fr...
Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uj$zHyhqFHA.240@tk2msftngp13.phx.gbl...
Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430e44f6$0$2522$a3f2974a@nnrp1.numericable.fr...
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé une
solution très pratique sans macro pour 1000 lignes. Pour du plus gros je
suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe. sur
la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant le
100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")" par
1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
et moi qui n'en connaître aucune, puis-je te demander e ne pas nous crier
dessus, stéhane, même si c'est pour exprimer ton immense satisfaction et
tes
remerciements chaleureux....?
jps
"STEPHANE" a écrit dans le message de
news:4311de71$0$2516$MERCI A TOUS LES CONTRIBUTEURS DE CE FIL QUI M'ONT PERMIS AU FINAL de
TROUVER 2 SOLUTIONS, MOI QUI N'EN ESPERER QU'UNE.
Stéphane.
"STEPHANE" a écrit dans le message de
news:430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalementaléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
et moi qui n'en connaître aucune, puis-je te demander e ne pas nous crier
dessus, stéhane, même si c'est pour exprimer ton immense satisfaction et
tes
remerciements chaleureux....?
jps
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news:4311de71$0$2516$a3f2974a@nnrp1.numericable.fr...
MERCI A TOUS LES CONTRIBUTEURS DE CE FIL QUI M'ONT PERMIS AU FINAL de
TROUVER 2 SOLUTIONS, MOI QUI N'EN ESPERER QU'UNE.
Stéphane.
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news:
430e44f6$0$2522$a3f2974a@nnrp1.numericable.fr...
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement
aléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
et moi qui n'en connaître aucune, puis-je te demander e ne pas nous crier
dessus, stéhane, même si c'est pour exprimer ton immense satisfaction et
tes
remerciements chaleureux....?
jps
"STEPHANE" a écrit dans le message de
news:4311de71$0$2516$MERCI A TOUS LES CONTRIBUTEURS DE CE FIL QUI M'ONT PERMIS AU FINAL de
TROUVER 2 SOLUTIONS, MOI QUI N'EN ESPERER QU'UNE.
Stéphane.
"STEPHANE" a écrit dans le message de
news:430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais
qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalementaléatoire, mais en même nombre, dans les colonnes BCDEFGHIJK, à chaque
lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit plus
complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour,
cela pourrait-il convenir ?
Sub zaza()
'Range("plage").ClearContents
For i = 1 To 100
retour:
Randomize
x = Int(Rnd() * 30000) + 1
y = Int(Rnd() * 9) + 2
z = Cells(x, y).Address
If Range(z).Value > 0 Then
GoTo retour
End If
'valeurs dans la colonne A
Range(z).Value = Cells(i, 1)
Next
End Sub
Amicalement
Sitting Hoax
"STEPHANE" a écrit dans le message de
news: 43105d0f$0$2517$Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé
une solution très pratique sans macro pour 1000 lignes. Pour du plus gros
je suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe.
sur la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim
As Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant
le 100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")"
par 1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As
Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit
plus complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour,
cela pourrait-il convenir ?
Sub zaza()
'Range("plage").ClearContents
For i = 1 To 100
retour:
Randomize
x = Int(Rnd() * 30000) + 1
y = Int(Rnd() * 9) + 2
z = Cells(x, y).Address
If Range(z).Value > 0 Then
GoTo retour
End If
'valeurs dans la colonne A
Range(z).Value = Cells(i, 1)
Next
End Sub
Amicalement
Sitting Hoax
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 43105d0f$0$2517$a3f2974a@nnrp1.numericable.fr...
Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé
une solution très pratique sans macro pour 1000 lignes. Pour du plus gros
je suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe.
sur la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim As
Integer "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
evkXi4sqFHA.3624@TK2MSFTNGP10.phx.gbl...
Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim
As Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430eea3a$0$2519$a3f2974a@nnrp1.numericable.fr...
Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant
le 100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")"
par 1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
uj$zHyhqFHA.240@tk2msftngp13.phx.gbl...
Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As
Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" <stephane-lalut@numericable.fr> a écrit dans le message de
news: 430e44f6$0$2522$a3f2974a@nnrp1.numericable.fr...
Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit
plus complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.
Bonjour,
cela pourrait-il convenir ?
Sub zaza()
'Range("plage").ClearContents
For i = 1 To 100
retour:
Randomize
x = Int(Rnd() * 30000) + 1
y = Int(Rnd() * 9) + 2
z = Cells(x, y).Address
If Range(z).Value > 0 Then
GoTo retour
End If
'valeurs dans la colonne A
Range(z).Value = Cells(i, 1)
Next
End Sub
Amicalement
Sitting Hoax
"STEPHANE" a écrit dans le message de
news: 43105d0f$0$2517$Bonjour Daniel,
La bataille n'est pas tout à fait finie, même si "modeste" m'a proposé
une solution très pratique sans macro pour 1000 lignes. Pour du plus gros
je suis donc preneur...
J'ai testé ta macro:
Au lancement j'ai le message erreur de compilation, erreur de syntaxe.
sur la 1er ligne
" Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim AsInteger "
As-tu une idée du problème ?
Merci.
Stéphane.
"Daniel" a écrit dans le message de news:Bonsoir.
J'arrive sans doute après la bataille mais j'ai pondu une macro assez
rapide avec 30000 lignes :
Sub test()
Dim Ctr As Integer, Plage As Range, c As Range, Var As Integer, Lim
As Integer
Dim Ligne As Integer
Application.ScreenUpdating = False
Range("B1:M30000").ClearContents
Set Plage = Range("L1:L30000")
For Each c In Plage
c.Value = c.Row
Next c
Randomize
Lim = 30000
For i = 1 To 10
Do While Ctr < 300
Var = ((Lim - 1) * Rnd() + 1)
Ligne = Range("L1").Offset(Var - 1, 0).Value
Cells(Ligne, i + 1) = Cells(Var, 1)
Range("L1").Offset(Var - 1, 0).Delete xlShiftUp
Ctr = Ctr + 1
Lim = Lim - 1
Loop
Ctr = 0
Next i
Application.ScreenUpdating = True
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430eea3a$0$2519$Bonjour Daniel,
Merci beaucoup de cette aide...très précieuse et qui devrait remplacer
efficacement mes méthodes empiriques.
La macro fonctionne parfaitement sur l'exemple donnée mais...
Deux questions complémentaires :
Question de curiosité
Comme je ne suis par certain de décrypter ta fonction correctement,
la répartition aléatoire fait appelle à une fonction mathématique ou
c'est une astuce de décalage ?
Question sur un problème de mise en ouvre étendu
Ma plage de valeur étudiée est supérieur à 100 lignes, elle peut
atteindre 30 000 lignes. J'ai fait un test avec ta macro en modifiant
le 100 dans "Range("B1:K100")"et dans "Set Plage = Range("A1:A100")"
par 1000 (pour voir). Je lance la macro, instantanément la répartition
semble se faire au moins sur la première page, mais le sablier reste
bloquer et finalement un message m'indique que le programme ne répond
pas dès que je tente de faire autre chose.
As-tu une idée d'ou vient le problème ?
Vraiment merci de ton aide.
Cordialement.
Stéphane.
"Daniel" a écrit dans le message de news:
uj$Bonjour.
La macro suivante devrait le faire :
Sub Test()
Dim Plage As Range, c As Range, Compte(9) As Integer, Var As
Integer
Range("B1:K100").ClearContents
Var = WorksheetFunction.CountA(Columns(2))
Set Plage = Range("A1:A100")
For Each c In Plage
For i = 2 To 11
Compte(i - 2) = WorksheetFunction.CountA(Columns(i))
Next i
Var = Int(Rnd() * 10) + 1
Do Until Compte(Var - 1) < 10
Var = Int(Rnd() * 10) + 1
Loop
c.Offset(0, Var).Value = c.Value
Next c
End Sub
Cordialement.
Daniel
"STEPHANE" a écrit dans le message de
news: 430e44f6$0$2522$Bonsoir,
Sujet : étude de répartition aléatoire.
Je souhaiterais faire une simulation qui ne peux, je pense, qu'être
réalisée par macro, ce qui est hors de ma portée.
Peut-être pourriez-vous m'aider ?
J'ai en A une colonne de valeur dont le nombre de ligne peut varier
mais qui est toujours pair.
Ex: A1 à A100 j'ai en BCDEFGHIJK 10 colonne vides.
Je souhaite que les Valeurs en A1:A100 se répartissent de façon
totalement aléatoire, mais en même nombre, dans les colonnes
BCDEFGHIJK, à chaque lancement de la macro.
Je retrouverais donc dans mon exemple 10 valeurs dans chaque colonne
BCD...
C'est très simple à expliquer, mais il est probable que cela soit
plus complexe à réaliser...
Merci en tout cas de votre aide ou de vos infos.
Stéphane.