IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Word Discussion :

insérer des données depuis excel suivant la saisie d'un champ dans word


Sujet :

Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut insérer des données depuis excel suivant la saisie d'un champ dans word
    Bonsoir à tous et toutes.
    nouveau sur ce forum, je suis à la recherche d'une solution dans Word de pouvoir insérer un tableau (toujours le même) qui les cellules font référence à une recherche dans Excel par rapport à la saisie de la première colonne.
    Je sais pas si je suis clair

    1 - j'insère un tableau ou un champs... le but étant de saisir la valeur 'ID' de 'référence' ex : 8100
    puis les colonne B, C, D se remplissent des valeurs présente dans la ligne du fichier excel ou se trouve dans la colonne A (ID) la valeur 8100

    PS : je précise que dans le doc Word il y aura beaucoup de 'ID'.

    Avez vous une idée ?
    Merci d'avance.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    En fait c'est comme un rechercheV dans excel.

    quand je parle d'un tableau, ca pourrait d'une autre façon exemple on saisie le texte à rechercher entre {xx} ou [xx] ou !xx! ou autre... puis on 'rapatrie' les valeur d'Excel.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par percewood Voir le message
    Bonjour,

    Un exemple a adapter dans ce billet : https://www.developpez.net/forums/d2.../#post11592023

    Au lieu de charger la matrice, il suffit de mettre une condition pour ne récupérer que votre enregistrement. Le fichier de données et le document doivent être dans le même répertoire.
    Si votre traitement nécessite beaucoup d'allers-retours, la méthode a mettre en oeuvre est plutôt celle du fichier Word.

    Le fichier en relation avec ma dernière réponse est celui-là :

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Bonsoir Eric,
    Merci pour votre envoi avec un exemple !

    je dois louper une étape.. quand j'exécute la macro 'lancer la boite de dialogue' ca ouvre bien la popup pour voir les valeur du fichier Excel, je peux filtrer puis je clique sur OK
    ensuite cette popup disparait et apparait une nouvelle petite fenêtre d'information avec les bonnes valeurs puis je clique sur OK et la il ne se passe rien...

    j'ai loupé une étape ?
    Encore merci pour cette première étape

    Question : est-ce que le document word ce mets à jour si les valeurs du fichier excel change, j'ai l'impression que non... je me trompe ?

    Cdlt jean-Marc

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,


    j'ai loupé une étape ?
    Non pas du tout, c'était juste pour vous montrer comment récupérer les infos dans Excel. Vous pourriez mettre à jour vos champs de la même manière que sont alimentés les TextBox.



    Question : est-ce que le document word ce mets à jour si les valeurs du fichier excel change, j'ai l'impression que non... je me trompe ?
    Il faut réaliser pour cela une copie avec liaison. Dans l'exemple ci-dessous, on part d'Excel pour mettre à jour un document Word. L'exemple ne correspond pas à votre exemple, puisqu'ici on copie avec liaison tout un tableau dans un signet, mais le principe est identique. A noter quand même que la liaison n'est pas dynamique, la mise à jour se fait soit à l'ouverture du document soit sur demande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    Sub EnvoyerDonneesExcelVersWord(ByVal NomDuDocument As String)
     
    Dim oWdApp As Word.Application, oWdDoc As Word.Document  ' En early binding (Si Word est référencé)
    ' Dim oWdApp As Object, oWdDoc As Object ' En late binding
     
    Dim Repertoire As String
    Dim AireMateriel As Range
    Dim I As Integer
     
        On Error GoTo FinWord
     
     
        Set AireMateriel = Sheets("Matériel").Range("Matériel[[#Data],[#Totals],[Désignation]:[Total CHF]]")
        AireMateriel.Copy ' Copie les données Excel
     
     
        Set oWdApp = CreateObject("Word.Application")
        Set oWdDoc = oWdApp.Documents.Add
     
        oWdApp.Visible = True
     
        'Ouvre le document Word
       ' Repertoire = "\\Home3.corp.ads.migros.ch\usrhome$\M0064768\Desktop\Fichiers Test\"
        Repertoire = ActiveWorkbook.Path & "\"
     
        Set oWdDoc = oWdApp.Documents.Open(NomDuDocument) 'Repertoire & "Offre_test.docm")
        With oWdDoc
     
             If .Bookmarks.Count = 0 Then
                MsgBox "Absence de signet Matériel !", vbCritical
                GoTo FinWord
             End If
     
             If .Bookmarks.Exists("Matériel") = False Then
                 MsgBox "Absence de signet Matériel !", vbCritical
                 GoTo FinWord
             End If
             .Bookmarks("Matériel").Select
     
             oWdApp.Selection.PasteSpecial Link:=True, DataType:=0, Placement:=0, DisplayAsIcon:=False
     
             .Close savechanges:=True
     
         End With
     
     
        Application.CutCopyMode = False 'Annuler le mode couper/copier
     
        MsgBox "Fin de mise à jour !", vbInformation
     
        GoTo FinWord
     
    FinWord:
     
        oWdApp.Quit
        Set AireMateriel = Nothing
        Set oWdApp = Nothing
        Set oWdDoc = Nothing
     
    End Sub

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses.

    j'ai fais un test ca marche bien sur un fichier source d'env 20 lignes, par contre mon fichier à env 12000 lignes et donc impossible de travailler la PopUp s'affiche au bout de 20min et le choix dans le filtre n'en parlons pas LOL

    Y a t'il un moyen de réduire fortement ce délai ?
    Sinon il va falloir que je trouve une autre solution....

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par percewood Voir le message
    Oui, il faudrait passer par l'intermédiaire d'une table intermédiaire, celle-ci serait établie avec Power Query : https://www.developpez.net/forums/bl...ique-surcroit/

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par percewood Voir le message
    Pour Power Query, vous aurez sans doute besoin de supprimer le traitement en arrière plan qui est généré par défaut : https://www.developpez.net/forums/d2.../#post11654619

    Un fichier exemple est présent dans ce billet.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Pour Power Q balises actives uery, vous aurez sans doute besoin de supprimer le traitement en arrière plan qui est généré par défaut : https://www.developpez.net/forums/d2.../#post11654619

    Un fichier exemple est présent dans ce billet.

    Donc si je comprend je n'ai pas besoin de passer par du VBA ? si oui comment je 'connecte' cette table 'balises actives' avec WOrd.
    J'avoue que je suis perdu...

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par percewood Voir le message
    J'avoue que je suis perdu...
    Avez-vous essayé d'utiliser Power Query pour filtrer vos données ?
    Si oui, vous aurez compris l'intérêt d'utiliser un tableau structuré très restreint et non plus la table avec vos 12000 enregistrements. La seule condition pour Power Query est d'avoir vos 12000 enregistrements dans un tableau structuré, sinon il vous faudrait passer par une recherche avancée sur un résultat sur un autre onglet.

    Avec cette méthode, le VBA est nécessaire seulement pour faire varier les paramètres de sélection et mettre à jour. Son intérêt également est d'avoir un résultat quasi immédiat sur des bases "monstrueuses".

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Avez-vous essayé d'utiliser Power Query pour filtrer vos données ?
    Si oui, vous aurez compris l'intérêt d'utiliser un tableau structuré très restreint et non plus la table avec vos 12000 enregistrements. La seule condition pour Power Query est d'avoir vos 12000 enregistrements dans un tableau structuré, sinon il vous faudrait passer par une recherche avancée sur un résultat sur un autre onglet.

    Avec cette méthode, le VBA est nécessaire seulement pour faire varier les paramètres de sélection et mettre à jour. Son intérêt également est d'avoir un résultat quasi immédiat sur des bases "monstrueuses".
    Bonjour encore merci pour votre aide
    Bon j'ai fais un modèle avec Power Query (en suite les instructions ci dessus) mais je dois dire que je bute un peu.
    ca marche si dans Excel je fais la recherche puis actualisé (le tableau Query se mets à jour) puis je vais dans Word et la c'est rapide mais je n'ai que les variables contenues dans le tableau Query (ce qui est normal)

    Je joins un zip avec les 2 fichiers.
    Si je comprend il faudrait que le champ 'Filtre' puisse renseigner la recherche (colonne S) dans le tableau excel pour avoir les variables ainsi filtrées dans le tableau Query ?
    Test.7z

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par percewood Voir le message
    Je ne peux pas exploiter ce type de fichier. Dans l'explorateur de fichiers, sélectionnez vos fichiers, clic droit, Envoyer vers et dossier compressé.

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut j'espère que ca va fonctionner ;)

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par percewood Voir le message
    J'imagine que ce sont ces 7 colonnes qui doivent apparaître dans la listbox :

    Pièce jointe 586506

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Les 4 ou 5 premières suffisent mais dans l'idéal les 7

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par percewood Voir le message
    Pour restreindre le nombre d'enregistrements dans la table, quelles sont vos règles de gestion pour filtrer ?

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Pour restreindre le nombre d'enregistrements dans la table, quelles sont vos règles de gestion pour filtrer ?
    Le problème est que normalement je n'ai pas de règle j'ai besoin d'avoir accès à l'ensemble de la base... ;( soit les 12000 lignes.

  18. #18
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par percewood Voir le message
    OK, mais quand vous avez besoin de faire une sélection, comment vous y prenez-vous ? Quels sont vos critères de sélection ?

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    En règle générale je recherche par le nom de la variable en saisissant au moins 2 lettres

    exemple je recherche toutes les variables correspondant à la sonde Pr100
    je saisie donc Pr100 pour afficher toutes les variables de cette sonde.

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2020
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2020
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    je vais dire peut être une bêtise mais si je pouvais saisir depuis word ma recherche via une box qui viendrais écrire dans une cellule du fichier excel cela permettrai de filtre la table Query,
    puis ensuite appeler la macro de recherche qui fonctionne bien (fichier précédant )

    je viens d'adapter un bout de code quin permet de récupérer la valeur d'une valeur d'une cellule dans Word il faudrait faire l'inverse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
    28
    Sub TexteCellule()
    Dim xlApp As Excel.Application 'Application Excel pour ouvrir un fichier XLS
    Dim xlWb As Excel.Workbook     'Classeur Excel
    Dim xlWs As Excel.Worksheet    'Feuille du classeur
    Dim sttemp As String
    Dim Chemin As String
     
            Chemin = ActiveDocument.Path & "\table-All-Doc-Interne.xlsm"
     
            Set xlApp = New Excel.Application
            Set xlWb = xlApp.Workbooks.Open(Chemin) 'Ouverture du fichier
            Set xlWs = xlWb.Worksheets(1)           'Utilisation de la première feuille
     
     
    sttemp = xlWs.Cells(2, 1)
    Debug.Print sttemp
     Selection.Range.Text = sttemp
    ' Le contenu de la cellule se trouve dans la variable texte 'sttemp'.
     
            xlWb.Close savechanges:=False
            xlApp.Quit
     
            Set xlWs = Nothing
            Set xlWb = Nothing
            Set xlApp = Nothing
     
     
    End Sub

Discussions similaires

  1. Coller des données depuis Excel
    Par Dark_TeToN dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/12/2011, 13h47
  2. Coller des données depuis Excel
    Par Dark_TeToN dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/12/2011, 09h44
  3. [Débutant] importer des données depuis Excel
    Par canary dans le forum MATLAB
    Réponses: 9
    Dernier message: 02/05/2010, 18h03
  4. [AC-2003] Insérer des données depuis un resulset ODBC
    Par DanaX dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/07/2009, 22h49
  5. importer et exporter des données depuis excel
    Par thonyyzz dans le forum C++
    Réponses: 2
    Dernier message: 22/04/2008, 20h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo