Etendre double-clic cellule à plusieurs

  • Initiateur de la discussion Initiateur de la discussion dev_co
  • 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 !

dev_co

XLDnaute Occasionnel
Bonsoir
Ci-joint la macro que je voudrais modifier en gros si on double clique une cellule elle se colore et si erreur on re double clique et revient vierge
J'aimerais pouvoir selectionner plusieurs cellules ex : E9 à H9 ( donc par ligne) et au double Clic > colorier fond rouge comme dans le code :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("C5:L22")) Is Nothing Then
With Target
If Selection.Interior.ColorIndex = 3 Then
Selection.Interior.ColorIndex = xlNone
Else
Selection.Interior.ColorIndex = 3
End If
End With
End If
End Sub
Ne dites pas qu'il faut un fichier .... je n'en ai pas ; J'ouvre un Nouveau je mets cette macro et teste : cela fonctionne bien mais juste pour UNE cellule ; Possible d'étendre à plusieurs cellules en un coup ?
Merci bien
 
Merci à vous , et donc AVEC UN MINIMUM D'EFFORT j'ai pu raisonner de mon côté pour pondre ceci ( je n'ai rien pompé sur le net juste rencardé sur les mots clés et syntaxe car on oublie vite)
A vous de tester dans la plage concernée : select cel deb étendre, puis clic droit et si JAUNE ça fait rien mais le reste est ROUGE
C'est la solution (testée ) que j'aurais pu fournir à n'importe quel autre "exceldownloadaute" d'ici

PS : je suis ancien analyste programmeur BASIC , C++ Fortran ..etc des années 80
 

Pièces jointes

Re salut !
C'est la solution (testée ) que j'aurais pu fournir à n'importe quel autre "exceldownloadaute" d'ici
En attendant qu'un autre bénévole s'y collle ... 😕.

Erreur dans ton code : remplace activesheets par Activesheet mais c’est une instruction ici inutile car on est déjà dans cet onglet ! De toute façon With oblige à référencer (.Range() avec le . obligatoire) !
Pour parcourir la zone
Code:
 For
      LDeb = Selection.Row    ' si on utilise plusieurs lignes
      LFin = LDeb + Selection.Rows.Count - 1    ' ligne fin idem
      CDeb = Selection.Column    ' col deb
      CFin = CDeb + Selection.Columns.Count - 1    ' col fin
      For x = CDeb To CFin
        If
          … 
      End If
      Next x
    End With
  End If
End Sub
peut être remplacé par
Code:
Dim R as range     ‘déclaration pas obligatoire mais fortement conseillée
For R in [C5:L22]     ‘la plage concernée est connue !
  …
Next
La condition est : passe au rouge quand elle n’est pas jaune (mais est-ce bien ce que tu veux ?)
D’où le code
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  If Application.Intersect(Target, [C5:L22]) Is Nothing Then Exit Sub
  Dim R As Range
  For Each R In [C5:L22]
    If R.Interior.ColorIndex <> 6 Then R.Interior.ColorIndex =3
  Next
End Sub

Ici, beaucoup ont aussi débuté au siècle dernier 😛 !
 
Bonjour

Y a un truc qui m'échappe : le principe n'était-il pas de colorer/décolorer les cellules sélectionnées sur clic droit ? Puis dans une seconde demande de ne pas toucher aux jaunes.
"si on double clique une cellule elle se colore et si erreur on re double clique et revient vierge
J'aimerais pouvoir selectionner plusieurs cellules ex : E9 à H9 ( donc par ligne)"
"Si on selectionne par ex E9 - H9 et qu'il y a 2 cellules JAUNE ( 43 je crois ?) qu'il colorie en rouge Tout SAUF le jaune"


C'est bien ce que fait mon code... Sous réserve que la sélection soit cohérente. Que des rouges + d'éventuelles jaunes ou que des vides + d'éventuelles jaunes. Il était mentionné en cas d'erreur donc, sous-entendu, sur la plage colorée à tord....

Si on doit prévoir une sélection erratique des cellules mélangeant des rouges et des vides, il fallait le préciser et c'est alors un autre code...
 
Bonjour
Merci pour les remarques , mais je pense ne pas avoir mis le bon fichier ,dont le code était dans l'appli réelle
1) au tout début j'ai juste voulu savoir si on pouvait colorer auto cellule par cellule( double clic) et comme j'ai vu que c'était facilement possible via un extrait du forum en 2009 ..ou ?
2) ensuite j'ai pensé pourquoi pas à plusieurs d'un coup , puis effacer si erreur
3) Après j'ai voulu extrapoler car je me suis aperçu qu'il y avait des jours fériés ( jaune) dans la semaine pour simplifier la saisie . j'ai cherché à tout sélectionner et ne mettre du rouge partout et garder le jaune idem pour effacer ( garder jaune).
conclusion : il me semble que je vais garder mes variables de ligne et col car chaque ligne est affectée à une personne , c'est un classeur partagé en réseau sur le serveur et je ne veux pas qu'une, puisse aller sur la ligne d'une autre personne ( elle ont chacune un code que je traite) ex : si le code ( pwd) de Dupont est correct il n'aura accès qu'à la ligne 9 ... etc
Dernière question avant de clore : le fichier existe déjà partagé mais en xlsx ; je n'ai jamais testé en xlsm ? serait-il possible d'être SUR qu'il n'y ait Pas à cliquer sur les alertes d'ouverture Activer Modif et Activer Contenu ( pour le VBA) ?? car parfois on a ou pas !
Bon dimanche
 

Pièces jointes

- 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

Réponses
4
Affichages
486
Réponses
14
Affichages
337
Réponses
0
Affichages
367
Retour