Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Julie-F

XLDnaute Occasionnel
Bonjour à tous

Voici ce qui m'amene aujourd'hui sur le forum.
Dans un tableau l'incrementation automatique d'un compteur placé en colonne A se fait par double-clic qui lui même permet d'incrementer automatiquement la date du jour en colonne B car à l'utilisation de Private Sub Worksheet_BeforeDoubleClick

Or je voudrais pouvoir grâce toujours au double clic dans la colonne D faire apparaitre un USF.

Si quelqu'un pouvait me dire comment modifier le code vba pour permettre avec cette même commande deux actions différentes.

Bonne journée
 

Pièces jointes

Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Bonjour

tu peux développer exactemetn ce que tu veux qui se passe car là en ajoutant des conditions il va falloir modifier le code

Donc que veux tu qui se passe en double clic colonne A colonne B colonne D
La même chose ou des choses différentes ?
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Bonjour

tu peux développer exactemetn ce que tu veux qui se passe car là en ajoutant des conditions il va falloir modifier le code

Donc que veux tu qui se passe en double clic colonne A colonne B colonne D
La même chose ou des choses différentes ?

Bonjour Pascal

DOUBLE CLIC En colonne A = Compteur automatique (comme c'est actuellement le cas)

Colonne B = Date du jour (comme c'est actuellement le cas)

COLONNE D = Ouverture USF


Les deux premieres conditions sont déjà remplis dans le fichier joint mais je n'arrive pas à associer la commande d'ouverture de l'USF par double clic en colonne D.
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Bonjour Julie-F, PascalXLD

Ce code "Target.Offset(-1, 0)" donne une erreur si on est dans la ligne 1

Il est préférable de décomposer les tests comme ci dessous

If not(Target.Column = 2 or Target.Column=4 ) then exit sub

if Target.Row =1 then exit sub
If Target.Column = 2 then

.................. action à faire
end if
If Target.Column = 4 then
.................. action à faire
end if


JP
 
Dernière édition:
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Bonjour Julie-F, PascalXLD

Ce code donne une erreur si on est dans la ligne 1 Target.Offset(-1, 0)

Il est préférable de décomposer les tests comme ci dessous

If not(Target.Column = 2 or Target.Column=4 ) then exit sub

if Target.Row > 2 then exit sub
If Target.Column = 2 then

.................. action à faire
end if
If Target.Column = 4 then
.................. action à faire
end if


JP

Bonjour JP

L'erreur en ligne 1 vient sans doute du fait que le compteur placé en A1 est sasi manuellement pour fonctionner automatiquement par la suite.

Merci de ton aide, je vais essayer de voir ce que cela donne sur le fichier.
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

bonjour Julie, Pascal, JP,

je te propose de rajouter ça dans ton code :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 2 And Target.Column = 1 And Target.Offset(-1, 0) <> "" Then
    Target = Year(Date) & "-" & Format(Split(Target.Offset(-1, 0), "-")(1) + 1, "000")
    Target.Offset(0, 1) = Date
[B]ElseIf Target.Row > 2 And Target.Column = 3 Then
    Dim monUsf As USF_ESSAI
    Set monUsf = New USF_ESSAI
    monUsf.Show[/B]
End If
End Sub

a+
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

bonjour Julie, Pascal, JP,

je te propose de rajouter ça dans ton code :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 2 And Target.Column = 1 And Target.Offset(-1, 0) <> "" Then
    Target = Year(Date) & "-" & Format(Split(Target.Offset(-1, 0), "-")(1) + 1, "000")
    Target.Offset(0, 1) = Date
[B]ElseIf Target.Row > 2 And Target.Column = 3 Then
    Dim monUsf As USF_ESSAI
    Set monUsf = New USF_ESSAI
    monUsf.Show[/B]
End If
End Sub

a+

Bonjour Romain

Ton code fonctionne pour l'ouverture de l'USF mais un gros probleme se pose, la cellule est toujours active et de se fait l'USF n'agit plus du tout comme il devrait.
Idem pour le fermer, la croix rouge est inactive.

Merci en tout cas, je vais continuer à chercher.
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Bonjour Romain

Ton code fonctionne pour l'ouverture de l'USF mais un gros probleme se pose, la cellule est toujours active et de se fait l'USF n'agit plus du tout comme il devrait.
Idem pour le fermer, la croix rouge est inactive.

Merci en tout cas, je vais continuer à chercher.

il me semble que je n'ai pas le problème sur ma version (2007), du moins pour "la croix rouge inactive".
j'ai aussi essayé de rajouter du code dans le USF, et il a semblé bien fonctionner...

peux-tu détailler un peu plus stp.

a+
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Bonjour Julie-F, PascalXLD

Ce code "Target.Offset(-1, 0)" donne une erreur si on est dans la ligne 1

Il est préférable de décomposer les tests comme ci dessous

If not(Target.Column = 2 or Target.Column=4 ) then exit sub

if Target.Row > 2 then exit sub
If Target.Column = 2 then

.................. action à faire
end if
If Target.Column = 4 then
.................. action à faire
end if


JP

JP, j'ai testé sur le fichier le code que tu m'as indiqué et j'obtiens un message d'erreur Visual Basic Erreur entrée/sortie phériphérique. 😱
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Romain,

Lorsque je fais un double clic sur une des cellules de la colonne D l'usf s'affiche mais derriere le curseur reste actif dans la cellule ainsi cliquée.
Il faut que je deplace le curseur grace à la touche tab sur une autre cellule pour que mon USF puisse être fermé sinon rien ne fonctionne.
Je vais regarder les codes déjà associés à mon fichier, il y a peut être des incompatibilités mais ce sont les deux seules colonnes où j'utilise le double clic.
Je suis sur Excel 2003.
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

re,

je confirme que je n'ai pas de soucis sous 2007.
tu peux essayer ça (on sait jamais 🙂)

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 2 And Target.Column = 1 And Target.Offset(-1, 0) <> "" Then
    Target = Year(Date) & "-" & Format(Split(Target.Offset(-1, 0), "-")(1) + 1, "000")
    Target.Offset(0, 1) = Date
ElseIf Target.Row > 2 And Target.Column = 3 Then
    [B]ActiveCell.Select 'ou ActiveCell.offset(1,0).select[/B]
    Dim monUsf As USF_ESSAI
    Set monUsf = New USF_ESSAI
    monUsf.Show
End If
End Sub

a+
 
Re : Utiliser pour différentes actions : Private Sub Worksheet_BeforeDoubleClick

Non Romain, je suis désolée mais si l'USF apparait lorsque je double clic dans la colonne le curseur se place dans celle-ci et j'ai droit à ma barre de formule ou fonction qui s'active (celle avec la croix et le V vert de validation) rendant inactif du même coup l'USF affiché. 🙁
D'ailleurs le titre de mon USF n'est quant à lui aucunement actif (bleu plus clair)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

C
Réponses
2
Affichages
624
citizenbaban
C
C
Réponses
1
Affichages
1 K
C
S
Réponses
0
Affichages
2 K
Serious E
S
Retour