Aller au contenu

quelques routines de base mais bien pratique


Titifonky

Messages recommandés

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
Lien vers le commentaire
Partager sur d’autres sites

Hello,

je viens te proposer une alternative,

car à deux têtes on pense deux fois :)

 

Dim i As Integer

Dim TabLayer() As Variant

ReDim TabLayer(9999)

For i = 0 To ThisDrawing.Layers.Count - 1

TabLayer(i) = ThisDrawing.Layers.Item(i).Name

Next

ReDim 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

 

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité