Selectionner plusieurs fois même info word pour copier ds excel

Résolu
lau-vaya Messages postés 2 Statut Membre -  
lau-vaya Messages postés 2 Statut Membre -
Bonjour,

Je dispose actuellement d'un fichier word contenant des informations avec la forme suivante:

" Nom: A1
Superficie: B1
Description: C1

Nom: A2
Superficie: B2
Description: C2

(...) "

En gros, chaque triplet "Nom, Superficie, Description" correspond à un objet.
J'aimerais passer ces informations sur excel avec la forme suivante:

Première ligne: Nom / Superficie / Description (une colone par item)
Deuxième ligne: A1 / B1 / C1
Troisième ligne: A2 / B2 / C2
(...)

Je suis en train de coder une macro depuis excel pour faire ça. Ma question est la suivante: Je suis pour le moment capable de trouver la première occurence de "Nom:" et donc de sélectionner et copier A1 dans excel, mais je cherche à trouver tous les "Noms:" afin de pouvoir copier A1 puis A2 puis A3... Je cherche donc une commande qui me permettrait de trouver le "Nom:" suivant et pas de revenir au début.

Pour le moment mon code est:

    For i = 1 To (mon nombre d'objets)
WApp.Selection.HomeKey unit:=6
WApp.Selection.Find.ClearFormatting
WApp.Selection.Find.Execute "Nom:"
WApp.Selection.MoveRight unit:=3, Count:=2, Extend:=2
Set WSel = WApp.Selection
ws.Cells(i, 1) = Split(WSel, ":")(1)
Next


Si quelqu'un sait comment mettre en forme la commande qui me manque ce serait génial. (quelque chose du type "Forward"?)

Merci beaucoup !
Laurène

1 réponse

  1. lau-vaya Messages postés 2 Statut Membre
     
    Bonjour, j'ai trouvé ma solution. Pour ceux que ça intéresse je mets mon code plus loin. L'astuce que j'utilise est qu'une fois que jai trouvé le 1er "Nom:" je le modifie et je recommence à chercher un "Nom", je trouve donc le 2e et ainsi de suite.

    Sub import_word()

    ' -- Déclaration des variables
    Dim wb As Workbook 'classeur Excel dans lequel on importe les données
    Dim ws As Worksheet 'onglet Excel dans lequel on importe les données
    Dim sChemin As String 'répertoire contenant les fichiers Word
    Dim sNomFichier As String 'nom du fichier Word
    Dim WApp As Object, WDoc As Object, WSel As Object
    Dim i As Integer
    Dim Text As String
    Dim nbipa As Integer
    Dim country As String

    ' -- Initialisation des variables
    Set wb = ThisWorkbook 'on travaille sur ce fichier excel
    Set ws = wb.Sheets(1) 'on sauvegarde dans la 1re feuille
    sChemin = ThisWorkbook.Path & "\" 'si les fichiers Word se trouvent dans le même répertoire que le fichier Excel

    sNomFichier = "algeria.doc"
    nbipa = 20 'nombre dIPA dans le pays, attention a avoir le nombre exact sinon rajout de lignes
    country = "Algeria"

    Set WApp = CreateObject("Word.Application")
    WApp.Visible = True 'ne pas afficher Word pendant l'exécution

    i = 1 '1re ligne où on va écrire les données dans le fichier Excel

    Application.ScreenUpdating = False

    Set WDoc = WApp.Documents.Open(sChemin & sNomFichier) 'ouvre le document Word

    ' SITE NAME (International name)
    WApp.Selection.HomeKey unit:=6
    For i = 1 To nbipa
    WApp.Selection.Find.ClearFormatting
    WApp.Selection.Find.Execute "SITE NAME (International name):" 'On trouve le texte "SITE NAME (International name):"
    WApp.Selection.MoveRight unit:=3, Count:=2, Extend:=2 'On se déplace de 3 mots
    Set WSel = WApp.Selection 'sélection du texte trouvé
    ws.Cells(i + 1, 1) = Split(WSel, ":")(1)
    WApp.Selection.Find.Execute Replace:=wdReplaceOne
    With WApp.Selection.Find
    .Text = "SITE NAME (International name):"
    .Replacement.Text = "SITE NAME (International name) DONE :"
    End With
    WDoc.Save
    Next

    Application.ScreenUpdating = True
    WApp.Quit

    End Sub


    Vous pouvez clôre mon post (je ne trouve pas comment faire) ^^
    Merci!
    0