Cellule modifier

Bonjour, je ne sais pas si ce sujet est déjà traité. mais j'ai un petit problème svp aidez moi:

j'ai une macro qui incrémente la valeur d'une cellule en fonction de la valeur d'une autre. comme

si A1 = 1 alors B1.Value = B1.Value+1; si A1 = 2 alors B2.Value = B2. Value + 1...

en sachant que une action de macro est irréversible, si je me suis trompé au lieu de 1 j'ai mi 2 sur A1 donc se sera la mauvaise cellule qui incrémentera.

- je veux alors récupérer l'adresse de la cellule modifiée dernièrement. les "Private Sub Worksheet_Change(ByVal Target As Range),..." ne m'aident pas car ils sont exécutés dès qu'on modifie une cellule. mais je veux que quand j'appuy sur un bouton la macro me donnera la cellule dernièrement modifiée. merci à vous.

1testtsidy.xlsm (16.17 Ko)

Bonjour

Cordialement

pardon

@+ Dan je dois donc ajouter un autre bouton pour le macro de détection de la cellule dernièrement modifiée

Dans votre message vous parlez de A1
Dans votre fichier on doit faire quoi ?

désolé mais j'ai du oublier de modifier le code. vraiment désolé.

c'est si I2 = 1 alors J5.Value = J5.Value + 1; si I2 = 2 alors J6.Value = J6.Value + 1....

et si j'ai fait une faute en saisissant 3 sur I2 alors que cela devrai être 2, je doit détecter où était la cellule dernièrement modifiée pour le rectifier. il faute préciser que le nombre de ligne va augmenter selon le nombre de personne

mais je veux que quand j'appuy sur un bouton la macro me donnera la cellule dernièrement modifiée.

Je la renseigne où la dernière cellule modifiée ? On peut ajouter une couleur dans la cellule à la place par exemple

si à l'appuy d'un bouton la cellule dernièrement modifiée sera colorée me convient, ou une msgbox pour me dire où était la cellule.

si j'utilise Private Sub Worksheet_Change(ByVal Target As Range), à chaque modification Excel me donnera toujours automatiquement le un signe. mai je veux que je d'éclanche cette évènement manuellement

Dans votre fichier, remplacez votre code par celui-ci

Sub compteur()
Dim dlg As Integer

dlg = Range("H" & Rows.Count).End(xlUp).Row
Range(Cells(5, 8), Cells(dlg, 8)).Interior.ColorIndex = xlNone
With Cells(4 + Cells(2, 9).Value, 10)
    .Value = .Value + 1
End With
Cells(4 + Cells(2, 9).Value, 8).Interior.ColorIndex = 6
End Sub

Choisissez en I2 puis cliquez sur le bouton

ok je vais essayer. merci

j'ai vraiment besoin de votre code. merci pour l'aide.

et si je met deux bouton le OK pour l'ajout et annuler pour detecter la céllule dernièrement ajouter entre J5:J10 et de pouvoir rectifier si il y avait erreur sur le numéro des candidat? on peux dire que c'est un fichier pour compter des votes ou des points reçu par des candidat. et s'il y a erreur de l'utilisateur alors on devra rectifier. chaque point ou voix sont incrémentés de 1 à chaque entrée du numéro des candidat.

3testtsidy.xlsm (18.36 Ko)

Votre bouton OK n'est pas relié au code que je vous ai proposé
La macro Compteur ne sert plus à rien dans votre fichier, vous devez la remplacer par ce que je vous ai proposé

oui oui. attendez

une seule petit hic restant, après appuy sur le boutton ok, I2 doit se metre vide car on doit eviter l'erruer du double click.

s'il y a erreur de l'utilisateur alors on devra rectifier. chaque point ou voix sont incrémentés de 1 à chaque entrée du numéro des candidat.

Que voulez-vous avoir quand on click sur le bouton annuler ? On retire le vote d'une unité sur le dernier ajout effectué ?

une seule petit hic restant, après appuy sur le boutton ok, I2 doit se metre vide car on doit eviter l'erruer du double click.

Oui j'ai vu, mettez ceci juste avant le END SUB --> Cells(2, 9).Value = ""

Que voulez-vous avoir quand on click sur le bouton annuler ? On retire le vote d'une unité sur le dernier ajout effectué ?

oui, mais avec confirmation

voici le fichier que j'ai fait il y a une heure. ceci consiste tout d'abord à compter des voix de chaque candidat. en appuyant sur OK, le nombre de vote pour le candidat saisi augmentera de 1. et s'il y a erreur de manipulation on devra revenir en arrière et annuler la dernière modification (avec confirmation si encore erreur).

3votingtsidy.xlsm (21.33 Ko)

Pourquoi vous fusionnez G et H ? Avec VBA les fusions sont déconseillées. Vous évitez les éventuels soucis
Donc en premier défusionnez G et H et laissez le "num candidat" en H

Pour annuler :
- utilisez le code ci-dessous pour l'annulation
- ajouter un bouton pour l'annulation et liez le au code ci-dessous

Sub Annuler()
Dim dlg As Integer
Dim Cel as Range

dlg = Range("H" & Rows.Count).End(xlUp).Row
For Each cel In Range(Cells(5, 8), Cells(dlg, 8))
    With cel
        If .Interior.ColorIndex <> xlNone And .Offset(0, 2) > 0 Then
            If MsgBox("Voulez-vous retirer le vote pour le candidat " & cel.Offset(0, 1).Value & "?", vbYesNo + vbDefaultButton2, "Confirmation") = vbYes Then
                .Offset(0, 2).Value = .Offset(0, 2).Value - 1
                .Interior.ColorIndex = xlNone
                Exit Sub
            End If
        End If
    End With
Next cel
End Sub

Merci de ne plus mettre des fichiers en ligne. J'ai le dernier qui me sert de modèle pour le cas où il y aurait encore des modifi. Sans quoi je dois tout refaire

bonjour bonjour. merci. je vais essayer votre conseil

vraiment merci. je vous suis très reconnaissant. merci merci.

Rechercher des sujets similaires à "modifier"