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

  1. #1
    Membre à l'essai
    Mettre la valeur du contenu en fonction d'un autre contenu selectionner
    Bonjour à tous

    J'atteins une partie de mes limites sur word

    Un contenu sous forme de liste déroulante est crée (jaune) Le nom complet et la valeur son identique

    Un 2nd contenu sous forme de liste déroulant (vert) . Le nom complet de la ville et la valeur serait l'adresse par exemple

    Est il possible de lié le résultat du premier contenu (jaune) et de définir le 2nd en vert

    Je m'explique si je sélectionne NANTES dans l'encadré jaune => Ca me donne l'adresse de nantes dans l'encadré vert.

    Un peux comme excel et sa fonction rechercheV

    Merci pour votre aide

  2. #2
    Membre averti
    Bonjour,

    Pour moi ta deuxième liste déroulante ne sert à rien. En fait ce que tu veux, c'est un texte particulier en fonction du choix dans la liste déroulante jaune... Donc, le résultat de ce choix ne doit pas être mis sous forme de liste.

    De toutes façons, il faut une macro. J'ai un exemple ici :
    http://faqword.com/index.php/word/fo...controles/1015

    Dans cet exemple ton adresse s'affichera dans une zone de texte. Tu pourrais aussi choisir une cellule de tableau par exemple.

    m@rina

  3. #3
    Membre à l'essai
    J'essaie de faire la macro mais je n'y arrive pas

    Pour info j'ai mis en titre de la premiére liste : Agence
    Et de la zone texte T 21

    Comment puis je utiliser la formule dans un tableau : je serais en case B2



    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
     
    Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
     
    Dim texte As String
    Dim choix As String
    choix = CC.Range.Text
     
    If CC.Title = "Agence" Then
     
    Select Case choix
    Case "Nantes"
     texte = "TEST NANTES LIEUX"
    Case "Lyon"
     texte = "TEST LIEU LYON"
     
    End Select
     
    With ActiveDocument.Shapes("T21").TextFrame
        .TextRange.Text = texte
        .AutoSize = True
    End With
    End If
    End Sub


    Citation Envoyé par m@rina Voir le message
    Bonjour,

    Pour moi ta deuxième liste déroulante ne sert à rien. En fait ce que tu veux, c'est un texte particulier en fonction du choix dans la liste déroulante jaune... Donc, le résultat de ce choix ne doit pas être mis sous forme de liste.

    De toutes façons, il faut une macro. J'ai un exemple ici :
    http://faqword.com/index.php/word/fo...controles/1015

    Dans cet exemple ton adresse s'affichera dans une zone de texte. Tu pourrais aussi choisir une cellule de tableau par exemple.

    m@rina

  4. #4
    Membre averti
    Tu dis que tu n'y arrives pas, mais on ne sait pas pourquoi... Message d'erreur ??

    Pour un tableau, en cellule B2, tu remplaces le remplissage de la zone de texte par :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ActiveDocument.Tables(1).Rows(2).Cells(2).Range.Text = texte


    Supposant qu'il s'agit du premier tableau du document.

    J'insiste sur le fait que, contrairement à Excel, il y a peu d'événements avec Word, et avec ces contrôles de contenu, il s'agit d'un événement à la sortie (il n'existe pas d'événement sur le changement). Donc, une fois le choix fait, il faut vraiment cliquer ailleurs.

  5. #5
    Membre à l'essai
    Quand je lance la macro ça me fait

    Microsoft Word =0

    Je ne pige vraiment pas le truc...

    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
    Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
    'macro écrite par m@rina
     
    Dim texte As String
    Dim choix As String
    choix = CC.Range.Text
     
    If CC.Title = "Agence" Then
     
    Select Case choix
    Case "Nantes"
     texte = "Adresse Nantes"
    Case "Lyon"
     texte = "Adresse Lyon"
    End Select
     
    With ActiveDocument.Shapes("Adresse").TextFrame
        .TextRange.Text = texte
        .AutoSize = True
    End With
    End If
    End Sub
     
    Private Sub Document_ContentControlOnExitee(ByVal CC As ContentControl, Cancel As Boolean)
    If CC.Title = "Saisons" Then
     
    Dim texte As String
    Dim choix As String
     
    choix = CC.Range.Text
     
    Select Case choix
    Case "Nantes"
     texte = "Adresse Nantes"
    Case "Lyon"
     texte = "Adresse Lyon"
    End Select
     
    'ActiveDocument.InlineShapes("Adresse").TextFrame.TextRange.Text = texte
    ActiveDocument.InlineShapes(1).Select
    Selection.TypeText Text:=texte
    End If
    End Sub
    Sub testd()
    MsgBox ActiveDocument.Shapes.Count
    For Each machinchose In ActiveDocument.Shapes
    MsgBox machinchose.Name
    Next
    End Sub

  6. #6
    Membre averti
    Déjà, tu n'as pas à "lancer" la macro, c'est une macro événementielle...

    La première macro ne peut pas fonctionner, tu n'as pas de "Shape" nommé "adresse".*

    La seconde macro ne peut pas fonctionner, il n'y a pas d'Inlineshape, et une InlineShape n'a pas de propriété Textframe

    Pour le tableau :
    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
    Private Sub Document_ContentControlOnExit(ByVal CC As ContentControl, Cancel As Boolean)
    If CC.Title = "Agence" Then
     
    Dim texte As String
    Dim choix As String
     
    choix = CC.Range.Text
     
    Select Case choix
    Case "Nantes"
     texte = "Adresse Nantes"
    Case "Lyon"
     texte = "Adresse Lyon"
    End Select
     
    ActiveDocument.Tables(1).Rows(5).Cells(2).Range.Text = texte
    End If
    End Sub


    m@rina

  7. #7
    Membre à l'essai
    Bonsoir Marina.

    Je n'arrive pas à comprendre le langage. On parle de Inshape et de shape ça ne me parle pas du tout

    J'ai crée une liste déroulante avec nom et balise Adresse.

    Après je ne vois pas comment il faut faire. JE te remercie , je suis franchement désolé de t'avoir fait bosser pour rien

  8. #8
    Membre averti
    Bonsoir,

    Je ne sais plus quoi te répondre !
    Tu me donnes un fichier, je te donne la macro qui va avec...

    Que faire de plus ?

    Là, on ne parle plus de Shape ou Inlineshape... Si toutefois ça t'intéresse, j'explique ici :
    http://faqword.com/index.php/word/ge...es-macros/1135

    m@rina

  9. #9
    Membre à l'essai
    Bonsoir Marina,

    Tout es ok. Je devais sacrément être à la rue avant hier

    JE te remercie pour le code et les liens. J'ai pu apprendre pas mal de choses.

    Bonne soirée

  10. #10
    Membre averti
    Ahhhh ! me voilà rassurée !!!
    ça finissait par ressembler à une conversation en mandarin sans sous-titrage !!

    m@rina

  11. #11
    Membre à l'essai


    En plus j'ai pu réadapter pas mal de chose, ça m'aide énormément

    Citation Envoyé par m@rina Voir le message
    Ahhhh ! me voilà rassurée !!!
    ça finissait par ressembler à une conversation en mandarin sans sous-titrage !!

    m@rina

###raw>template_hook.ano_emploi###