Fenetre active

Voir le sujet précédent Voir le sujet suivant Aller en bas

R?solu Fenetre active

Message par raphael_59240 le Jeu 7 Juil 2016 - 23:34

Bonjour,


j ai créé un icone lié à une macro qui déverrouille/verrouille une vue dans les plans.(histoire de gagner du temps, sinon clic droit proprieté...)
La macro fonction si et seulement si je n ai qu'un seul Catia d'ouvert. Si par malheur j'ouvre une nouvelle fenêtre Catia et même si celle sur laquelle
je veux travaillé est active. bing, erreur incompatibilité de type.

donc si quelqu'un a une idée, merci d'avance.
Voici le code :
Code:
Sub CATMain()
Dim Catia As Object
Dim drawingDocument1 As DrawingDocument
Dim drawingSheets1 As DrawingSheets
Dim drawingSheet1 As DrawingSheet
Dim drawingViews1 As DrawingViews
Dim Sheetdraw As String, Sheetview As String


'---- initialisation catia"

On Error Resume Next

Set Catia = GetObject(, "CATIA.Application")


If Err.Number <> 0 Then
    MsgBox ("pas de session catia trouvée")
Else
    On Error GoTo 0
    
    
    Set drawingDocument1 = Catia.ActiveDocument
    Set drawingSheets1 = drawingDocument1.Sheets
    
    Sheetdraw = drawingSheets1.ActiveSheet.Name
    Set drawingSheet1 = drawingSheets1.Item(Sheetdraw)

    Set drawingViews1 = drawingSheet1.Views

    Sheetview = drawingViews1.ActiveView.Name

    If Sheetview = "Main View" Then
        MsgBox "activer la vue à deverouiller"
    Else

       Set drawingView1 = drawingViews1.Item(Sheetview)
       If drawingView1.LockStatus = False Then
           drawingView1.LockStatus = True
       Else: drawingView1.LockStatus = False
       End If
    End If

End If

End Sub


Raphael


Dernière édition par raphael_59240 le Mar 12 Juil 2016 - 18:18, édité 1 fois
avatar
raphael_59240
actif
actif

Messages : 123
Date d'inscription : 28/03/2015
Age : 46
Localisation : dunkerque

Revenir en haut Aller en bas

R?solu Re: Fenetre active

Message par lumpazepfel le Mar 12 Juil 2016 - 3:02

Salut Raphaël,

J'ai modifié la partie "initialisation CATIA" de ton code et chez moi ça fonctionne.
Je pense qu'il n'est pas utile de déclarer l'application CATIA.
(lignes modifiées identifiées avec '***)
Code:
Sub CATMain()
'Dim Catia As Object ***
Dim drawingDocument1 As DrawingDocument
Dim drawingSheets1 As DrawingSheets
Dim drawingSheet1 As DrawingSheet
Dim drawingViews1 As DrawingViews
Dim Sheetdraw As String, Sheetview As String


'---- initialisation catia"
'***
On Error Resume Next
Set drawingDocument1 = Catia.ActiveDocument

'Set Catia = GetObject(, "CATIA.Application")***


If Err.Number <> 0 Then
    MsgBox ("pas de session catia trouvée")
    Exit Sub
ElseIf (InStr(drawingDocument1.Name, ".CATDrawing")) = 0 Then
    MsgBox ("La fenêtre active doit être un CATDrawing")
    Exit Sub
End If
Err.Clear
On Error GoTo 0
'***
 
    Set drawingSheets1 = drawingDocument1.Sheets
   
    Sheetdraw = drawingSheets1.ActiveSheet.Name
    Set drawingSheet1 = drawingSheets1.Item(Sheetdraw)

    Set drawingViews1 = drawingSheet1.Views

    Sheetview = drawingViews1.ActiveView.Name

    If Sheetview = "Main View" Then
        MsgBox "activer la vue à deverouiller"
    Else

      Set drawingView1 = drawingViews1.Item(Sheetview)
      If drawingView1.LockStatus = False Then
          drawingView1.LockStatus = True
      Else: drawingView1.LockStatus = False
      End If
    End If

'End If***

End Sub
avatar
lumpazepfel
actif
actif

Messages : 148
Date d'inscription : 03/11/2015
Localisation : Ensisheim

Revenir en haut Aller en bas

R?solu Re: Fenetre active

Message par raphael_59240 le Mar 12 Juil 2016 - 18:18

bounce bounce cheers


merci beaucoup, c est bien pratique et plus rapide
avatar
raphael_59240
actif
actif

Messages : 123
Date d'inscription : 28/03/2015
Age : 46
Localisation : dunkerque

Revenir en haut Aller en bas

R?solu Re: Fenetre active

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum