gestion de certains dialogbox
Bonsoir,
Je refais surface après 8 mois d'éclipse. La programmation me prend comme une fièvre, tous les x mois. En ce moment, je travaille sur un outil permettant d'évaluer la richesse de vocabulaire d'un texte (soit le ratio "nombre de mots différents" /"nombre de mots total" du texte). Au moment où je charge un texte de Word dans Excel, en particulier si je dois refaire après une erreur, je suis stoppé par une boîte de dialogue indiquant que le fichier que je veux ouvrir est utilisé par quelqu'un d'autre (moi, en l'occurrence) avec 3 boutons à choix ("Lecture seule", "Notifier", "Annuler"). Dans mon code ci-dessous je mets le mot DIALOG en cap. à l'endroit du blocage. Ma question: comment mon code peut-il prendre la main sur cette boîte de dialogue pour cliquer sur "lecture seule" et pouvoir poursuivre ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
Sub Importe_Texte_Word()
Dim WordApp As Object
Dim feuilletxt As Integer, L As Integer, C As Integer
Dim CelA As Range
feuilletxt = 1
L = 1
C = 1
Set CelA = Cells(1, 1)
' Lance Word et crée un objet
Set WordApp = CreateObject("Word.Application")
With WordApp
.Documents.Open Filename:="D:/Analyse_Vocabulaire/Ste_Ludmila.txt"
'DIALOG
.Selection.WholeStory
.Selection.Copy
End With
ThisWorkbook.Sheets(feuilletxt).Activate
Cells(L, C).Select
ActiveSheet.Paste |
D'après Walkenbach, ces histoires de dialogs ne sont pas bien documentées dans VBA. J'espère que l'un(e) de vous en a l'habitude.
En tout cas merci d'avance pour toute piste.
Cordialement
Pierre
Gestion de certains dialogbox
Bingo !
Bonsoir et merci à Bewan et à Ouskel'nor. La soluce du premier est la bonne, elle m'a d'ailleurs séduit parce c'est la plus économique. Ce que je ne comprends pas, c'est comment on peut se passer de l'argument "Filename:=" que je croyais obligatoire après Documents.Open.
Mon code: je l'ai emprunté à "VBA pour Excel 2003" de John Walkenbach, Eyrolles, 979 pages ! Un peu ardu.
Donc je coche Résolu et vous redis merci.
A la prochaine
Cordialement
Pierre