Bonjour,
Je suis novice dans la programmation VBA et j'ai besoin d'aide :
J'ai besoin de créer une macro en VBA qui me permettrai de geler tous les calques sauf 2.
J'aifais cette petite macro mais ne fonctionne pas :
Sub test()
Dim i As Integer
For i = 0 To ThisDrawing.layers.Count - 1
If ThisDrawing.layers.objetName = "Y-EQP-SI" Then
ThisDrawing.layers(i).Freeze = False
Else
ThisDrawing.layers(i).Freeze = True
End If
Next i
End Sub
Quelqu'un aurait-t-il une idée ?
Cordialement,
Fabdu91630
Page 1 sur 1
Gelés tous les calques sauf 2 en macro VBA
#2
Posté 26 mai 2011 - 15:28
Bonjour,
Je n'y connais pas grand chose en VBA, mais à mon avis il faudrait modifier cette partie :
Peut-être par :
Je n'y connais pas grand chose en VBA, mais à mon avis il faudrait modifier cette partie :
If ThisDrawing.layers.objetName = "Y-EQP-SI" Then
Peut-être par :
If ThisDrawing.layers(i).Name = "Y-EQP-SI" Then
#3 Guest_fabdu91630_*
Posté 26 mai 2011 - 16:55
Bonjour Bryce,
Je viens d'essayer, il cela me marque "calque incorrect".
j'ai revérifier et le nom du calque est bien le bon.
???
Je viens d'essayer, il cela me marque "calque incorrect".
j'ai revérifier et le nom du calque est bien le bon.
???
#4
Posté 26 mai 2011 - 22:24
Attention à ne pas essayer de geler le calque courant.
De plus, apparemment il n'aime pas qu'on essaie de mettre la propriété Freeze à False quand elle est déjà à False... :casstet:
Le code ci-dessous a l'air de fonctionner :
De plus, apparemment il n'aime pas qu'on essaie de mettre la propriété Freeze à False quand elle est déjà à False... :casstet:
Le code ci-dessous a l'air de fonctionner :
Sub test() Dim i As Integer Dim l As AcadLayer For i = 0 To ThisDrawing.Layers.Count - 1 Set l = ThisDrawing.Layers(i) If l.Name <> "Y-EQP-SI" And l.Name <> ThisDrawing.ActiveLayer.Name Then l.Freeze = True ElseIf l.Freeze = True Then l.Freeze = False End If Next i End Sub
#5 Guest_fabdu91630_*
Posté 27 mai 2011 - 07:44
Merci à tous, j'ai trouver la réponse que je voulais, pour ce qui veulent elle est ci dessous :
Sub GelerTousLesCalquesSaufDeux()
Dim calque As AcadLayer
'Parcourir tous les calques dans la collection Calques du dessin :
For Each calque In ThisDrawing.Layers
'Si le nom du calque n'est pas égal au nom des calques qu'on ne veut pas geler :
If calque.Name <> "Nom calque 1" And calque.Name <> "Nom calque 2" Then
'Geler le calque sauf le calque 0 qui ne peut pas être gelé
If calque.Name <> "0" Then calque.Freeze = True
End If
Next
End Sub
#6
Posté 27 mai 2011 - 10:37
On peut très bien geler le calque 0, c'est le calque courant qui ne peut pas être gelé. ;)
#7 Guest_fabdu91630_*
Posté 27 mai 2011 - 10:40
Tous a fait, je suis d'accord. Je parlais du calque zero car de base c'est lui est courant.
Partager ce sujet :
Page 1 sur 1