Aller au contenu

Gelés tous les calques sauf 2 en macro VBA


Invité fabdu91630

Messages recommandés

Invité fabdu91630

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

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

Lien vers le commentaire
Partager sur d’autres sites

Invité fabdu91630

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.

 

???

Lien vers le commentaire
Partager sur d’autres sites

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 :

 

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

Lien vers le commentaire
Partager sur d’autres sites

Invité fabdu91630

 

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

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é