Excel VBA - Double clique

Excel VBA - Double clique - VB/VBA/VBS - Programmation

Marsh Posté le 10-05-2006 à 21:14:56    

Bonsoir à tous,
j'ai trouvé sur le net une macro sympa :  :)  
 
" Comment faire une macro qui mettrait un X dans une cellule vide avec un double clic et qui
enleverait ce X avec un nouveau double clic ?  
 A mettre dans le module de la feuille
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
     On Error Resume Next
     If IsEmpty(ActiveCell.Value) Then
      ActiveCell.Value = "X"
     ElseIf ActiveCell.Value = "X" Then
ActiveCell.Value = ""
     End If
Cancel = True
End Sub
 
 Eric Jeanne,   (N°1095)  "
 
J'ai essayé de mettre cette macro dans mon fichier Excel mais ça ne marche pas ! [img]\":(\[/img]
Pourriez vous m'aider pour me dire où est l'erreur.  merci
 
http://img113.imageshack.us/img113/6739/clipboard12hr.jpg


Message édité par didieraucun le 10-05-2006 à 21:17:22
Reply

Marsh Posté le 10-05-2006 à 21:14:56   

Reply

Marsh Posté le 10-05-2006 à 22:29:17    

Salut,  
 
 Pour que ton code marche, il faut que tu le mette dans l' objet "ThisWorkbook".
 

Reply

Marsh Posté le 11-05-2006 à 20:23:03    

bonsoir,
Il faut mettre cette macro dans le module de la feuille concernée. (Alt + F11)
A+


---------------
roger
Reply

Marsh Posté le 11-05-2006 à 21:08:37    

Oui, ça marche.
Question supplémentaire :  
Comment faire pour obtenir "Oui" avec un double-clique et "Non" avec un second double-clique
Toujours avec la même condition que la cellule soit vide au début
 

Reply

Marsh Posté le 11-05-2006 à 21:56:18    

Tu remplaces "X" par "Oui" et "" par "Non"


---------------
roger
Reply

Marsh Posté le 15-05-2006 à 15:38:20    

Ca marche, mais une seule fois  :(
la cellule vide passe à OUI en double-cliquant
passe à NON en re-double-cliquant
si on re-double-clique, il ne se passe plus rien.
 
Je souhaiterais qu'elle passe de OUI à NON et vice versa en double-cliquant.

Reply

Marsh Posté le 15-05-2006 à 15:47:38    

c'est ton if isempty car après le premier click le contenu n'est plus vide  
donc ca devrait marcher :
 
If IsEmpty(ActiveCell.Value) Then  
      ActiveCell.Value = "OUI"  
Else  
  If ActiveCell.Value = "OUI" Then  
     ActiveCell.Value = "NON"  
  else
     ActiveCell.Value = "OUI"  
  end if
End If  

Reply

Marsh Posté le 15-05-2006 à 19:51:19    

Ca marche .... mais la condition de la cellule vide ne fonctionne plus

Reply

Marsh Posté le 15-05-2006 à 20:53:18    

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If IsEmpty(ActiveCell.Value) Then
        ActiveCell.Value = "OUI"
    ElseIf ActiveCell.Value = "OUI" Then
        ActiveCell.Value = "NON"
    ElseIf ActiveCell.Value = "NON" Then
        ActiveCell.Value = ""
    End If
    Cancel = True
End Sub
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Select Case ActiveCell.Value
        Case ""
            ActiveCell.Value = "OUI"
        Case "OUI"
            ActiveCell.Value = "NON"
        Case "NON"
            ActiveCell.Value = ""
    End Select
    Cancel = True
End Sub


Message édité par kiki29 le 15-05-2006 à 20:57:36
Reply

Marsh Posté le 16-05-2006 à 09:28:22    

didieraucun a écrit :

Ca marche .... mais la condition de la cellule vide ne fonctionne plus


 
ma solution marche mais celle de kiki29 avec le select case est plus simple sauf que dans ton cas il te faut mette oui dans le cas ou le contenu de la cellule est NON, tu peut même utiliser ce code et même si l'utilisateur rentre une valeur dans la cellule le double click marchera encore :  
 
Select Case ActiveCell.Value
  Case "NON"
    ActiveCell.Value = "OUI"
  Case "OUI"
    ActiveCell.Value = "NON"
  Case Else
    ActiveCell.Value = "OUI"
  End Select
End Sub

Reply

Marsh Posté le 16-05-2006 à 09:28:22   

Reply

Marsh Posté le 16-05-2006 à 17:56:39    

Merci à tous.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed