ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 24 janv. 2006 à 05:37
Je pense que tu cherches non pas à effacer une ligne (car il suffirait de lui attribuer une valeur null) mais de supprimer une ligne!
Eh bien tu ne le peux pas. Du moins, pas automatiquement.
En effet, c'est toute la différence qu'il y a entre les listes et les tableaux! Autrement dit, le mieux serait peut-être d'utiliser un collection dans ton cas (cf. objet Collection).
Tu ne peux supprimer des lignes qu'en redimensionnant ton tableau (avec l'argument Preserve cependant!) à condition que les lingnes à supprimer soient à la fin du tableau.
Dim tblSuite(10) As CeQueTuVeux
Redim Preserve tblSuite(5)
Les 5 derniers sont supprimés.
Mais ceci a des conditions lors de l'utilisation de plusieurs dimensions (cf. la MSDN [l'aide du VB]).
Mais pour le faire quand même, il y a deux méthodes mais qui sont toutes les deux d'une extrême lenteur.
La première ne s'applique de préférence si tu n'as qu'une valeur à supprimer à chaque fois. Auquel cas, il te suffit de parcourir le tableau, à partir de la ligne à supprimer et d'assigner aux cellules en cours la valeur de la cellule suivante. Ainsi, la cellule vide se trouvera à la fin du tableau et tu pourras le redimensionner :
10 10 10 10 10
11 11 11 11 11
12 << SUPP -- _13 13 Redim 13
13 13 <_/ 13 _14 14
14 14 14 <_/ 14
La deuxième s'applique de préférence si tu as plusieurs lignes à supprimer d'un coup. Là, il est souvent préférable d'utiliser deux tableaux et de faire des transfères temporaire entre les deux en les parcourant...
sibaihamza
Messages postés15Date d'inscriptionsamedi 24 décembre 2005StatutMembreDernière intervention31 janvier 2006 24 janv. 2006 à 11:35
salut
c vraiment treés gentille de ta part
mais g encore un problem
est ce ke tu pe soit me donner le code qui realise cette technique, soit une explication comment créer une collection de structure
par exemple une collection de voiture et voiture est une structure
merci bcp
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 24 janv. 2006 à 15:14
Pour les collections, je te laisse te référer à la MSDN (l'aide du VB) et aux sources et posts forum disponibles sur ce site (quitte à chercher via Google et le mot "vbfrance" !!!).
Moi je veux bien te donner un bout de code mais de laquelle des deux techniques ??? (j'ai pas que ça à faire non plus!!!)
Pi j'espère que tu comprends à peu près de quoi il retourne ! C'est à dire, leurs points forts et surtout leurs points faibles!
Si tu as un doute, dit moi au moins avec quoi tu veux travailler (des giga tableaux ou alors des ptits chiures de 100 linges!) et comment (ultra méga rapidos ou alors qu'importe, t'en est pas à 3 nanosecondes près!) ???
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
sibaihamza
Messages postés15Date d'inscriptionsamedi 24 décembre 2005StatutMembreDernière intervention31 janvier 2006 24 janv. 2006 à 16:01
Salut
jvé travailler avec des tableaux de 15 ligne au maximum
Donc SVP, dit moi comment declarer une collection de structure par exemple une structure de voiture et comment la manipuler
merci bcp
Vous n’avez pas trouvé la réponse que vous recherchez ?
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 24 janv. 2006 à 16:49
Pour les collection je te renvoie à mon message précédent.
Sinon, ce n'est pas un problème si tu bosses avec de si petits tableaux!!!
'Déclaration du tableau comme variable Globale,
'c'est à dire, en placant la déclaration tout en haut de ton code
'ou alors - c'est encore mieux - dans un "module de code"
'à rajouter (clic droit sur la liste des feuilles&cie puis Ajouter, ...)
Public tlbTableau
...
Call procSupprimerUneEntree(varNumero)
...
Private Sub procSupprimerUneEntree(ByVal varEntree As Integer)
On Error Exit Sub 'A toi de voir comment tu veux gérer les erreurs si tu veux les gérer!
'Si l'argument est supérieur au nombre totale de lignes : pas possible
If varEntree > UBound(tblTableau) Then Exit Sub 'Ou génère une erreur!
For t = varEntree To UBound(tblTableau) - 1
tblTableau(t) =
tblTableau(t + 1)
Next t
'Supprime la dernière ligne du tableau en le redimensionnant
Redim Preserve tblTableau(UBound(tblTableau) - 1)
End Sub
Ici, bien entendu, on n'a considéré que tu n'utilisais qu'une seule dimension à ton tableau !!!
Dans le cas contraire il faudrait rajouter autant de boucles que de dimensions et la solution deviendrait nettement moins viable!!!)
Je t'ai fais ce code de tête alors teste-le et dit moi si tu as des problèmes avec d'accord ?
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )