![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour,
Cette macro que j'ai trouvé sur ce site a pour but d'effectuer un tri aléatoire de la colonne A à partir de la cellule A1. Or, moi, pour un souci de présentation, je dois effectuer un tri de la colonne C à partir de la cellule C4. Voyez-vous comment modifier ce code : Sub TriColonneAleatoire() Dim Val As Range Dim Lig As Byte Dim Tableau() Dim Tableau2() Dim i As Byte, j As Byte, k As Byte Dim Aleat As Integer Lig = Range('A65536').End(xlUp).Row ReDim Tableau(Lig) For Each Val In Range('A1:A' & Lig) Tableau(Val.Row - 1) = Val Next Val For i = 1 To Lig Randomize Aleat = Int(Rnd * UBound(Tableau)) + 1 Cells(i, 1) = Tableau(Aleat - 1) ReDim Tableau2(Lig - i) For j = 1 To Lig - i k = 0 If j >= Aleat Then k = 1 Tableau2(j - 1) = Tableau(j + k - 1) Next j ReDim Tableau(Lig - i) For j = 1 To Lig - i Tableau(j - 1) = Tableau2(j - 1) Next j Next i End Sub Je vous joint aussi l'exemple trouver sur ce site en pièce jointe. ------------------------ Merci d'avance [file name=TriAleatoireColonne.zip size=11845]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TriAleatoireColonne.zip[/file] |
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Super Moderator
Date d'inscription: février 2005
Localisation: Rennes
Version Excel : Excel 2000 (PC)
Messages: 8 236
|
Bonjour
Modifies ces lignes ( j'ai pas tester) Lig = Range('A65536').End(xlUp).Row ReDim Tableau(Lig) For Each Val In Range('A1:A' & Lig) Tableau(Val.Row - 1) = Val Next Val par Lig = Range('C65536').End(xlUp).Row-3 ReDim Tableau(Lig) For Each Val In Range('C4:C' & Lig) Tableau(Val.Row - 1) = Val Next Va et Cells(i, 1) = Tableau(Aleat - 1) par Cells(i, 1) = Tableau(Aleat - 1)l
__________________
Pascal(Visitez mon Blog Photo)Vous pouvez devenir "Supporter XLD", plus de renseignements ICI |
|
|
|
|
|
#4 (permalink) |
|
Super Moderator
Date d'inscription: février 2005
Localisation: Rennes
Version Excel : Excel 2000 (PC)
Messages: 8 236
|
RE
oups j'avais oublié une ligne Tableau(Val.Row - 1) = Val par Tableau(Val.Row - 4) = Val
__________________
Pascal(Visitez mon Blog Photo)Vous pouvez devenir "Supporter XLD", plus de renseignements ICI |
|
|
|
|
|
#6 (permalink) |
|
Super Moderator
Date d'inscription: février 2005
Localisation: Rennes
Version Excel : Excel 2000 (PC)
Messages: 8 236
|
Excuse j'ai voulu faire ça sans tester et voilà je me suis planté
je suis dessus là mais avec le fichier
__________________
Pascal(Visitez mon Blog Photo)Vous pouvez devenir "Supporter XLD", plus de renseignements ICI |
|
|
|
|
|
#7 (permalink) | |
|
Super Moderator
Date d'inscription: février 2005
Localisation: Rennes
Version Excel : Excel 2000 (PC)
Messages: 8 236
|
Re
Là voilà modifiée mais cette fois tester Citation:
Bon WE
__________________
Pascal(Visitez mon Blog Photo)Vous pouvez devenir "Supporter XLD", plus de renseignements ICI |
|
|
|
|
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
j'ai un souccis avec cette macro de capaciter
Sub TriColonneAleatoire() Dim Val As Range Dim Lig As Byte Dim Tableau() Dim Tableau2() Dim i As Byte, j As Byte, k As Byte Dim Aleat As Integer Lig = Range('A65536').End(xlUp).Row ReDim Tableau(Lig) For Each Val In Range('A1:A' & Lig) Tableau(Val.Row - 1) = Val Next Val For i = 1 To Lig Randomize Aleat = Int(Rnd * UBound(Tableau)) + 1 Cells(i, 1) = Tableau(Aleat - 1) ReDim Tableau2(Lig - i) For j = 1 To Lig - i k = 0 If j >= Aleat Then k = 1 Tableau2(j - 1) = Tableau(j + k - 1) Next j ReDim Tableau(Lig - i) For j = 1 To Lig - i Tableau(j - 1) = Tableau2(j - 1) Next j Next i End Sub le probleme viens de cette ligne Lig = Range('A65536').End(xlUp).Row merci de bien m'aider |
|
|
|
#10 (permalink) |
|
Super Moderator
Date d'inscription: février 2005
Localisation: Rennes
Version Excel : Excel 2000 (PC)
Messages: 8 236
|
Bonjour
modifies la déclaration Dim Lig As Byte par Dim Lig As Integer voir Dim Lig As Long Bon courage
__________________
Pascal(Visitez mon Blog Photo)Vous pouvez devenir "Supporter XLD", plus de renseignements ICI |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|