[VBA] a l'aide ,pitié, please , ayuda

clben23 Messages postés 22 Statut Membre -  
 Utilisateur anonyme -
bonjour,

bon voila la situation:

j'ai créé une macro excel qui ouvre une feuille word et lance une macro appartenant à cette meme feuille word.cette derniere lance un formulaire qui lance des MsgBox en fonction d'un parametre (si on acocher des CheckBox ou non) toujours sur la feuille word recement ouverte.

Mes deux problemes:
1° je voudrais savoir si on peut selectionner une ligne de texte ou meme un objet dans une MsgBox depuis word (pitié dite oui et comment!!!!!)?
2° je voudrais importer les valeurs renseigné par la MsgBox vers Excel (plus précisment le classeur qui a ouvert la feuille word)et les stocker dans une feuille nommé "variables" .
tout les noms peuvent etre changé a tout moment, seul "variables" est invariant (lol...).

Voila si vous faites ca je vous sacre chevalier de merci mon dieu ca fait 5 jours que je tourne en rond et que je pense toucher au but!!!!!!!!

merci encore
Clben23
Configuration: Windows 2000
Internet Explorer 6.0

7 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    La fonction [ InputBox ] permet de récupérer des valeurs.

    Lupin
    0
  2. clben23 Messages postés 22 Statut Membre
     
    salut,
    ok alors voila ce que ca donne avec le input box:

    If case_coche = True Then
    pos = InputBox(prompt:="choisir le lieu ou se positionnera le tableau " & tableaux, Title:="position du tableau " & tableaux)
    End If


    et comment je fais ensuite pour envoyer les resultats vers une feuille excel deja ouverte tout en sachant que le input box a été rédigé sous word?

    merci
    0
  3. Utilisateur anonyme
     
    Bonjour,

    exemple :

    soit une macro sous Word :

    Function Capture() As String
    
        Capture = InputBox("Saisie", "Essai de transfert", "Blanc")
    
    End Function
    


    et une macro sous Excel qui lance la macro sous Word pour en récupérer la valeur :

    Sub ChercheReponse()
    
        Dim objWord As Variant, objAppW As Variant
        Dim Fichier As String, Reponse As String
        
        Fichier = "C:\Documents\Word\Transfert.doc"
        Set objAppW = CreateObject("Word.Application")
        Set objWord = objAppW.Documents.Open(Fichier)
        objAppW.Visible = True
        Reponse = objAppW.Application.Run(MacroName:="Capture")
        MsgBox Reponse
        
    End Sub
    '
    


    Lupin
    0
    1. clben23 Messages postés 22 Statut Membre
       
      ca marche super bien!!!!

      deux petit hic:

      1) il faudrais que la feuille excel soit activer automatiquement apres que l'on ait selectionner dans la feuille word (donc apres la message box)

      2) on ne peut que ecrire dans la inputbox , on ne peut pas selectionner une chaine de caractère (voir merveille des merveilles un objet excel!!)

      si tu pouvais m'aider pour ca aussi , ca serait enorme.

      dans le cas contraire je te remercie vivement car tu as déja fait beaucoup


      Merci clben23
      0
  4. clben23 Messages postés 22 Statut Membre
     
    merci je vais essayer ca ca l'air pas mal du tout
    je tient au courant
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    re :

    en fait, je crois qu'il y a moyen de paramétrer le [ InputBox ] pour faire ce que tu veux,
    toutefois je ne l'ai jamais fait sous Word, j'ai utiliser cette option une fois sous Excel afin
    de faire sélectionné à l'utilisateur une plage de cellule.

    je vais fouiller dans mes archives car ma mémoire n'est pas très bonne et je te reviens la-dessus !

    @+

    Lupin
    0
  7. Utilisateur anonyme
     
    Bonjour,

    Alors après quelques recherches, j'ai bien retrouvé la function [ InputBox ] avec l'argument
    permettant de saisir autre chose que du texte, en l'occurence ici une plage de cellules :

    Sub SaisiePlage()
    
        Dim Plage As Range, Cellule As Range
        
        Set Plage = Application.InputBox("Saisie", Type:=8)
        
        For Each Cellule In Plage
            MsgBox Cellule.Value
        Next Cellule
        
    End Sub
    '
    


    Pour que Excel redevienne au premier plan, il est possible d'ajouter l'instruction :

    objAppW.Visible = False

    Lupin
    0
    1. clben23 Messages postés 22 Statut Membre
       
      salut merci pour ces information, seulement (eh oui!) il ya un hic (re):

      la macro de selection ets sous word donc le type de la selection ne peut pas être range.

      enfin bref j'ai essaye et a marche pô.

      sinon j'avis pensé a un truc du genre


      Function Capture As String
      MsgBox " selectionner la portion de texte qui sera remplacée"
      capture=selection
      run attente
      end function


      et une autre macro du genre:

      Public Function touche()
      
      CustomizationContext = NormalTemplate
      acode = BuildKeyCode(wdKeyAlt, wdKeyControl, wdKeyW)
      
          While KeyPress <> acode
          Do
          Loop
          Wend
          
          End Function


      ainsi on aurait pu selectionner tranquilement ce qu'in voulait comme texte en attente de la pression simultané des touches Ctrl et Alt seulement voila mon truc avec les touche a marche pô on plus....


      dit moi ce que tu en pense docteur, est ce grave?

      peut tu la aussi jouer au jedi clair?

      merci d'avance si tu peut, et encore merci pour tout
      0
  8. Utilisateur anonyme
     
    re :

    oui, en effet je n'ai pas réussi à faire fonctionner l'instruction [ InputBox ] sous Word avec
    le même paramètre.

    Public Function Touche()
    
        Dim ACode As String
    
        ACode = BuildKeyCode(wdKeyAlt, wdKeyControl, wdKeyW)
    
        While KeyPress <> ACode
            DoEvents
        Wend
        
    End Function
    


    Dans ce code,

    While KeyPress <> acode ' Boucle 1
    Do ' Boucle 2
    Loop ' Fin boucle 2
    Wend ' Fin Boucle 1

    il m'apparaît que le programme s'emprisonne dans la
    boucle 2 et puisque celle-ci n'a pas de condition, il n'en
    sort jamais, il n'accède jamais à la ligne :
    While KeyPress <> acode ' Boucle 1

    Si le temps me le permet, je vais jeter un coup
    d'oeil de façon plus minutieuse ce week-end !

    @+

    Lupin
    0