Difference entre cellule. [Résolu]

Signaler
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
bonjour,

voilà ma question,

j'ai dans une colonne (colonne A) d'une feuille excel une série de chiffres.

lorsque je clique sur un bouton de mon formulaire, il s'ajoute une unité (+1) dans les cellules adjacentes (colonne B) à ma première colonne.
je voudrais qu'en meme temps que s'affiche cette unité, celle-ci soit déduite de ma série de chiffre de ma colonne A.

Exemple:

colonne A         Colonne B
10
15
15
20

lorsque je clique sur le bouton de mon formulaire, j'obtiens (pour le moment):

colonne A         Colonne B
10                     1
15                     1
15                     1
15                     1

et je voudrais obtenir:

Colonne A      Colonne B
9                     1
14                   1
14                   1
14                   1

j'ai essayé avec la méthode 'range', mais le problème, c'est qu'il part avec ma colonne A vide...

merci pour l'aide

5 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Il te suffit de changer le 1 par la quantité à ajouter/soustraire
range("B" & ligne ).Value = range("B" & ligne ).Value + Quantité  'vente
range("A" & ligne ).Value = range("A" & ligne ).Value - Quantité  'réduction d'inventaire

Si ça te cause une erreur, c'est que la variable "ligne" n'est probablement pas définie dans ton programme. À toi de modifier selon tes besoins. Comment retraces-tu le produit dans ta liste ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Salut Mpi,

Je viens de trouver (je suis très très bête!!!) j'y ai pensé quand tu m'as demande le façon dont je tracé les articles dans ma liste... suffit de faire la meme chose mais en soustrayant plutot qu'en additionnant!!! (suis très bête je sais!)


voilà ce que j'avais pour ajouter chaque article de ma listbox dans ma feuille excel



Private Sub ValiderVente_Click()

For k = 0 To ListeVente.ListCount - 1
Set Recherche = Sheets("Stock").Columns("c").Find(ListeVente.List(k))
Sheets("Stock").Range("g" & Recherche.Row) = Sheets("Stock").Range("g" & Recherche.Row) + 1
Next k






et voilà ce que j'ai fait:


Private Sub ValiderVente_Click()

For k = 0 To ListeVente.ListCount - 1
Set Recherche = Sheets("Stock").Columns("c").Find(ListeVente.List(k))
Sheets("Stock").Range("g" & Recherche.Row) = Sheets("Stock").Range("g" & Recherche.Row) + 1
Sheets("Stock").Range("f" & Recherche.Row) = Sheets("Stock").Range("f" & Recherche.Row) - 1
Next k

 
et ca fonctionne!
encore merci!!!
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

et un truc comme ca cela devrait marcher ?

range("A" & ligne ).Value = range("A" & ligne ).Value - range("B" & ligne ).Value

si cela ne marche pas c'est que tes valeurs doivent etre au format text. non ?

A+
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Dans la même ordre d'idée que BigFish (salut), si tu dois soustraire la valeur 1, il te suffit de changer un peu
range("B" & ligne ).Value = range("B" & ligne ).Value + 1  'vente d'une unité
range("A" & ligne ).Value = range("A" & ligne ).Value - 1  'réduction d'inventaire

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Salut MPi, Bigfish,

j'ai essayé la petite ligne de code donnée par bigfish, mais ca plante avec le message d'erreur suivant (et il surligne toute la ligne donnée par bigfish)
'Erreur d'execution 1004: la méthode'Range' de l'objet '_Global' a échoué

-> Mpi, ce n'est pas forcément une seule unité à la fois...

je vais essayer d'expliquer plus clairement! (pas facile!)

j'ai donc:
une feuille excel "stock" avec deux colonnes:
   - une colonne avec mes quantités initiales de mon stock
   - une colonne dans laquelle viennent s'additionner les quantités vendues.
un formulaire avec une listbox, dans laquelle l'utilisateur vient charger les articles vendus (il peut donc y avoir dans la liste plusieurs fois le meme article). et un boutton avec lequel il valide la vente. c'est a dire que le bouton vide la litbox, transfère son contenu dans une feuille excel (ou je peux donc voir le détail de chaque vente) et totalise chaque quantité d'article vendu et les "colle" dans ma feuille excel "stock" (colonne des quantités vendues)
Je souhaiterais deduire ces quantité de mon stock initial.

Exemple:

Situation initiale:
                 Stock Initial  QuantitéVendue
colonneA    ColonneB         ColonneC
Article1            50            
Article2            50
Article3            50
...

L'utilisateur clique sur le bouton pour valider la premiere vente de son premier client:

                 Stock Initial  QuantitéVendue
colonneA    ColonneB         ColonneC
Article1            47                   3           
Article2            50                     
Article3            49                    1
...

ensuite pour la seconde vente (et ainsi de suite)

                 Stock Initial  QuantitéVendue
colonneA    ColonneB         ColonneC
Article1            45                  5     (il a vendu 2 unités pour la vente 2)      
Article2            40                 10 
Article3            46                 4      (il a vendu 3 unités pour la vente 2)
...

Comme vous le voyez donc, je souhaiterais additionner les quantités vendues (et ça, ça fonctionne déjà!) et dans le meme temps, déduire du stock initial la dernière quantité vendue (celle que l'on valide au moment ou l'on click)

j'espere avoir été plus clair... (pas sur!)

Encore merci pour votre aide!