Code VBA addition selon nom de l'article

dgeo27

XLDnaute Junior
Bonjour,
je cherche un vba pour pouvoir le lié à un bouton afin de transférer mon "stock rentrant" dans ma page de données

J'ai donc les colonnes : (de la ligne 4 à 39)

-----A-----B-----C-----D-----E-----F-----G

A : vide
B : intitulé produit ->Choix dans une liste déroulante crée sous vba (style google avec prédiction)
C : quantités rentrante
D : quantités en commande
E : résultat (donc qts rentrant - commande)
F : quantité vendue réellement
G : mise en stock

J'aimerais qu'une fois que je clic sur le bouton macro, qu'il me copie et additionne ou soustrais les données de ma colonne "F" et "G" dans les bonne cellule en dessous de la même page.

De B43 à B217 : Intitulé produit
De F43 à F217 : Qts produit vendu
De G43 à G217 : Qts stock

Faudrait donc que le code vba ce réfère au nom du produit en colonne "B" pour pouvoir retrouver le même nom du même produit en dessous de B43 à B217 et d'ajouter/soustraire les nombres ...


Merci beaucoup
 

Pièces jointes

  • Programme_Parfums - Copie.xlsm
    162.9 KB · Affichages: 55

dgeo27

XLDnaute Junior
Re : Code VBA addition selon nom de l'article

Bonsoir merci pour votre aide,
mais avec cette fonction cela m'aide pas.
à partir de c4 à c39 je doit moi même marquer le nombre de pièces que je rentre d'un tel produit que je cherche dans une liste déroulante qui est dans la colonne b.

Si je met une formule dans les cellules "C" je ne peut donc ajouter un chiffre manuellement ...

C'est pourquoi j'aimerais vraiment une macro qu'une fois que j'ai noté tout mon stock entrant qu'il additionne après avoir cliqué sur le bouton "valider"' dans mon tableau en dessous de la même page (listing) ..
 

Bebere

XLDnaute Barbatruc
Re : Code VBA addition selon nom de l'article

bonjour Lonewolf,Dgeo
bienvenue
code à mettre dans un module général
Public Sub RepartiFG() 'stock
Dim a, b, i As Long, j As Long

a = Feuil2.[B4:G39]
b = Feuil2.[B43:G217]

For i = 1 To UBound(a)
For j = 1 To UBound(b)
If UCase(b(j, 1)) = UCase(a(i, 1)) Then
b(j, 5) = b(j, 5) + a(i, 5)
b(j, 6) = b(j, 6) - a(i, 6)
End If
Next j
Next i

With Feuil2
For j = 1 To UBound(b)
.Range("F" & j + 42) = b(j, 5)
.Range("G" & j + 42) = b(j, 6)
Next j
End With

End Sub
 

dgeo27

XLDnaute Junior
Re : Code VBA addition selon nom de l'article

Merci sa devient bon :D
Mais sa fait l'inverse lol au lieu d'ajouter le stock il le déduit.

Je vais essayer d'éclaircir :

De G4 à G39 -> il affiche le stock réel à ajouter à la base de donnée (donc si j'en ai déja 1 de stock et que j'en rajoute 2 = 3...)

De F3 à F39 -> il affiche le nombre que j'ai besoin pour mes commandes (si j'en reçoit 3 mais m'en faut 2 pour mes commande : sa fera qu'il ajoute 1 à mon stock) mais en même temps j'aimerais qu'il me supprime la ligne de I4àK4

c'est un peut le mélange et pas facile à expliquer mais le projet est simple :/ pour moi lol
 

dgeo27

XLDnaute Junior
Re : Code VBA addition selon nom de l'article

Bonsoir et encore merci, après avoir passer au peigne fin le code que vous m'avez donner et sans rien comprendre j'ai trouver l'erreur (car sa soustrais au lieu d’additionner le stock) c'était :
b(j, 5) = b(j, 5) + a(i, 5)
b(j, 6) = b(j, 6) - a(i, 6) (le - que j'ai changer en +)

Maintenant reste une chose si vous savez m'aider svp
Cellule toujours de 4 à 39

Si en "F" j'ai un chiffre et que :
SI "D" = au même chiffre alors effacer la ligne concernant le bon parfum
mais si ce n'est pas le même chiffre (je peut recevoir 1 et qu'il m'en faut 2 pour mes commande par exemple... alors laisser la ligne mais soustraire...
Exemple : En commande = 2 Reçu = 1 alors modifier En commande en : 1

+SI c'est "E' = (idem...) au même chiffre alors effacer la ligne concernant le bon parfum
mais si ce n'est pas le même chiffre (je peut recevoir 1 et qu'il m'en faut 2 pour mes commande par exemple... alors laisser la ligne mais soustraire...
Exemple : En commande = 2 Reçu = 1 alors modifier En commande en : 1

Ou même les deux ... je peut recevoir à la fois du stock pour mes commande et à la fois pour mon stock... donc le faire pour les deux colonnes.

MAIS si "D" et "E" = 0 (zero)
ALORS faire le calcul normal (celui du code déjà crée)

Merci de m'éclairer =)
 

Discussions similaires

Réponses
5
Affichages
345
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 010
dernier inscrit
Sys974