correction de code ?

  • Initiateur de la discussion Initiateur de la discussion mikepers
  • Date de début Date de début

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 !

M

mikepers

Guest
Bonsoir et encore merci.
J'ai récupéré un code qui me paraissait très interessant, qui permet d'utiliser une cellule comme une case à cocher. Lorsqu'on double clique dessus, la cellulle affiche un symbole tiré de la police 'Marlett',et permet de 'valider' visuellement un choix. Hélas, sous Excel 97
( version que j'utilise au boulot ), la macro bogue en me signifiant une erreur sur 'end if'. Pouvez vous contrôler le code et me dire ce qui ne va pas? Merci..............................
le code:
Private Sub Worksheet_beforeDoubleClick(Byval Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range(A1:A100')) Is Nothing Then Cancel = True 'prevent going into Edit mode
Target.FontNme = 'Marlett'
If Target = vbNullString Then Target = 'a'
Else
Target = vbNullString
End if
End if

End Sub
 
salut

essaye comme ça :

Private Sub Worksheet_beforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range('A1:A100')) Is Nothing Then Cancel = True 'prevent going into Edit mode
Target.Font.Name = 'Marlett'
If Target = vbNullString Then
Target = 'a'
Else:
Target = vbNullString
End If
End Sub

JC
 
Bonsoir Mikepers, bonsoir le forum,

Essaie comme ça :


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

'Condition 1 : si le double clic se fait dans la plage A1:A100
If Not Application.Intersect(Target, Range('A1:A100')) Is Nothing Then
Cancel = True 'évite le mode édition lié au double clic
Target.Font.Name = 'Marlett' 'police 'Marlett'

If Target = vbNullString Then 'condition2 : si la cellule est vide
Target = 'a' 'la cellule prend la valeur 'a' (case cochée avec cette police)
Else 'sinon
Target = vbNullString 'la cellule est vidée
End If 'fin de la condition 2

End If 'fin de la condition 1

End Sub

Édition :

Bonsoir JC de Lorient, on s'est croisés. J'avais pensé à cette option aussi mais dans ce cas la restriction à la plage A1:A100 ne fonctionne plus...

Message édité par: Robert, à: 27/02/2006 23:00
 
Bonsoir Mikepers

Une petite erreur avec
Range('A1:A100') : il y a un ' qui a fait le saut
et une autre avec
Target.Font.Name = 'Marlett'
le target.FontNme ne me semble pas correct

sans garantie 🙁
@+GD

PS: M..... de M..... de M..... pour une fois que je croyais tenir le VBA entre mes mains puissantes. Deux lascars l'avaient déjà étranglé depuis 10 minutes. Merci Joomla ! 3 fois CtrlA CtrlC CtrlV (bien joué l'astuce préservative !)pour avoir la honte !
Bon....
Bonne soirée à tous quand même et un amical bonsoir aux deux lascars JC et Robert


Message édité par: Gérard DEZAMIS, à: 27/02/2006 23:14
 
Bonjour Mikepers, JC de Lorient, Gégé moignon, bonjour le forum,

Gégé moignon !!! C'est-y pas mignon ce surnom que je viens de t'attribuer mon Gégé la paluche ? Bah c'est pas bien grave, il y a tellement d'autres choses à faire avec ses mains...
 
Bonsoir!
merci pour la correction, celà fonctionne super bien mais j'ai un petit soucis: malgré la sélection de plage('A1:A100'), la macro s'exécute dans toutes les cellules de la feuille...
Ca me pose un souci, je comprend pô.
Vous voyez le truc ?
Merci
 
Bonsoir mikepers, JC de Lorient, Robert, Gérard DEZAMIS,

mikepers, tu as dû te tromper en recopiant le code de Robert, car ce code indiqué plus haut est tout à fait correct et fonctionne parfaitement.

Cela dit, pour simplifier et le rendre peut-être un peu plus clair, moi je l'écrirais comme ça :
Private Sub Worksheet_beforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
      If Not Intersect(Target, Range('A1:A100')) Is Nothing Then
            Cancel = True
            Target.Font.Name = 'Marlett'
            Target = IIf(Target = vbNullString, 'a', vbNullString)
      End If
End Sub
Cordialement,
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
14
Affichages
484
Réponses
4
Affichages
521
Retour