Invité fabdu91630 Posté(e) le 26 mai 2011 Posté(e) le 26 mai 2011 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 iEnd Sub Quelqu'un aurait-t-il une idée ? Cordialement, Fabdu91630
bryce Posté(e) le 26 mai 2011 Posté(e) le 26 mai 2011 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 Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité fabdu91630 Posté(e) le 26 mai 2011 Posté(e) le 26 mai 2011 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. ???
bryce Posté(e) le 26 mai 2011 Posté(e) le 26 mai 2011 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 Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité fabdu91630 Posté(e) le 27 mai 2011 Posté(e) le 27 mai 2011 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 NextEnd Sub
bryce Posté(e) le 27 mai 2011 Posté(e) le 27 mai 2011 On peut très bien geler le calque 0, c'est le calque courant qui ne peut pas être gelé. ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité fabdu91630 Posté(e) le 27 mai 2011 Posté(e) le 27 mai 2011 Tous a fait, je suis d'accord. Je parlais du calque zero car de base c'est lui est courant.
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