De word vers Excel

Bonsoir tout le monde,

J'ai un petit problème.. je m'explique,

J'ai différents doc word nommés A, B, C ...

J'aimerais apporter les informations de ces docs (eéférence, fonction, heures, repos ..) vers un fichier excel. Chaque document word correspond à une feuille excel.

Je vous importe un document word.

La présentation est libre sur excel.

je vous remercie d'avance.

11a.docx (60.03 Ko)

Bonjour,

c'est tellement plus facile avec un formulaire excel, voici un exemple.

Bonjour,

c'est tellement plus facile avec un formulaire excel, voici un exemple.

Mus54--Formulaire Horaire semaine.xlsm

Bonsoir,

Merci d'avoir répondu. J'ai vraiment aimé la manière dont tu as présenté les choses. Je vais retenir ton idée.

Ceci dit le vrai problème c'est que j'ai beaucoup de documents word qui sont déjà complétés, tu auras pas une idée de comment copier ces infos vers excel automatiquement ?

Merci

Bonjour,

voici un exemple pour copier les données de tous les fichiers Word d'un répertoire,

les données sont copiées sur la feuille active.

il faut adapter le chemin sChemin = "C:\Users\isabelle\Documents\Test2\" 'à adapter

Sub Importer_Donnees_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

    ' -- Initialisation des variables
    Set wb = ThisWorkbook
    Set ws = wb.ActiveSheet                         'on sauvegarde sur feuille active
    sChemin = "C:\Users\isabelle\Documents\Test2\"  'à adapter
    sNomFichier = Dir(sChemin & "*.doc*")           'pour ouvrir tous les fichiers .doc*. 1er fichier.

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

    Application.ScreenUpdating = False

    ' -- Boucle sur les fichiers
    Do While Len(sNomFichier) > 0

        Set WDoc = WApp.Documents.Open(sChemin & sNomFichier)   'ouvre le document Word
        LastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
        ws.Cells(LastRow, 1) = sNomFichier
        WApp.Selection.WholeStory
        Set WSel = WApp.Selection
        WSel.Copy
        With ws
        .Cells(LastRow + 1, 1).PasteSpecial (xlPasteValues)
        End With

        WDoc.Close False                'fermer le document Word sans enregistrer
        sNomFichier = Dir               'prochain document
    Loop

SortieNormale:
    Application.ScreenUpdating = True
    WApp.Quit                           'Fermer l'instance de Word
    Application.StatusBar = False       'Remise à zéro de la barre d'état

End Sub

Bonjour,

D'abord je tiens à te remercier pour ton aide. J'ai bien compris le code pour le report de word vers excel.

Ensuite j'aimerais avoir quelques éclaircissements sur le premier fichier que tu réalisée, si tu voudras bien.

Je n'ai pas très bien compris la macro dans la feuille 1.. je ne peux pas l'exécuter pas pas pour comprendre.. et aussi tu as mis qu'il fallait marquer les heures en décimal mais quand j'écris quelque choses la date va en 1900 ..

si tu peux juste m'expliquer cela, ça sera sympa.

Merci

cdlt

Bonjour,

J'ai apporté quelque modification,

voici la nouvelle version:

la macro Worksheet_Change s'applique à la plage "C9:C15,E9:E15,G9:G15,I9:I15"

elle sert à transformer un nombre entré au format décimal en un nombre "date heure"

les conditions sont :

  • Target est diffirent de 0
  • Target < 24 ' 24 / 24 =1h
  • on ne peut entrer un nombre en colonne E ou I qui soit plus petit que celui vis-à-vis sur la colonne C ou G

pour l'exécuter en mode pas à pas, il faut placer un point d'arrêt sur la première ligne commande

puis changer un des nombre de la plage "C9:C15,E9:E15,G9:G15,I9:I15". la macro se met en mode exécution puis se met en pause au point d'arrêt, tu peux, à partir de là, appuyer sur F8

ps/ tu peux placer un point d'arrêt avec la souris en cliquant dans la barre de marge en face de la ligne où tu veux le mettre.

pour l'enlever, on clic à nouveau sur le point.

excel vba point d arret

Bonjour,

Je te remercie pour tes explications.

Sujet résolu ))

Bonjour de nouveau,

J'ai plusieurs petits problèmes ..

- Par exemple quand je fais "Suppr" et qu'en suite je renseigne l'heure ça me change la date -> image C11

dès fois les salariés travaillent jusqu'à tard (1h 2h du matin) du coup le soir ça pose un prblm..

- Pour la plage midi ça aucun souci mais pour le soir quand je renseigne les heures : si heur fin < heure début ça m'affiche " #### " -> image ligne 12

J'ai cherché d'où ça pouvait venir mais j'ai pas trouvé grand chose. Aurais tu une idée ?

Merci

capture

bonjour,

j'ai refais une nouvelle version et fais plusieurs test,

si tu veut bien tester ce fichier et me dire s'il y a encore des problèmes ?

re,

Je crois savoir la source du problème. Quand je fais suppr je pense que la macro s'arrête donc forcément si j'insère des valeurs y a des erreurs.

Du coup j'indique dans le guide que pour supprimer une valeur il faut absolument utiliser le bouton que tu as crée, sinon on sera obligé de relancer la macro.

A part cela ça à l'air de fonctionner correctement.

Merci infiniment.

peut tu me dire à partir de quel commande tu fais supprimer,

est ce que c'est avec la touche DEL ou bien à partir de la commande "Effacer le contenu" ?

peut tu me dire à partir de quel commande tu fais supprimer,

est ce que c'est avec la touche DEL ou bien à partir de la commande "Effacer le contenu" ?

J'utilisais DEL mais sur la version 3 ça bug pas tout fonctionne parfaitement.

Rechercher des sujets similaires à "word"