Je suis coincé avec quelque chose que je ne peux pas comprendre (mais je sais que ce pourrait être très simple). J'essaie une routine d'utilisation générale pour recueillir les attributs des objets typiques de mots tels que des tables, des zones de texte, les gammes, etc. va ici l'idée:VBA passant word.table à sous-routine en utilisant la variable objet
Sub GetWobjectAttributes(ByRef WObject As Object)
If TypeOf WObject Is Word.Table Then
'grab table attributes
ElseIf TypeOf WObject Is Word.Range Then
'grab range attributes
...
End If
End Sub
Malheureusement, l'objet passe en utilisant le type d'objet générique semble changer le type de passé objet. Par exemple l'exécution sous test:
Sub test()
GetWobjectAttributes (ThisDocument.Tables(1))
'MsgBox (TypeName(ThisDocument.Range.Tables(1)))
End Sub
Public Sub GetWobjectAttributes(ByRef WObject As Variant)
MsgBox (TypeName(WObject))
End Sub
message indiquant:
Range au lieu de "Table" (mais l'exécution MsgBox (TypeName (ThisDocument.Range.Tables (1))) directement dans le test sous (a commenté dans l'exemple) qui affiche:.? Tableau
Toute idée comment passer objet de type sous-programme sans unkown à
Merci, il est maintenant évident. J'ai eu un peu de cerveau:/Solution fonctionne parfaitement. – jareckii