Bonjour,
Voilà 2 jours que je tourne en rond.
Je cherche, lorsque je clique (ou double-clique) sur une cellule, à copier/coller la valeur de cette cellule (source) dans une autre (cible).
Par exemple si je clique sur la cellule C5, je souhaite que sa valeur soit copiée en I3.
J'ai cherché sur le forum et je n'ai pas (ou pas su) trouver la solution.
Donc je suis passé par des moyens détournés à partir d'un code de Menhir permettant de supprimer une ligne en la sélectionnant.
Ligne 15, un InputBox permet d'indiquer la ligne à sélectionner (par exemple 5)
Ligne 18 je croise avec la colonne C (qui est la colonne sur laquelle je dois effectuer ma sélection).
Cela me donne la cellule C5 pour laquelle je souhaite copier/coller.
Ce sont ces 2 lignes qui sont de la "bricole" et pour lesquelles je vous interpelle.
Je vois déjà des![]()
et surtout des
Vous en conviendrait tout ceci n'est pas très "pro", nous ne sommes pas dimanche mais cela fait bricoleur tout de même, d'autant que cela ne réponds pas à mon souhait.
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 Sub Selection_Cellule1() ' Macro test réalisée à partir d'un code de Menhir qui sélectionne une ligne dont on indique le n° dans un InputBox pour la supprimer ' Efface la donnée en I3 pour partir sur cellule vide ' Selection de la ligne ' Sélectionne la cellule dans la colonne C croisée avec N° de ligne ' Copie/ colle la valeur en I3 ' Message demandant confirmation (Tuto de Laurent OTT pages 7 et suivantes) ' Traitement de la réponse Dim Rep As String Range("I3").Delete Rep = InputBox("Quelle ligne voulez-vous sélectionner ?", "Sélection", Selection.Row) If Rep = "" Then Exit Sub Cells(CLng(Rep), 3).Select 'sélectionne la cellule dans la colonne C croisée avec N° de ligne Selection.Copy Range("I3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Rep = MsgBox("Vous allez réaliser la facture : " & Range("I3"), _ vbYesNo + vbQuestion + vbDefaultButton2, _ "Demande de confirmation") ' affiche un message OUI / NON (vbYesNo)+ Icone ? ' + active bouton Non par défaut, titre du MsgBox = Demande de confirmation If Rep = vbYes Then ' Teste si l'utilisateur a choisi le bouton Oui ? Range("I4").Value = "Bravo" ' Si oui, alimente la cellule I4 ' C'est ici que je dois mettre la macro de création de la facture ' en ayant mis un dernier message de confirmation "Attention procédure irréversible ! Etes vous certain ?" Else ' Sinon 'MsgBox "Non." ' Affiche : Non. Range("I4").Value = "Non" ' Si non, alimente la cellule I4 End If End Sub
Ce n'est qu'un ersatz.
En revanche travailler sur cette macro m'a permis de découvrir de nouveaux horizons.
Si une âme charitable pouvait solutionner mon problème...
Par avance merci
Philippe
Partager