[Résolu] Question Excel Macros

Résolu
geo1404 Messages postés 6 Statut Membre -  
geo1404 Messages postés 6 Statut Membre -
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

9 réponses

  1. melanie1324
     
    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
  2. geo1404
     
    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
  3. melanie1324
     
    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
  4. geo1404
     
    oui je veux bien merci à toi ! si quelqu'un en sait plus....
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. geo1404
     
    au passage que ce soit au clic ou au double clic ca m'est égal
    0
  7. melanie1324
     
    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
  8. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  9. rivo
     
    ou bien il suffit de mettre les cellules en forme conditionnelle
    est c'est tout
    0
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      sauf que la demande est de le faire par macro ... et c'est tout ^^
      0
  10. geo1404 Messages postés 6 Statut Membre
     
    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