Excel/VBA Créer une cellule bouton

Fermé
rv53 - 24 juil. 2009 à 08:48
 RV53 - 28 août 2009 à 15:51
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

5 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
24 juil. 2009 à 08:56
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
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
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
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
26 août 2009 à 11:22
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
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
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
28 août 2009 à 09:33
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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