Compteur de valeur puis retour à sa valeur initiale

Bonjour, je ne m'y connais pas tellement en VBA et j'aurais besoin d'aide sur un sujet.

J'ai une colonne "A" avec des objets (Exemple : Pomme, poireau, tomate...etc.). Dans ma colonne "B" un chiffre est indiqué (Allant de 1 à 30).

Ce que je voudrait, c'est qu'a chaque fois qu'un utilisateur note un objet dans une colonne d'une autre feuille du même classeur, un décompte se fait sur la colonne B jusqu'à aller a 0. Puis lorsque cette valeur est à 0, une fenêtre s'affiche pour indiqué un texte (Form Saisie, MsgBox ?). Une fois la fenêtre fermée ou aquittée, la valeur reprend sa valeur d'origine et ainsi de suite !

Merci pour votre aide !

Salut QRa,

...qu'un utilisateur note un objet dans une colonne d'une autre feuille...

Quelle(s?) feuille(s?) dans quelle(s?) colonne(s?) ??


A+

6classeur1.xlsx (10.76 Ko)

Salut Curulis !

Merci pour ton message !

En gros dans la feuille 1, j'ai les données de bases : Les objets (Colonne A) et le compteur (Colonne B),

Dans la feuille 2 j'ai la saisie (Colonne A), c'est la qu'on vient mettre les données. Plus des données du même type sont rentrée dans la colonne A de la feuille 2, plus le compteur de la Colonne B de la feuille 1 diminue.

Une fois que le compteur (Feuille 1 - Colonne 2) est arrivé à 0, une fenêtre s'ouvre pour indiquer une info, on appuie sur un bouton et le compteur se remet à la valeur initiale,

J'espère avoir correctement expliqué ! Bonne soirée !

J'ai oublié d'indiquer ! Lorsque le compteur d'un objet est arrivé à 0, ça serait bien de supprimer les valeurs identiques saisie sur la feuille 2. Comme ça on peux recommencer l'opération !

Ex : Sur l'objet pomme, le compteur est a 4. Une fois que j'ai atteins 4 "Pomme" dans la feuille 2, une fenêtre s'ouvre avec un texte, j'appuie sur un bouton, les valeurs "pomme" dans la feuilles 2 se suppriment et le compteur dans la feuille 1 se remet à 4

Salut QRa,

je viens de voir ton correctif... et je t'enverrai la version correspondante plus tard en soirée.

Voici déjà ce que j'avais imaginé selon ton premier post.
- dans 'Saisie', une liste de validation en [A:A] canalise les saisies possibles selon 'Données' ;
- dans 'Données', le Quota en [B:B] Modulo la formule en [C:C] calcule l'affichage de MsgBox signalant le palier

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Columns(1)) Is Nothing Then
    With Worksheets("Données")
        iRow = .Columns(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues).Row
        If .Range("C" & iRow).Value Mod .Range("B" & iRow).Value = 0 Then _
            MsgBox "Vous avez atteint un nouveau palier de " & .Range("B" & iRow).Value & " " & .Range("A" & iRow).Value & " !", _
            vbInformation + vbOKOnly, "QRa"
    End With
End If
'
End Sub
16qra.xlsm (19.06 Ko)


Ád' t'aleur...

C'est super merci beaucoup ! ça va bien m'aider en tout cas !

Merci encore !

Salut QRa,

version avec effacement, en 'Saisie', des valeurs ayant atteint leur quota.

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iRow%, sItem$
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
If Not Intersect(Target, Columns(1)) Is Nothing Then
    With Worksheets("Données")
        iRow = .Columns(1).Find(what:=Target, lookat:=xlWhole, LookIn:=xlValues).Row
        If .Range("C" & iRow).Value Mod .Range("B" & iRow).Value = 0 Then
            MsgBox "Vous avez atteint un nouveau palier de " & .Range("B" & iRow).Value & " " & .Range("A" & iRow).Value & " !", _
            vbInformation + vbOKOnly, "QRa"
            sItem = Target
            For x = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
                If Range("A" & x).Value = sItem Then Rows(x).Delete shift:=xlUp
            Next
        End If
    End With
End If
'
Application.EnableEvents = True
Application.ScreenUpdating = True
'
End Sub
9qra.xlsm (24.80 Ko)


A+

Rechercher des sujets similaires à "compteur valeur puis retour initiale"