Excel/VBA Créer une cellule bouton
rv53
-
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
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
A voir également:
- Excel/VBA Créer une cellule bouton
- Créer une liste déroulante excel - Guide
- Comment créer un groupe whatsapp - Guide
- Excel compter cellule couleur sans vba - Guide
- Créer un compte google - Guide
- Proteger cellule excel - Guide
5 réponses
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
"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-
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-
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
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
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+
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+
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+
A+
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...
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...
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
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
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
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
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