Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro en attente d'un clique dans une cellule

2 réponses
Avatar
PAN GOT
Bonsoir à toutes et à tous,

Je fais appel au gourou pour savoir si mon problème est réalisable.

Dans une feuille1, j'ai des informations récupérées d'autres classeurs.
Dans une feuille2, j'ai un tableau que je voudrais compléter avec les
informations de la feuille1. Là où cela se complique, c'est que chaque ligne
de la feuille1 peut être insérées dans la feuille2 n'importe où en fonction
du choix de l'utilisateur. L'utilisateur rempli un champs en indiquant une
référence, cette ci étant une valeur dans une cellule. Le principe étant
qu'une
fois toute ou partie du champ « F » (par exemple) de la feuille1 renseignée,
une autre macro fera le traitement complet d'insertion dans la feuille2.

Mon problème est donc le suivant :

-l'utilisateur clique dans une cellule du champs F de la feuille1 pour
indiquer après quelle ligne il veux insérer ces infos.

-La feuille2 apparaît et lui rend la main pour lui permettre de chercher le
point d'insertion.

-L'utilisateur clique sur la ligne voulue.

-La macro récupère la valeur de la cellule du champ « référence » dans cette
ligne.

-la macro revient sur la feuille1 et rentre la valeur dans la cellule du
champ « F ».

Je n'ai pas l'impression d'être très clair alors voici une ébauche
d'algorithme :

