Forum > Visual Basic 6 > Divers > Débutants
j'ai inséré un certain nombre de champs de différents types (Cases à cocher, Cases d'option et zones de texte). Je souhaite pouvoir exploiter les résultats en automatisant une extraction depuis Word vers Excel.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSub TEST() 'Nécessite d'activer la référence "Microsoft Word xx.x Object Library" Dim WordAps As Object 'ouvre session word Set WordAps = CreateObject("Word.Application") 'Rendre l'application Word visible pendant l'opération WordAps.Visible = True '-------------CHOIX DU NOUVEAU FICHIER---------------------------------- Dim Repertoire As FileDialog Dim LeNouveauSondage As String 'Ouverture de la boite de dialogue permettant de sélectionner le fichier où se trouvent les données à importer Set Repertoire = WordAps.FileDialog(msoFileDialogFilePicker) With Repertoire 'Emplacement où la boite de dialogue doit s'ouvrir par défaut .InitialFileName = "C:\Documents and Settings\All Users" 'L'utilisateur n'est pas autorisé à sélectionner plusieurs fichiers .AllowMultiSelect = False 'Titre de la boite de dialogue .Title = "Choisissez le fichier à importer" 'Ouvrir la boite de dialogue .Show End With '-------------------Ouverture du document Word -------------------------- LeNouveauSondage = Repertoire.SelectedItems(1) WordAps.Documents.Open LeNouveauSondage '--------------------Récupère le contenu d'un champ----------------------- Dim Fich As Worksheet Dim nb_Champs As Integer 'nb_Champs = nombre de champs dans le document Word Dim i As Variant Dim Champ As Field Set Fich ThisWorkbook.Worksheets("Résultat du sondage") 'Résultat du sondage nom de la feuille de calcul nb_Champs = 116 'Il y a 116 champs i = 0 'initialisation For i = 0 To nb_Champs - 1 LeNouveauSondage.Field("i") Fich.Cells(i + 1, ActiveCell.col) 'ActiveCell.col index de la colonne de la cellule active i = i + 1 Next i '------------------QUITTER TOUT -------------------------- Set WordDoc = Nothing WordAps.Quit Set WordAps = Nothing End Sub
Dim Fich As Worksheet
Dim nb_Champs As Integer 'nb_Champs = nombre de champs dans le document Word
Dim i As Variant
Dim Champ As Field
Set Fich ThisWorkbook.Worksheets("Résultat du sondage") 'Résultat du sondage nom de la feuille de calcul
nb_Champs = 116 'Il y a 116 champs
i = 0 'initialisation
For i = 0 To nb_Champs - 1
LeNouveauSondage.Field("i") Fich.Cells(i + 1, ActiveCell.col) 'ActiveCell.col index de la colonne de la cellule active
i = i + 1
Next i
Dim Fich As Worksheet Dim nb_Champs As Integer 'nb_Champs = nombre de champs dans le document Word Dim i As Variant 'Dim Champ As Field Set Fich ThisWorkbook.Worksheets("Résultat du sondage") 'Résultat du sondage nom de la feuille de calcul nb_Champs = 116 'nb_Champs = LeNouveauSondage.Fields.Count i = 1 'initialisation For i = 1 To nb_Champs Fich.Cells(i + 1, ActiveCell.col) LeNouveauSondage.Fields(i) 'ActiveCell.col index de la colonne de la cellule active i = i + 1 Next i
Fich.Cells(i + 1, 5) = 5
http://www.developpez.net/forums/d848296/logiciels/microsoft-office/excel/macros-vba-excel/exporter-resultats-cases-cocher-formulaire-word-excel/
Cells(4, Ligne_Nr).Value = .ActiveDocument.Fields(i).Result
[..]
Set LeNouveauSondage = Repertoire.SelectedItems
'WordAps.Documents.Open LeNouveauSondage
'--------------------Récupère le contenu d'un champ-----------------------
Dim Fich As Worksheet
Dim nb_Champs As Integer 'nb_Champs = nombre de champs dans le document Word
Dim i As Variant
'Dim Champ As Field
Set Fich ThisWorkbook.Worksheets("Résultat du sondage") 'Résultat du sondage nom de la feuille de calcul
nb_Champs = 116
'nb_Champs = LeNouveauSondage.Fields.Count
i = 1 'initialisation
For i = 1 To nb_Champs
Fich.Cells(4, i).Value .ActiveDocument.Fields(i).Result 'ActiveCell.col index de la colonne de la cellule active
i = i + 1
Next i
[...]
Option Explicit Private Sub CommandButton1_Click() Dim WordApp As Object, LeNouveauSondage As Object, feuille As Worksheet, nb_champs As Integer Dim i As Integer, j As Integer, Repertoire As FileDialog, derlig As Long, nbfics As Long Set WordApp = CreateObject("Word.Application") Set feuille = ThisWorkbook.Worksheets("Feuil1") WordApp.Visible = True With Application.FileDialog(msoFileDialogOpen) .Filters.Add "documents Word", "*.doc", 1 .InitialFileName = "C:\Documents and Settings\All Users" .AllowMultiSelect = True .Title = "Choisissez le fichier à importer" .Show nbfics = .SelectedItems.Count End With For i = 1 To nbfics Set LeNouveauSondage = WordApp.Documents.Open(Application.FileDialog(msoFileDialogOpen).SelectedItems(i)) nb_champs = LeNouveauSondage.fields.Count derlig = feuille.Cells.SpecialCells(xlCellTypeLastCell).Row + 1 For j = 1 To nb_champs feuille.Cells(derlig, j) = LeNouveauSondage.fields(j).result Next j LeNouveauSondage.Close Next i Set LeNouveauSondage = Nothing End Sub
MsgBox ("La valeur du champs 1 est : " & LeNouveauSondage.Fields(1).Result)