Cellule modifier

juste une dernière modif, quand la cellule n'a plus d'arrière plan, le macro annule ne le vera plus. ne faudra t-il pas recoloré la céllule après annulation ?

Bonjour

juste une dernière modif, quand la cellule n'a plus d'arrière plan, le macro annule ne le vera plus. ne faudra t-il pas recoloré la céllule après annulation ?

si vous voulez conserver la couleur après annulation cela peut se faire.
Mais là il faut bien analyser ce qu'il va se passer si après vous rajoutez un vote pour le même candidat.
Ou alors changer la couleur après annulation ? Jaune devient rouge par exemple.
Dans ce cas vous aurez aussi des couleurs dans toutes les cellules qui ont eu un vote.

oui j'ai testé et j'ai vu. quand la cellule est recolorié, la macro annuler reprend toute les cellules et demande pour chaque cellule modifiée.

le problème c'est que quand la macro annuler est déclenchée, la cellule num candidat se décolore et ne peut plus être vue par la macro si il y aura encore une erreur.

le problème c'est que quand la macro annuler est déclenchée, la cellule num candidat se décolore et ne peut plus être vue par la macro si il y aura encore une erreur.

Je n'ai pas compris. Si vous avez attribué un vote la cellule est coloriée. Si vous vous êtes trompé, vous cliquez sur annuler pour enlever le vote. Pourquoi avoir encore une erreur ?

sur ce code: .Interior.ColorIndex <> xlNone And .Offset(0, 2) > 0 Then : cela veu dire que si la cellule dans Range(Cells(5, 8), Cells(dlg, 8) est colorer et que dant vote est >0 alors la macro detectera. et .Interior.ColorIndex = xlNone enlève la couleur de la cellule dans num_candidat, comme exemple si j'annule le vote sur le candidat num 1, H5 sera sans couleur après l'annulation. et si au fure du vote il y aura encore une erreur et que je dois soustraire sur ce même candidat num 1, la macro annuler ne peut plus detecter car H5 .Interior.ColorIndex sera = xlNone, donc .Interior.ColorIndex <> xlNone And .Offset(0, 2) > 0 Then ne sera pas vérifier et la macro ne fera rien. ou va dans la cellule qui a une coule (dans H5:H10)

Alors on ne met plus de couleur et dans le cas d'une annulation :

- vous entrez le numéro du candidat en I2
- vous cliquez sur annuler
- le code fait apparaitre une inputbox dans laquelle vous rentrez le nombre de vote à annuler

ce sera parfait. oui

Faites les modifications suivantes :

1. Dans la sub Ajout, désactivez :
- la ligne dlg =Range("H"...
- les deux lignes où es mentionné l'instruction INTERIOR.COLOR
- la ligne Dim dlg as integer

2. Remplacez la sub Annuler par celle ci-dessous

Sub Annuler()
Dim dlg As Integer, lig As Integer
Dim nb As String

If IsNumeric(Range("I2")) And Range("I2") > 0 Then
    nb = InputBox("Entrez le nombre de vote à retirer pour le candidat numéro " & Range("I2").Value, "Annulation vote")
    Select Case nb
        Case Is = "":  Exit Sub
        Case Is > 0
            dlg = Range("H" & Rows.Count).End(xlUp).Row
            On Error Resume Next
            lig = Range(Cells(5, 8), Cells(dlg, 8)).Find(Range("I2").Value, LookIn:=xlValues, lookat:=xlWhole).Row
            If lig > 0 And Range("J" & lig) >= nb Then
                Range("J" & lig) = Range("j" & lig) - nb
            Else: MsgBox ("Le nombre de vote maximum à retirer est de " & Range("J" & lig)), vbOKOnly, "Information"
            End If
    End Select
End If
End sub

Cordialement

merci de votre aide. mon problème est bien résolu. merci beaucoup

Rechercher des sujets similaires à "modifier"