-L'utilisateur clique dans une cellule d'un champ défini de la feuille1 (par
exemple « F ». Cette action déclanche la macro.
-Ouverture de la feuille2. [Jusque là je pense y arriver]
-Rendre la main à l'utilisateur et le laisser parcourir cette feuille. Elle
attend qu'il clique sur une autre cellule de cette feuille. [C'est là que le
bas blesse]
-L'utilisateur a cliqué sur une autre cellule, récupération de la valeur
d'une
cellule d'un champ « référence » de cette même ligne (par exemple « D »).
[et là je devrais pouvoir m'en sortir]
-Retour à la feuille1.
-Transfert de cette valeur récupérée dans la première cellule cliquée (du
champ « F »).
-fin de la macro.

Si quelqu'un avait une solution, je suis preneur.

Merci d'avance et bonne soirée.

Patrick

2 réponses

Avatar
Jacky
Bonsoir,
Si quelqu'un avait une solution, je suis preneur.


Une piste peut-être...
A placer dans le module de la feuille1
[champ] = plage nommée dans la feuille 1 qui est susceptible à être copiée
Cette procédure copie dans une plage nommée "champ" la cellule sélectionnée
dans ce champ, puis demande à l'utilisateur la cellule de destination en
feuille 2, et y colle la valeur
A adapter à ton besoin
'--------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim COPIE As String
If Not Intersect(Target, [champ]) Is Nothing Then
If Target = "" Then MsgBox "Cellule vide." & vbLf & "Abandon.": Exit Sub
COPIE = ActiveCell.Value
Sheets("feuil2").Activate
On Error Resume Next
Set CelluleAcoller = Application.InputBox("Copie de :" & COPIE & vbLf &
"Sélectionnez cellule de destination en " & ActiveSheet.Name, Type:=8)
CelluleAcoller.Value = COPIE
Sheets("feuil1").Activate
End If
End Sub
'-----------------------
--
Salutations
JJ


"PAN GOT" a écrit dans le message de news:
%
Bonsoir à toutes et à tous,

Je fais appel au gourou pour savoir si mon problème est réalisable.

Dans une feuille1, j'ai des informations récupérées d'autres classeurs.
Dans une feuille2, j'ai un tableau que je voudrais compléter avec les
informations de la feuille1. Là où cela se complique, c'est que chaque
ligne
de la feuille1 peut être insérées dans la feuille2 n'importe où en
fonction
du choix de l'utilisateur. L'utilisateur rempli un champs en indiquant une
référence, cette ci étant une valeur dans une cellule. Le principe étant
qu'une
fois toute ou partie du champ « F » (par exemple) de la feuille1
renseignée,
une autre macro fera le traitement complet d'insertion dans la feuille2.

Mon problème est donc le suivant :

-l'utilisateur clique dans une cellule du champs F de la feuille1 pour
indiquer après quelle ligne il veux insérer ces infos.

-La feuille2 apparaît et lui rend la main pour lui permettre de chercher
le
point d'insertion.

-L'utilisateur clique sur la ligne voulue.

-La macro récupère la valeur de la cellule du champ « référence » dans
cette
ligne.

-la macro revient sur la feuille1 et rentre la valeur dans la cellule du
champ « F ».

Je n'ai pas l'impression d'être très clair alors voici une ébauche
d'algorithme :

-L'utilisateur clique dans une cellule d'un champ défini de la feuille1
(par
exemple « F ». Cette action déclanche la macro.
-Ouverture de la feuille2. [Jusque là je pense y arriver]
-Rendre la main à l'utilisateur et le laisser parcourir cette feuille.
Elle
attend qu'il clique sur une autre cellule de cette feuille. [C'est là que
le
bas blesse]
-L'utilisateur a cliqué sur une autre cellule, récupération de la valeur
d'une
cellule d'un champ « référence » de cette même ligne (par exemple « D »).
[et là je devrais pouvoir m'en sortir]
-Retour à la feuille1.
-Transfert de cette valeur récupérée dans la première cellule cliquée (du
champ « F »).
-fin de la macro.

Si quelqu'un avait une solution, je suis preneur.

Merci d'avance et bonne soirée.

Patrick







Avatar
PAN GOT
Bonsoir,

J'ai adapté ton code à mon classeur et ça fonctionne parfaitement.

C'est marrant mais effectivement j'avais lu dans ce même forum qu'il y avait
plusieurs façon d'utiliser InputBox. Mais j'en étais resté à une utilisation
tel qu'elle existait dans VB3, c'est-à-dire une possibilité de saisir du txt
simplement.

Encore merci et bonne soirée.

Patrick



"Jacky" a écrit dans le message de news:
%
Bonsoir,
Si quelqu'un avait une solution, je suis preneur.


Une piste peut-être...
A placer dans le module de la feuille1
[champ] = plage nommée dans la feuille 1 qui est susceptible à être copiée
Cette procédure copie dans une plage nommée "champ" la cellule
sélectionnée dans ce champ, puis demande à l'utilisateur la cellule de
destination en feuille 2, et y colle la valeur
A adapter à ton besoin
'--------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim COPIE As String
If Not Intersect(Target, [champ]) Is Nothing Then
If Target = "" Then MsgBox "Cellule vide." & vbLf & "Abandon.": Exit Sub
COPIE = ActiveCell.Value
Sheets("feuil2").Activate
On Error Resume Next
Set CelluleAcoller = Application.InputBox("Copie de :" & COPIE & vbLf &
"Sélectionnez cellule de destination en " & ActiveSheet.Name, Type:=8)
CelluleAcoller.Value = COPIE
Sheets("feuil1").Activate
End If
End Sub
'-----------------------
--
Salutations
JJ


"PAN GOT" a écrit dans le message de news:
%
Bonsoir à toutes et à tous,

Je fais appel au gourou pour savoir si mon problème est réalisable.

Dans une feuille1, j'ai des informations récupérées d'autres classeurs.
Dans une feuille2, j'ai un tableau que je voudrais compléter avec les
informations de la feuille1. Là où cela se complique, c'est que chaque
ligne
de la feuille1 peut être insérées dans la feuille2 n'importe où en
fonction
du choix de l'utilisateur. L'utilisateur rempli un champs en indiquant
une
référence, cette ci étant une valeur dans une cellule. Le principe étant
qu'une
fois toute ou partie du champ « F » (par exemple) de la feuille1
renseignée,
une autre macro fera le traitement complet d'insertion dans la feuille2.

Mon problème est donc le suivant :

-l'utilisateur clique dans une cellule du champs F de la feuille1 pour
indiquer après quelle ligne il veux insérer ces infos.

-La feuille2 apparaît et lui rend la main pour lui permettre de chercher
le
point d'insertion.

-L'utilisateur clique sur la ligne voulue.

-La macro récupère la valeur de la cellule du champ « référence » dans
cette
ligne.

-la macro revient sur la feuille1 et rentre la valeur dans la cellule du
champ « F ».

Je n'ai pas l'impression d'être très clair alors voici une ébauche
d'algorithme :

-L'utilisateur clique dans une cellule d'un champ défini de la feuille1
(par
exemple « F ». Cette action déclanche la macro.
-Ouverture de la feuille2. [Jusque là je pense y arriver]
-Rendre la main à l'utilisateur et le laisser parcourir cette feuille.
Elle
attend qu'il clique sur une autre cellule de cette feuille. [C'est là que
le
bas blesse]
-L'utilisateur a cliqué sur une autre cellule, récupération de la valeur
d'une
cellule d'un champ « référence » de cette même ligne (par exemple « D »).
[et là je devrais pouvoir m'en sortir]
-Retour à la feuille1.
-Transfert de cette valeur récupérée dans la première cellule cliquée (du
champ « F »).
-fin de la macro.

Si quelqu'un avait une solution, je suis preneur.

Merci d'avance et bonne soirée.

Patrick