Choisir la destination Dble click | ||
---|---|---|
Inscription: 19/11/2011
Messages:
21
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 04-01-2023 18h09
Bonjour à tous tres bonne année 2023
Voici mon petit probleme surement tres simple mais pour moi .... Je voudrais que la macro si dessous me demande la feuille du classeur de destination avant de s'executer
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) Dim rang As Long Cancel = True If Target.Column = 1 Then 'double click dans la 1er colonne With Sheets("SAISIE") .CellS(12, 3) = Target End With MsgBox "Code Client transferé !" Worksheets("SAISIE").Select End If End Sub Actuellement elle s'applique sur la feuille "SAISIE" j'aimerai avoir le choix de la direction Soit la feuille "SAISIE" soit la Feuil "PAGE2" Merci
Edité par tactic6 le 04/01/2023 23:55:26
|
|
![]() |
![]() ![]() |
Re: Choisir la destination Dble click | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 05-01-2023 13h38
Bonjour tactic6, le Forum,
Tout dépend de comment tu souhaites présenter cette option à l'utilisateur... J'imagine que le mieux serait de présenter un petit Userform avec le choix de feuille destination à prendre en compte pour cette copie de valeur...
Cela dit, j'ai fait au plus simple et au plus court, et tu peux sans doute utiliser quelque chose comme ça (voir pièce jointe) : Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) Dim Rep As Integer Cancel = True If Target.Column = 1 Then 'double click dans la 1ère colonne Rep = MsgBox("DESTINATION du Code Client ?" _ & vbLf & vbLf & "- OUI = feuille 'SAISIE' (par défaut)" _ & vbLf & "- NON = feuille 'PAGE2'", vbYesNoCancel + vbQuestion, "www.mDF-XLpages.com") If Rep = vbCancel Then Exit Sub With Sheets(Choose(Rep - 5, "SAISIE", "PAGE2")) .Cells(12, 3) = Target .Select End With MsgBox "Code Client transferé !" End If End Sub Bien cordialement, Didier_mDF
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Choisir la destination Dble click | ||
---|---|---|
Inscription: 19/11/2011
Messages:
21
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 05-01-2023 14h12
Merci Didier je bataillais avec ta MsgBox personnalisée a défaut je prend
|
|
![]() |
![]() ![]() |
Re: Choisir la destination Dble click | ||
---|---|---|
Inscription: 19/11/2011
Messages:
21
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 07-01-2023 10h09
Bonjour J'essaie de remplacer la MsgBox par un Userform mais j'obtiens une erreur 1004 et ne comprend vraiment pas pourquoi Voici les codes si quelqu'un a le temps d'y jeter un oeil merci Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'recherche de la cellule dans la colonne A If Target.Column = 1 Then UserForm1.Show Dim cellule As String cellule = Target.Address End If End Sub 'boutons Userform Private Sub CommandButton1_Click() Sheets("SAISIE").Range("C12").Value = Sheets("Client").Range(cellule).Value Unload Me End Sub Private Sub CommandButton2_Click() Sheets("PAGE2").Range("C12").Value = Sheets("Client").Range(cellule).Value Unload Me End Sub
|
|
![]() |
![]() ![]() |
Re: Choisir la destination Dble click | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 07-01-2023 12h40
Bonjour tactic6, le Forum,
En pièce jointe, une façon de faire (parmi d'autres) :
DANS LE MODULE DE CODE DE LA FEUILLE Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'recherche de la cellule dans la colonne A If Target.Column = 1 Then Cancel = True With UserForm1 'On passe la valeur directement en propriété Tag du userform .Tag = Target.Value .Show End With End If End Sub DANS LE MODULE DE CODE DU USERFORM
Option Explicit
Private Sub CommandButton1_Click()
CopierCodeClient "SAISIE"
End Sub
Private Sub CommandButton2_Click()
CopierCodeClient "PAGE2"
End Sub
Private Sub CopierCodeClient(shName As String)
With Sheets(shName)
'On récupère la valeur en propriété Tag du userform
.Range("C12").Value = Me.Tag
.Activate
End With
Unload Me
End Sub
Je me sers de la propriété Tag du Userform comme d'une mémoire fourre-tout ! Tu peux l'utiliser pour mémoriser dedans n'importe quelle chaîne de caractères (String). C'est très pratique et ça évite l'usage de variables publiques pour faire passer des valeurs d'un module private à un autre. Moi, j'en fais usage très souvent
Bien sûr, tu aurais pu aussi y stocker l'adresse de la cellule source, mais pour le coup, je pense que stocker directement sa valeur était plus simple et efficient.
Nb : en passant... les déclarations Dim des variables ça se fait plutôt en début de procédure, et non au milieu.
En espérant t'avoir aidé. Bien cordialement, Didier_mDF
![]() Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
![]() |
![]() ![]() |
Re: Choisir la destination Dble click | ||
---|---|---|
Inscription: 19/11/2011
Messages:
21
Système d'exploitation: PC Version Excel utilisée: 2010 |
Posté le : 07-01-2023 19h41
tout simplement parfait Merci pour ta disponibilité |
|
![]() |
![]() ![]() |