Bonjour,
J'ai des words qui m'arrivent et je veux me faire un script VBA pour les compiler dans un Excel. Vu que ce word a été étrangement fait (certainement un copier collé d'un formulaire HTML), j'ai dû lutter pour y accéder, mais j'ai maintenant un code qui fonctionne :
Sub traiterFormulaire()
Dim nombre
'Dim iShape As InlineShapes
nombre = Application.ActiveDocument.InlineShapes.Count
Dim var As InlineShapes
Dim iShape
For Each iShape In Application.ActiveDocument.InlineShapes
Debug.Print iShape.OLEFormat.Object.Selected
Debug.Print "d"
'var = iShape
'var.ConvertToShape
Next iShape
MsgBox "coucou"
End Sub
Pour cela, il doit être dans "Microsoft World Object>ThisDocument". Je ne sais pas comment faire pour qu'il fonctionne aussi dans "Normal>Module de classe", et je suppose que c'est à l’origine du problème :
Dans Excel, j'ai mis en place une routine qui parcours tous les docx du répertoire, et qui accède au différents Words.
Cela fonctionne, il m'ouvre bien le premier document, arrive à me dire qu'il y a 12 combobox dans le document, sauf que
iShape.OLEFormat = Nothing
Le code est plus précisément celui-ci :
Set objShell = CreateObject("WScript.Shell")
myCur = objShell.CurrentDirectory
dossier = myCur & "\*.docx"
i = 0
fichier = Dir(dossier)
Do While fichier <> ""
i = i + 1
Set objDoc = objWord.Documents.Open(myCur & "\" & fichier)
objWord.Visible = True
Call traiterFormulaire(objDoc)
[...]
et le traiterFormulaire() du dessus.
Vous auriez une idée ? Merciiiiiiiiiiiiiiii !