Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Excel remplir une cellule en 1 clic avec VBA

Grobibi34, le jeudi 6 mars 2008 à 16:07:31
Bonjour, à tous.

J'ai fai une petite macro avec VBA qui me permet de colorier la cellule sur laquel je clic en rouge.
Mais je voudrai que quand je clic et que celle-ci est déja rouge elle repasse en blanc.

Voici le code que j'ai édité mais il ne marche pas ma cellule reste toujours rouge :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.ColorIndex = 0 Then ActiveCell.Interior.ColorIndex = 3 Else ActiveCell.Interior.ColorIndex = 3
End Sub

Quelqu'un pourrait m'aider ??? :-)

Cordialement

Grobibi34
Configuration: Windows XP
Internet Explorer 6.0
Répondre à Grobibi34  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ivan-hoe, le jeudi 6 mars 2008 à 16:32:38
Quelle persévérance, Grobibi !
Là, le problème est que tu demandes la couleur 3 dans les deux cas !!

L'instruction ci-dessous devrait suffire :
If ActiveCell.Interior.ColorIndex = 3 Then ActiveCell.Interior.ColorIndex = 0
Répondre à Ivan-hoe

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Grobibi34, le jeudi 6 mars 2008 à 16:51:49
Hum non gros problème sa ne marche pas.
Si jamais j'écris:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ActiveCell.Interior.ColorIndex = 3

If ActiveCell.Interior.ColorIndex = 3 Then ActiveCell.Interior.ColorIndex = 0

End Sub

Là la cellule passe en rouge mais repasse instantanément en blanc.

Tu pense qu'il faudrait appliqué une tempo entre les deux ?

Ou alors j'ai tout faux ?
Répondre à Grobibi34

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Grobibi34, le jeudi 6 mars 2008 à 17:34:25
J'aurai aussi une nouvelle question sur le même sujet.
Penses tu que cette fonction ne sois aplicable que sur certaines cellules, par exemple sur un cadre qui irait de la cellule B5 à la cellule B22 en longueur et j'usqu'a la cellule AA5.

Je sais pas trop si je me suis fais comprendre là..... oO

Cordialement

Grobibi34
Répondre à Grobibi34

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tompols, le jeudi 6 mars 2008 à 17:43:40
Re Grobibi34,

y'a un pti souci dans ton code :

If ActiveCell.Interior.ColorIndex = 0 Then ActiveCell.Interior.ColorIndex = 3 Else ActiveCell.Interior.ColorIndex = 3

en français ça fait : si la cellule est de couleur 0 alors mets là en couleur 3, sinon mets là en couleur 3 !!!!!

Donc :
If ActiveCell.Interior.ColorIndex = 0 Then ActiveCell.Interior.ColorIndex = 3 Else ActiveCell.Interior.ColorIndex = 0

Tom
Répondre à tompols

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Grobibi34, le jeudi 6 mars 2008 à 17:53:01
Re Tom

Je vois bien mon erreur mais ton code ne marche pas non plus sa ne colore pas les cellules.

Une autre solution?
Répondre à Grobibi34

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amigo, le jeudi 6 mars 2008 à 17:56:38
bonjour,

ce code marche chez moi, le probleme c'est qu'il faut quitter la cellule ets revenir pour faire changer la couleur

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.ColorIndex <= 0 Then
ActiveCell.Interior.ColorIndex = 3
Else
ActiveCell.Interior.ColorIndex = 0
End If
End Sub

A+.
Répondre à amigo

7


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
eriiic, le jeudi 6 mars 2008 à 20:25:07
Bonjour,

Sinon tu peux utiliser l'evenement BeforeDoubleClick.
D'une part ça évite d'avoir à sélectionner une autre cellule pour revenir et déclencher l'evenement selection_change, d'autre part ça évite de changer la couleur par inadvertance.

