Ce code récupére un tableau , une valeur à ajouter et la taille du tableau,
deux procédures sont proposées une trie dans l'ordre croissant, l'autre décroissant.
Elles renvoient le tableau pour la suite du traitement.
NB: les commentaires dans le code sont nombreux pour expliquer au - initiés.
Source / Exemple :
'&&&&&& ajoute une valeur et tri la liste dans l'ordre croissant
Sub ajoucroissant_dans_liste(tabl(), valajout, tailletabl)
Dim i, j As Integer
'parcours toutes les valeurs du tableau "tabl"
For i = 1 To tailletabl
'si la valeur a ajouter est > a une des valeurs du tableau tabl
If valajout < tabl(i) Then
'augmente la taille du tableau de 1
tailletabl = tailletabl + 1: ReDim Preserve tabl(tailletabl)
'permute les valeur du tabkleau "tabl" de -1
For j = tailletabl To i + 1 Step -1
tabl(j) = tabl(j - 1)
Next j
'inscrit la valeur à sa place
tabl(i) = valajout
Exit Sub
End If
'verifie si la valeur trouvée est déja dans le tableau si oui sortir
If tabl(i) = valajout Then Exit Sub
Next i
' si fin de tableau et pas trouvé c'est une valeur <a toutes les autres valeurs du tableau
tailletabl = tailletabl + 1: ReDim Preserve tabl(tailletabl)
tabl(i) = valajout
End Sub
'&&&&&&& ajoute une valeur et tri la liste dans l'ordre decroissant
Sub ajoudecroissant_dans_liste(tabl(), valajout, tailletabl)
Dim i, j As Integer
'parcours toutes les valeurs du tableau "tabl"
For i = 1 To tailletabl
'si la valeur a ajouter est > a une des valeurs du tableau tabl
If valajout > tabl(i) Then
'augmente la taille du tableau de 1
tailletabl = tailletabl + 1: ReDim Preserve tabl(tailletabl)
'permute les valeur du tabkleau "tabl" de -1
For j = tailletabl To i + 1 Step -1
tabl(j) = tabl(j - 1)
Next j
'inscrit la valeur à sa place
tabl(i) = valajout
Exit Sub
End If
'verifie si la valeur trouvée est déja dans le tableau si oui sortir
If tabl(i) = valajout Then Exit Sub
Next i
' si fin de tableau et pas trouvé c'est une valeur <a toutes les autres valeurs du tableau
tailletabl = tailletabl + 1: ReDim Preserve tabl(tailletabl)
tabl(i) = valajout
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.