Affiche X msgbox en 1
Cédric
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Faisant un fichier de gestion de stock, je veux faire un affichage, dans ma macro, qui sort un msgbox quand il y a une erreur dans les stocks (ex : stock négatif).
voici mon code :
Sauf que la macro va me sortir un msgbox par erreur...
- Y a t il moyen pour qu'il affiche qu'une seule msgbox ?
- S'il n'y a qu'une seule erreur, qu'il affiche "il y a un stock négatif" au lieu de "il y a des stocks négatifs".
- Ainsi que d'afficher toute la liste des erreurs en dessous ?
- Et créer un deuxième msgbox qui lui informera (avec un vbInformation) qu'une liste a été créé dans la Feuille de calcule appelé "Faire la commande".
voici ma macro complète :
Au passage, pouvez vous vérifier si cette macro est bien écrite ?
Merci beaucoup
Faisant un fichier de gestion de stock, je veux faire un affichage, dans ma macro, qui sort un msgbox quand il y a une erreur dans les stocks (ex : stock négatif).
voici mon code :
If (Range("B" & i).Value < 0) Then
MsgBox ("Il y a des stocks négatifs", vbOKOnly + vbExclamation, "Erreur")
End If
Sauf que la macro va me sortir un msgbox par erreur...
- Y a t il moyen pour qu'il affiche qu'une seule msgbox ?
- S'il n'y a qu'une seule erreur, qu'il affiche "il y a un stock négatif" au lieu de "il y a des stocks négatifs".
- Ainsi que d'afficher toute la liste des erreurs en dessous ?
- Et créer un deuxième msgbox qui lui informera (avec un vbInformation) qu'une liste a été créé dans la Feuille de calcule appelé "Faire la commande".
voici ma macro complète :
Sub Test()
' Test Macro
Dim premiereColonne As Variant
premiereColonne = Sheets("Faire la commande").Range("A1").End(xlToRight).Column + 1
'Récupère la 1ère colonne non vide
Sheets("Faire la commande").Cells(1, premiereColonne).Value = "Commande du " & Day(Date) & "/" & Month(Date) & "/" & Year(Date)
' On met la commande et la date
Sheets("Faire la commande").Cells(2, premiereColonne).Value = "Références"
'Le titre Références en dessous
Sheets("Faire la commande").Cells(2, premiereColonne).Interior.Color = RGB(230, 60, 230)
'Le remplissage
Sheets("Faire la commande").Cells(2, premiereColonne).ColorIndex = RGB(255, 255, 0)
'La couleur
j = 3
'1ère ligne de la commande
i = 1
'1ère ligne de la liste des articles
While Sheets(Range("A" & i).Value) <> 0
'Boucle sur tous les articles
If (Range("B" & i).Value < Range("C" & i).Value) Then
If (Range("F" & i).Value > 0) Then
Worksheets("Faire la commande").Cells(j, premiereColonne).Value = Range("A" & i).Value
j = j + 1
End If
End If
If (Range("B" & i).Value < 0) Then
MsgBox ("Il y a des stocks négatifs :", vbOKOnly + vbExclamation, "Erreur")
End If
i = i + 1
'Passage à la ligne suivante
Wend
End Sub
Au passage, pouvez vous vérifier si cette macro est bien écrite ?
Merci beaucoup
A voir également:
- Affiche X msgbox en 1
- Site x - Guide
- Sites X : Pornhub, YouPorn et Redtube sont de nouveau accessibles en France - Guide
- Photoscape x - Télécharger - Retouche d'image
- Direct x - Télécharger - Pilotes & Matériel
- Photofiltre studio x - Télécharger - Retouche d'image
1 réponse
Bonjour,
Sub Test() ' Test Macro Dim premiereColonne As Variant With Sheets("Faire la commande") 'Récupère la 1ère colonne non vide premiereColonne = .Range("A1").End(xlToRight).Column + 1 ' On met la commande et la date '.Cells(1, premiereColonne).Value = "Commande du " & Day(Date) & "/" & Month(Date) & "/" & Year(Date) .Cells(1, premiereColonne).Value = "Commande du " & Date 'Le titre Références en dessous .Cells(2, premiereColonne).Value = "Références" 'Le remplissage .Cells(2, premiereColonne).Interior.Color = RGB(230, 60, 230) '.Cells(2, premiereColonne).ColorIndex = RGB(255, 255, 0) End With 'La couleur j = 3 '1ère ligne de la commande i = 1 '1ère ligne de la liste des articles 'While Sheets(Range("A" & i).Value) <> 0 While Range("A" & i).Value <> 0 'Boucle sur tous les articles If (Range("B" & i).Value < Range("C" & i).Value) Then If (Range("F" & i).Value > 0) Then Worksheets("Faire la commande").Cells(j, premiereColonne).Value = Range("A" & i).Value j = j + 1 End If End If If (Range("B" & i).Value < 0) Then Msg = "B" & i & vbNewLine End If i = i + 1 'Passage à la ligne suivante Wend If Msg <> "" Then MsgBox "Il y a des stocks négatifs cellules:" & vbNewLine & Msg, vbOKOnly + vbExclamation, "Erreur" End If End Sub
"Erreur d'exécution '1004'
Erreur définie par l'application ou l'objet"
et quand je fais déblocage, il me surligne toutes les lignes (non commentées) à partir de la 10...
A la ligne 15, vous l'avez passé en commentaire ; pourquoi ? c'était pas ce qui définissait la couleur du texte dans ma cellule ?
sinon, où l'on modifie la macro, mon curseur est un gros bloc noir au lieu de la petite barre ; comment fait on pour repasser avec la petite barre ? :/
quand je fais déblocage, il me surligne toutes les lignes (non commentées) à partir de la 10.. Non, une ligne a la fois
Quand vous avez l'erreur, clic sur debugage et passez le curseur souris sur pour voir ca valeur
N'ayant pas votre fichier avec donnees, ai fait un test et chez moi ca marche !!!!
A la ligne 15 Ben oui, mais celle du dessus le fait deja et sans erreur
sauf qu'a la ligne 15, je veux changer la couleur du texte de la cellule alors qu'a la ligne 14, c'est le remplissage qui est changé...
pour la valeur de , elle est de 16385
Autant pour moi, couleur texte sans erreur
elle est de 16385 Un peu trop, max 16 384 colonnes doit y avoir un bleme!!
pour votre fichier, passez par mes MP
un problème, je me doute puisque la macro ne fonctionne pas lol