Et je pense que ce n'est pas la couleur blanche que tu veux detecter mais l'absence de couleur qui est -4142 ou la variable xlColorIndexNone .
De plus pour éviter que ton changement de couleur se fasse sur toutes les cellules il faut sortir du programme après avoir testé si ta cellule (Target) souble-cliquée est en dehors de la zone que tu as défini.
Et si tu veux éviter de passer la cellule en mode édiition suite au double clic il faut ajouter cancel = true

Exemple avec action uniquement sur la colonne B :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
If ActiveCell.Interior.ColorIndex = xlColorIndexNone Then ActiveCell.Interior.ColorIndex = 3 Else ActiveCell.Interior.ColorIndex = xlColorIndexNone
Cancel = True
End Sub

eric
Répondre à eriiic

8


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
tompols, le jeudi 6 mars 2008 à 20:42:21
Répondre à tompols

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Grobibi34, le vendredi 7 mars 2008 à 09:20:48
Bonjour Bonjour, tout d'abord merci à tous pour vous etre penché sur la question.

J'ai réussi à faire fonctionner ton code Amigo, j'ai pu repérer mon erreur qui était plutot bète.

Eric ton code est super aussi et je le trouve super interessant je pense que avec ces éléments je ne peux plus me planter sur ce sujet.

Tom il est pas mal ton lien je vais le lire à fond je pense.

En bref un grand merci à tous pour m'aider à avancer dans ma macro :-)

Cordialement

Grobibi34
Répondre à Grobibi34
Trouver cellule liée entre classeurs excel (Résolu) Hello, Je cherche à trouver dans un classeur excel les cellules qui sont liées avec un autre classeur. Quand j'ouvre mon fichier j'ai une info box qui m'indique que le classeur ouvert comporte des liaisons avec un autre classeur et qui... www.commentcamarche.net/forum/affich-1638202-trouver-cellule-liee-entre-classeurs-excel
[VBA] Macro evenementielle lors changement (Résolu) Bonjour à tous, j'ai une petite question excel enffin plus présisément vba, précisons le contexte j'ai une feuille j'ai des constantes dite "environnement" une autre feuille ou je rentre certaines données dite "input data" une fois que... www.commentcamarche.net/forum/affich-2924151-vba-macro-evenementielle-lors-changement
[Excel] programmation vba (Résolu) bonjour, j'aimerais savoir comment on peut extraire une partie du texte d'une cellule en vba sous excel sachant que le texte est de la forme NOM1 Prenom1 [ENTREPRISE]; NOM2 Prenom2 [ENTREPRISE]; ... je ne sait pas combien il ya de NOM et... www.commentcamarche.net/forum/affich-3432660-excel-programmation-vba
[Excel] Colorer des cellules sur conditionsIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un... www.commentcamarche.net/faq/sujet-3975-excel-colorer-des-cellules-sur-conditions
Problème VBA-excel _Comparer deux listes (Résolu)Bonjour, Quelqu'un pourrait-il me filer un coup de main? Je souhaite comparer deux listes de données (une colonne de code avec une autre colonne de code) dans excel (en automatisant avec VBA)? Si les codes sont identiques:correct, si ils sont... www.commentcamarche.net/forum/affich-2971194-probleme-vba-excel-comparer-deux-listes
[Excel/VBA] Comment freezer un graphique? (Résolu)Bonjour à tous, L’un de vous sait-il s’il est possible de « freezer » un graphique Excel? Si oui, comment peut-on le faire en Excel normal, puis en VBA ? (Ce que j’entends par « freezer » c’est empêcher la modification d'un graphique même si je... www.commentcamarche.net/forum/affich-2990101-excel-vba-comment-freezer-un-graphique
Excel 2003 - probleme d'ouverture de fichier (Résolu)Bonjour, Je ne peux plus ouvrir de fichier excel en double-clickant dessus. Par contre je peux ouvrir les fichiers excel en faisant ouvrir, et faisant tout le chemin jusqu'au fichier. Par contre cela fonctionne pour tous les autres fichiers... www.commentcamarche.net/forum/affich-5556383-excel-2003-probleme-d-ouverture-de-fichier
Javascript - Les événementsQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est... www.commentcamarche.net/contents/javascript/jsevent.php3