Modifier valeur cellule via formulaire ouvert par double-clic

Bonjour au forum,

Comment pourrais-je modifier la valeur d'une cellule par un formulaire qui s'ouvrirait par double-clic sur une cellule ?

Merci d'avance pour l'aide...

Ci-joint un fichier test.

5fof.xlsm (17.99 Ko)

Bonjour Nrev74.

La variable Target ne fonctionne que dans la macro "Worksheet_BeforeDoubleClick"

Il faut passer par une variable Global. Pour se faire déclarer dans un module standard une variable du style:

Public Cible As Range
image

Ensuite utiliser cette variable pour mémoriser l'adresse de la cellule cliquée "Target"

image

Puis tu pourras utiliser Cible n'importe où sachant que la variable contient l'info de la cellule cliquée:

image

Je me suis permis d'ajouter Unload Me pour fermer le USF après la saisie.

A+

27fof-gabin.xlsm (19.24 Ko)

Bonjour Gabin,

Merci beaucoup pour cette explication que je ne connaissais pas encore et qui me sera bien utile :)

Juste un autre petite question si je peux me permettre :

Sais-tu pourquoi j'ai une notification de feuille protégée alors que la protection de la feuille s'effectue après l'exécution du code ?

Sais-tu pourquoi j'ai une notification de feuille protégée alors que la protection de la feuille s'effectue après l'exécution du code ?

J'avais la même chose en testant ton fichier.

Je ne comprend pas pourquoi ce message, pourtant tu ôtes bien la protection de la feuille.

Essaye d'utiliser

Application.DisplayAlerts = False

En début de code puis

Application.DisplayAlerts = True

à la fin.

A+

J'ai déjà testé avec

Application.DisplayAlerts = False
Application.DisplayAlerts = True

mais la message s'affiche toujours...

Message supprimé

Voir celui d'après

Oh je crois que je comprend !

La macro s'exécute correctement. Mais à la fin de celle ci Excel reprend là où il en été c'est à dire double cliquer la cellule et la il te dit erreur car feuille protégée.

Du coup ce code devrait fonctionner:

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Set Cible = Target
Dim dl As Long

    dl = ActiveSheet.Range("H" & Rows.Count).End(xlUp).Row

    If Not Application.Intersect(Target, Range("H2:H" & dl)) Is Nothing Then 'plage concernée par la macro
        ActiveSheet.Unprotect ""
        DateDeFin.Show
        ActiveSheet.Protect ""
        Cancel = True
    End If

End Sub

Cancel = true permet de mettre fin au double clic.

A+

Bon sang mais c'est bien sûr !

Je l'avais pourtant dans mon fichier d'origine, mais je pense l'avoir supprimé par inadvertance lorsque j'ai simplifié le fichier pour le forum !

Désolé de t'avoir fait perdre ton temps pour ça et merci encore pour ton aide, t'es au top !

Excellente journée à toi !

Rechercher des sujets similaires à "modifier valeur via formulaire ouvert double clic"