[Résolu] Question Excel Macros

Résolu/Fermé
geo1404 Messages postés 5 Date d'inscription mercredi 20 octobre 2010 Statut Membre Dernière intervention 4 novembre 2010 - Modifié par geo1404 le 28/10/2010 à 14:15
geo1404 Messages postés 5 Date d'inscription mercredi 20 octobre 2010 Statut Membre Dernière intervention 4 novembre 2010 - 28 oct. 2010 à 14:14
Bonjour tout le monde,

je souhaiterais savoir s'il est possible sur une feuille excel grâce à une macro d'ajouter 1 dans une cellule si elle est égale à 0 et de mettre 0 si elle est égale à 1 et pour finir mettre une couleur dans la case si elle est égale à 1 ou à 0?

J'espère que j'ai bien expliqué...

Merci pour votre aide


A voir également:

9 réponses

melanie1324
20 oct. 2010 à 15:46
bonjour,

Oui, il est possible.
Va dans outils, macro, visual basic et copie ce code :

sub macro ()

if sheets("Feuil1").cells(1,2) = 1 then ' si ta cellule de la première ligne 2e colonne (b1) de la feuille nommée Feuil1 est égale à 1 alors :

cells(1,3) = 0 ' alors ta cellule 1ere ligne 3e colonne = 0
else
if sheets("Feuil1").cells(1,2) = 0 then
cells(1,3) = 1
end if
end if
end sub

'remplaces les valeurs par ce dont tu as besoin.
'Pour les couleurs, choisis ta cellule et vas dans format, mise en forme conditionnelle, et mets si c'est égale à 1 choisis le format.
0
merci pour ta réponse très rapide mais j'ai oublié de mettre l'essentiel dans ma question je souhaiterais que cette action se face au clic... en gros si j'ai 0 dans ma cellule je veux que le fond soir rouge et si je clique dessus je veux qu'elle passe à 1 et que le fond soit vert et vis et versa...

Merci
0
melanie1324
20 oct. 2010 à 16:06
Bonjour,

Alors ca dépasse mes compétences, je ne sais pas déclencher une macro par un clic sur une cellule.

Par contre, si ca t'intéresse, je peux te donner le code lorsque ta valeur de cellule est changée.
0
oui je veux bien merci à toi ! si quelqu'un en sait plus....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
au passage que ce soit au clic ou au double clic ca m'est égal
0
melanie1324
20 oct. 2010 à 16:45
re,

donc voici le code pour le double clic.
Tu vas dans macro, visualbasic.
A gauche tu as vbaproject avec toutes tes feuilles, tu choisis la feuille impactée par ce que tu veux.
tu colles le code suivant :

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

If Target.Address = "$B$1" Then ' définit la cellule concernée par ton but, ligne 1 clonne 2 (B1)
If Target.Value = "" Then
Target.Interior.ColorIndex = xlNone
Else
If Target.Value = 0 Then
Target.Interior.ColorIndex = 3 ' permet de changer le couleur de fond 3 = rouge
Else
If Target.Value = 1 Then ' permet de changer le couleur de fond 35 = vert
Target.Interior.ColorIndex = 35
End If
End If
End If
End If



If Range("B1") = 1 Then
Range("B1") = 0
Else
If Range("B1") = 0 Then
Range("B1") = 1
End If
End If
Range("A1").Select

End Sub


le bout de code à la fin te permet de changer la valeur de la cellule. Si pas bon, enlèves.
A chaque que tu double cliqueras sur cette feuille, la macro se lancera. Mais elle ne s'appliquera que si tu double cliques sur la cellule de destination.
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
20 oct. 2010 à 16:55
Bonjour,

voilà un exemple à mettre dans l'éditeur VB sur la feuille concernée, ici l'évènement se produit sur n'importe quelle cellue de la feuille:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Value = "" Then Exit Sub
    
    If Target.Value = 0 Then
        Target.Value = 1
        Target.Interior.Color = vbGreen
        Exit Sub
    End If
    
    If Target.Value = 1 Then
        Target.Value = 0
        Target.Interior.Color = vbRed
        Exit Sub
    End If
    
End Sub


0
ou bien il suffit de mettre les cellules en forme conditionnelle
est c'est tout
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
21 oct. 2010 à 16:33
sauf que la demande est de le faire par macro ... et c'est tout ^^
0
geo1404 Messages postés 5 Date d'inscription mercredi 20 octobre 2010 Statut Membre Dernière intervention 4 novembre 2010
28 oct. 2010 à 14:14
merci pour votre aide ca m'a bien aidé!! voici le code que j'ai utilisé :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Value = 0 Then
ActiveCell.Value = 1
ActiveCell.Interior.ColorIndex = 4
Else
ActiveCell.Value = 0
ActiveCell.Interior.ColorIndex = 3
End If
End Sub


A bientôt !
0