Choisir la destination Dble click
#1
Aspirant XLPages

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
Hors Ligne
Rapport   Haut 

Re: Choisir la destination Dble click
#2
Webmestre

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,

Pièce jointe:
xlsm PourTactic6.xlsm   [ Taille: 19.36 Ko - Téléchargements: 93 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Choisir la destination Dble click
#3
Aspirant XLPages

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

 

Hors Ligne
Rapport   Haut 

Re: Choisir la destination Dble click
#4
Aspirant XLPages

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

 

Pièce jointe:
xlsm PourTactic6(1).xlsm   [ Taille: 17.14 Ko - Téléchargements: 117 ]
Hors Ligne
Rapport   Haut 

Re: Choisir la destination Dble click
#5
Webmestre

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 wink.

 

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,

Pièce jointe:
xlsm PourTactic6_USF.xlsm   [ Taille: 21.49 Ko - Téléchargements: 88 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Choisir la destination Dble click
#6
Aspirant XLPages

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é

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes