msgbox - VB/VBA/VBS - Programmation
Marsh Posté le 30-08-2007 à 22:02:14
Sub test()
nbre = Range("A1" ).Value
vol = Mid(Range("A2" ), 1, Len(Range("B1" )) - 1)
If vol * nbre >= 1500 Then
MsgBox "volume trop important, recommencer"
End If
End Sub
Marsh Posté le 30-08-2007 à 22:17:27
merci pour ton aide.
cependant la formule ne marche pas, elle bloque au niveau de la 3ème phrase: vol = Mid(Range("A2" ), 1, Len(Range("B1" )) - 1) . ç m'affiche "argument ou appel de procédure incorrect"
je ne comprends pas pourquoi dans la formule y a B1.
je voulais savoir aussi si ce test s'effectura automatiquement à chaque fois que je modifie le nombre de bouteille [A1]??
merci
Marsh Posté le 30-08-2007 à 22:48:18
tu mets ca ds ta feuille 1
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
nbre = Range("A1" ).Value
vol = Mid(Range("A2" ), 1, Len(Range("A2" )) - 1)
If vol * nbre >= 1500 Then
MsgBox "volume trop important, recommencer"
End If
End If
End Sub
a+
Marsh Posté le 30-08-2007 à 22:57:07
ça ne marche toujours pas. cette fois-çi elle bloque au niveau de la 4ème phrase: "incompatibilté de type".
sinon moi j'ai trouvé une petite astuce; en A3 je calcule A2*A1.et j'ai créé cette macro :
Code :
|
par contre ce test ne s'effectue pas automatiquement. je voudrai que ça se fasse à chaque fois que je touche A1 ouA2
Marsh Posté le 30-08-2007 à 23:00:31
c la 5 ème ligne qui bloque :If vol * nbre >= 1500 Then
et ce test se lance pour n'importe quel changement dans la feuille, alorsque moi je le ve jsute si on change A1 ou A2. ça se complique?? dsl
Marsh Posté le 31-08-2007 à 20:47:22
86vomito33 a écrit : tu mets ca ds ta feuille 1 |
Marsh Posté le 31-08-2007 à 20:56:32
le code est bon si tu as bien mis 1L, 1.5L, 2L comme tu la expliquer ds ton premier message
si j'enleve les L j'obtiens la meme erreur
si tu veux pa mettre les L remplace par vol=range("A2" ).value
Marsh Posté le 31-08-2007 à 21:52:07
86vomito33 a écrit : le code est bon si tu as bien mis 1L, 1.5L, 2L comme tu la expliquer ds ton premier message |
Il a peut-être mis un format de cellule de type "*L"
Dans ce cas il me semble que la cellule affiche "*L" et contient en fait seulement la valeur "*"
A voir ...
Marsh Posté le 31-08-2007 à 22:53:20
Bonsoir,
merci à tous pour votre aide. Enfin ça marche, ci-dessous le code que j'ai mis:
Code :
|
bonne soirée
Marsh Posté le 30-08-2007 à 20:59:12
bonsoir,
j'ai un petit problème de programmation sur VBA. Je suis entrain d'améliorer un fichier au boulot en mettant des macros. Mon problème est le suivant:
dans un ce dit fichier, dans la cellule A1 j'ai un menu déroulant qui me permet de choisir un nombre de bouteille 0 à 1000 (avec des pas de 100). En A2 j'ai un menu déroulant ki me permet de choisir le volume de la bouteille 1l; 1,5l; ou 2l. ce que je cherche c'est de pouvoir faire mon choix , mais que ça m'affiche un message d'erreur si "le nombre de bouteille"*"le volume de la bouteille" dépasse 1500l et que ça ne valide pas mon choix.
Merci pour vos réponse. et j'espère que j'étais claire.
cordialement