Excel/VBA Créer une cellule bouton

rv53 -  
 RV53 -
Bonjour,
Excel/VBA : Je voudrais associer un bouton que j’appellerai « fusionner » à une cellule pour lancer une macro. Lorsque l’on clickera dessus, cela lancera une fusion (conventions de stages) avec les paramètres de la ligne de la cellule. Par copier/coller, je pourrai le faire sur toutes les lignes de mon tableau.
Merci d’avance
Configuration: Windows XP
Firefox 3.0.12

5 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Tu pourrais lancer ta macro en cliquant sur la cellule: cette macro événementiell démarre quand yu cliques dans l'espace A1 A100

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, Range("A1:A100")) Is Nothing Then: Exit Sub
    
    '...ton code ou appel de ta macro
    
    End Sub


    "Target" représente la cellule cliquée
    target.row te donne la ligne

    pour installer clic droit sur l'onglet de ta feuille- visualiser le code-
    1
    1. rv53
       
      Merci Michel, cela fonctionne bien.
      Il me reste à trouver une macro pour lancer word et, mieux encore, activer une fusion correspondant au N° de la ligne de la cellule activée.
      Pas de la tarte!!!

      rv53
      0
    2. RV53
       
      Pour passer des variables d'Excel à Word je fais :
      Dim wordApp As Word.Application
      Dim wordDoc As Word.Document
      Dim monParametreVB As Integer
      etc.

      mais le compilateur ne peut compiler. Il me dit "type défini par l'utilisateur non défini"
      Avez-vous une solution?
      RV53
      0
    3. RV53
       
      Je viens de de faire un tableau qui complète par signets un document word (convention) :
      Set WordApp = CreateObject("word.application") 'ouvre session word
      Set WordDoc = WordApp.Documents.Open("C:\mondocument.doc") 'ouvre document Word
      WordApp.Visible = True 'word non masqué pendant l'operation
      'les signets du document Word sont nommés Signet1 et Signet2
      WordDoc.Bookmarks("Signet1").Range.Text = Cells(ligne, 1)
      WordDoc.Bookmarks("Signet2").Range.Text = Cells(1, 2)
      ActiveDocument.SaveAs Filename:="mondocument " & Cells(ligne, 1) & " " & Cells(ligne, 6) & ".doc", _
      FileFormat:=wdFormatDocument, LockComments:=False, Password:="", _
      AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
      EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
      :=False, SaveAsAOCELetter:=False
      Set WordDoc = WordApp.Documents.Open("C:\mondocument.doc")
      ActiveDocument.Close 0

      Je ne peux faire la manip qu'une fois correctement. La seconde fois, le débogueur bloque "erreur 462. Le serveur distant n'existe pas ou n'est pas dispo".
      Y a-til une solution?
      Merci
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,
    tes 2 dernières lignes posent problème ( a mon avis, donC...)
    Set WordDoc = WordApp.Documents.Open("C:\mondocument.doc")
    ActiveDocument.Close 0


    le pointeur wordDoc est déjà activé ligne2... et donc, VBA n'est pas d'accord (mondocument est ouvert et il y a déjà un pointeur wordDoc d'affecté)

    par principe lorsque tu active un pointeur par SET (qqsoit l'objet), il vaut mieux terminer ta macro en libérant
    set machin=nothing
    set truc=nothing
    0
    1. RV53
       
      Cela ne marche pas plus même en faisant set WordDoc=nothing ou WordApp=nothing.
      La seconde fois il bloque à la ligne de sauvergarde du fichier que j'ai créé.
      Même en supprimant les 2 dernières lignes.
      Je pensais qu'après avoir crée et sauvegardé le nouveau document, l'original restait quelque part, et les 2 dernières lignes servaient à le fermer sans le modifier.
      Merci et A+
      0
  3. RV53
     
    J'ai l'impression que c'est 'activedocument' qui pose pb. Il me dit qu'il contient "<le serveur distant n'existe pas ou n'est pas disponible>". Message qui apparaî dans le message d'erreur du débogueur!
    A+
    0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    je viens de retrouver sur une étagère de mon grenier un essai datant de 200"-2004 pour des liaisons
    entre XL et WD où le pb activedocument provoquant l'erreur "serveur distant" est évoqué.
    peut être que...
    https://www.cjoint.com/?iCjApylxtB

    en espèrant que...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. RV53
     
    J'ai trouvé la solution en utilisant
    With WordDoc
    .SaveAs "D:\Sanceau\STAGES\convstage " & Cells(ligne, 1) & " " & Cells(ligne, 2) & " " & Cells(1, 6) & ".doc"""
    End With
    cela marche tb.
    Maintenant je coince sur l'automatisation d'un lancement du pdf. J'arrive à lancer une impression sur l'imprimante par défaut mais quand j'utilise ActivePrinter = "PDFCreator" pour changer d'imprimante, j'ai une erreu 1004 la méthode ActivePrinter de l'objet global a échoué!!!!!!
    J'avance doucement (ainsi que la rentrée scolaire!!!!)
    Merci Michel
    0