Titifonky Posté(e) le 15 juin 2005 Posté(e) le 15 juin 2005 Voici une fonction de tri par ordre alphabétique d'un tableau à une dimension contenant des chaines de caractères(pour trier des calques par exemple;)) Public Function Tri(Tabl As Variant) Dim Temp As String Dim i As Integer Dim flag As Boolean flag = True i = 0 Do While flag flag = False For i = 0 To UBound(Tabl) - 1 If StrConv(Tabl(i), 2) > StrConv(Tabl(i + 1), 2) Then Temp = Tabl(i + 1) Tabl(i + 1) = Tabl(i) Tabl(i) = Temp flag = True End If Next i Loop Tri = Tabl End Function et une fonction qui renvoie un tableau à une dimension contenant les calques trié par ordre alphabétique ;) repondant aux critère "Nom". La routine cherche si la chaine "Nom" est contenue dans le nom des calques. Public Function FindLayer(Nom As String) As Variant Dim AllLayers As Object Dim Layer As Object Dim Pointeur As Integer Dim TabLayer() As String ReDim TabLayer(1) Pointeur = 1 Set AllLayers = ThisDrawing.Layers For Each Layer In AllLayers If InStr(1, Layer.Name, Nom, 1) Then ReDim Preserve TabLayer(Pointeur) TabLayer(Pointeur) = Layer.Name Pointeur = Pointeur + 1 End If Next If Pointeur = 1 Then TabLayer(Pointeur) = "0" End If FindLayer = Tri(TabLayer) End Function Bonne programmation www.le-metal.net, sur la métallerie
didier Posté(e) le 15 juin 2005 Posté(e) le 15 juin 2005 Hello,je viens te proposer une alternative,car à deux têtes on pense deux fois :) Dim i As IntegerDim TabLayer() As VariantReDim TabLayer(9999)For i = 0 To ThisDrawing.Layers.Count - 1 TabLayer(i) = ThisDrawing.Layers.Item(i).NameNextReDim Preserve TabLayer(i - 1) c'est juste pour le fun, ce n'est en rien une critique,car il est vrai, qu'on a chacun une façon de faire ... amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Titifonky Posté(e) le 16 juin 2005 Auteur Posté(e) le 16 juin 2005 Salut, C'est vrai c'est un peu (beaucoup) plus court. à méditer ;)On à beau avoir chacun sa façon de faire, ce n'est pas toujours la meilleur mais avec deux têtes on pense deux fois plus, le probleme c'est d'avoir deux têtes :) Salutations www.le-metal.net, sur la métallerie
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant