Aide sur VB et Excel sur 1 seule Msgbox qui traite plusieurs comp de val de plus

Signaler
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012
-
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012
-
Bonjour,

pourriez-vous me dire si la chose suivante est possible:
A partir d'une gestion des stocks (en maintenance); je souhaite effectuer une comparaison sur une colonne (par exemple la K), chacune des cellules de K représente un type numérique pour une ref (nombre restant du magasin d'une ref de moteur 1 par exemple):

si k < 3 "attention stock faible!"
si k < 1 "Stock 0 recommander pièce!"

voilà mon code (exemple pour les cellules K11 ET K12):
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Range("K11") < 3 Then MsgBox "attention stock faible!"
If Range("K11") < 1 Then MsgBox "Stock 0 recommander pièce!""

If Range("K12") < 3 Then MsgBox "attention stock faible!""
If Range("K12") < 1 Then MsgBox "Stock 0 recommander pièce!""
End Sub


la problème est donc le suivant:
j'au une msgbox par comparaison hors ce que je souhaite c'est avoir une seule msgbox qui incrémente si besoin tous les <3 et <1 suivant la ou les ref en limite de stock.


Merci pour votre aide (j'ai d'autres questions mais on va déjà commencer par ça, un grand merci d'avance),


Julien

11 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
Merci pour votre aide (j'ai d'autres questions mais on va déjà commencer par ça, un grand merci d'avance),

Je t'arrête alors de suite :
- tu développes donc sous VBA (le VBA de Excel) et non sous :
> Forum > Visual Basic 6

Et les discussion relatives à VBA sontr à ouvrir dans Langages
dérivés > VBA

- arrange-toi, dans l'ouverture de tes discussions, pour être plus clair. Ton exposé ne l'est par exemple pas, dans la présente !
Notamment ceci :
j'au une msgbox par comparaison hors ce que je souhaite c'est avoir une seule msgbox qui incrémente si besoin tous les <3 et <1 suivant la ou les ref en limite de stock

Et comme tu as "plusieurs questions" ==>> commence par ouvrir une discussion (mais claire et précise) dans la section qui convient, pour ta première question.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Bonjour,
Oui je ne sais pas si j'ai bien compris la question, ce ne serait pas un truc du genre:
Dim i, StockZero, StockFaible As Long
StockFaible = 0
StockZero = 0

For i = 1 To 20
   If Range("k" & i).Value <> "" Then
      If Range("K" & i).Value < 1 Then
         StockZero = StockZero + 1
         Range("K" & i).Font.Color = vbRed
      Else
         If Range("K" & i).Value < 3 Then
            StockFaible = StockFaible + 1
            Range("K" & i).Font.Color = vbGreen
         End If
      End If
   End If
Next i
If StockFaible > 0 Or StockZero > 0 Then
   MsgBox "Vous avez " & StockFaible & " articles qui finissent, et " & StockZero & " articles à zéro"
End If



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012

Bon je me suis trompé pour mon post (le vba de excel effectivement), merci pour vos infos
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012

Merci acive, ton code correspond à ce que j'envisage, je viens de le tester c'est déjà vraiment super (ça va me permettre de mieux comprendre ton code et de le modifier éventuellement pour isoler le stock mini <3 et le stock 0)!!!! Question, saurais-tu me renvoyer dans la msgbox le ou les cellules concernées par le stock mini<3 (par exemple "K11")? Si oui saurais-tu en plus envoyer dans la msgbox la désignation de l'objet (par exemple A1 "moteur monophasé" et j'ai en K1 "2"(< au stock mini), si je pouvais avoir les 2 informations dans la msgbox, du stock mini et de la désignation...).

Merci pour ton aide,

Julien

Dim i, StockZero, StockFaible As Long
Dim Ref(20) As String

StockFaible = 0
StockZero = 0

For i = 1 To 20
   If Range("k" & i).Value <> "" Then
      If Range("K" & i).Value < 1 Then
         StockZero = StockZero + 1
         Range("K" & i).Font.Color = vbRed
         Ref(i) = Range("L" & i).Value 'L' C'est la colonne qui contient les références
      Else
         If Range("K" & i).Value < 3 Then
            StockFaible = StockFaible + 1
            Range("K" & i).Font.Color = vbGreen
            Ref(i) = Range("L" & i).Value
         End If
      End If
   End If
Next i
If StockFaible > 0 Or StockZero > 0 Then
   Dim Msg As String
   Msg = "Vous avez " & StockFaible & " articles qui finissent, et " & StockZero & " articles à zéro:" & vbCrLf
   For i = 0 To 19
       If Len(Ref(i)) > 0 Then Msg = Msg & Ref(i) & vbCrLf
   Next i
   MsgBox Msg
End If


Ca tu devrais pouvoir le faire tout seul... il faut un peu tirer par les neurones (elles sont la pour ça)
Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012

encore merci, effectivement avec du temps et pas mal de travail (je suis tres tres loin d'avoir ton niveau...Je souhait mettre en place une gestion des stocks en maintenance et je n'ai pas forcément le temps avec les pannes à gérer, la mise en place du préventif, le suivi des entreprises extèrieurs un enfant de 3 ans, une nouvelle maison, et le challenge d'un nouveau job...J'ai des notions de C d'il y a quelques années mais c'est loin...),
Bonne soire,
Julien
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012

J'ai testé ton dernier code acive, tu es vraiment un boss,

bonne soirée
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012

Bonjour,

sur cette ligne tu m'as mis: Ref(i) = Range("L" & i).Value 'L' C'est la colonne qui contient les références

bref ça va m'afficher les infos (en string) de la colonne L: par rapport à ça, comment modifier cette partie du prog pour obtenir par exemple les infos de la colonne M en plus de la L?

Merci par avance,

Julien

comment modifier cette partie du prog pour obtenir par exemple les infos de la colonne M en plus de la L?

Ref(i) = Range("L" & i).Value & " - " & Range("M" & i).Value


Et les neurones? toujours en sommeil?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012

mdr oui effectivement mais j'ai tellement de retard à rattraper que ça va pas revenir comme ça lol (c'est la premiere fois que je vois une macro sur excel....)
Encore merci !

PS: effectivement ç'était tout con...
Messages postés
13
Date d'inscription
samedi 15 mars 2008
Statut
Membre
Dernière intervention
12 mai 2012

Bonsoir,

question: pourquoi ai-je une boucle infini de ma msgbox si je fais: (je n'arrive pas à acquitter ma msgbox)

If Range("k" & i).Value <> "" Then
If Range("K" & i).Value < 1 Then
StockZero = StockZero + 1
'Range("K" & i).Font.Color = vbRed'
'Range("P" & i).Font.Color = vbRed'
Range("P" & i).Value = Range("K" & i).Value
'je veux importer les valeurs des cellules K <1 dans P....'

Merci pour votre aide et bonne soirée