VB excel ; message à la saisie (alert)
Fermé
Clemzd
Messages postés
177
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
7 avril 2013
-
31 janv. 2011 à 14:26
Clemzd Messages postés 177 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 7 avril 2013 - 10 févr. 2011 à 16:07
Clemzd Messages postés 177 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 7 avril 2013 - 10 févr. 2011 à 16:07
A voir également:
- Excel afficher message si valeur
- Message - Guide
- Si et excel - Guide
- Liste déroulante excel - Guide
- Recuperer message whatsapp supprimé - Guide
- Excel cellule couleur si condition texte - Guide
8 réponses
Bonjour,
le code tel que tu l'as écrit se déclenche à l'ouverture du fichier.
Si tu veux que ce soit à chaque changement d'une donnée sur ta feuille.
Dans Macro, vba, tu vas dans ta feuille et tu copie ce code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Valeur As Integer
Valeur = Range("A1").Value
If Valeur > 150 Then
MsgBox (" Attention dépassement de valeur ")
End If
End Sub
le code tel que tu l'as écrit se déclenche à l'ouverture du fichier.
Si tu veux que ce soit à chaque changement d'une donnée sur ta feuille.
Dans Macro, vba, tu vas dans ta feuille et tu copie ce code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Valeur As Integer
Valeur = Range("A1").Value
If Valeur > 150 Then
MsgBox (" Attention dépassement de valeur ")
End If
End Sub
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
Modifié par Bidouilleu_R le 31/01/2011 à 15:43
Modifié par Bidouilleu_R le 31/01/2011 à 15:43
il faut placer ce code dans la feuille
Click droit sur l'onglet ..... Visualiser le code
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Valeur As Variant
Valeur = Range("A1")
If Valeur > 150 Then
MsgBox (" Attention dépassement de valeur ")
End If
End Sub
Click droit sur l'onglet ..... Visualiser le code
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Valeur As Variant
Valeur = Range("A1")
If Valeur > 150 Then
MsgBox (" Attention dépassement de valeur ")
End If
End Sub
Clemzd
Messages postés
177
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
7 avril 2013
18
31 janv. 2011 à 18:59
31 janv. 2011 à 18:59
Merci, en fait j'ai finis par trouver tout seul xD.
J'aurais surement d'autres question pour vous ( c'est un planning complet à réaliser pour le projet à réaliser en DUT informatique).
J'aurais surement d'autres question pour vous ( c'est un planning complet à réaliser pour le projet à réaliser en DUT informatique).
Clemzd
Messages postés
177
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
7 avril 2013
18
31 janv. 2011 à 21:34
31 janv. 2011 à 21:34
Autre question, comment faire pour récupérer la valeur d'une variable d'un autre module, je m'expliques :
- J'ai fait un bouton sur ma feuille excel puis clique droit associer du code
- Le voici :
Sub SaisirBmensuelle()
Dim valNbrMax As Integer 'Déclaration d'une variable qui contient la valeur de base mensuelle à ne pas dépasser
valNbrMax = InputBox("Saisissez le nombre d'heures max ", "Base Mensuelle") 'La valeur est saisir par l'utilisateur au clic du bouton
End Sub
- J'ai toujours mon autre module qui me permet de vérifier que la valeur en A1 ne dépasse pas X et justement ce nombre X doit être la valeur Max saisie à l'issue du clic sur le bouton sur le formulaire.
- Voici le code de l'autre module :
Sub Verifcellule()
'-----------------------------------------------------------------------------------
'Procédure verifB1 qui vérifie que la valeur dans la cellule B1 est inférieur à 250
'-----------------------------------------------------------------------------------
Dim CelluleB1 As Integer 'On déclare la variable CelluleB1 de type entier
CelluleB1 = Range("B1").Value 'Cette variable recoit la valeur de la cellule B1
If CelluleB1 > SaisirBmensuelle.valNbrMax Then 'Si la valeur dans la cellule B1 est supérieur à 250 on fait...
Select Case MsgBox("Vous dépasser !", vbRetryCancel + vbCritical, "ATTENTION ALERT DANGER") 'un msgbox alert
Case vbRetry
'procédure si click sur Réessayer
Case vbCancel
'procédure si click sur Annuler
End Select
End If
End Sub
- Ma question est donc : comment récupérer la valeur saisie dans le inputbox du module SaisirBmensuelle ?
- J'ai fait un bouton sur ma feuille excel puis clique droit associer du code
- Le voici :
Sub SaisirBmensuelle()
Dim valNbrMax As Integer 'Déclaration d'une variable qui contient la valeur de base mensuelle à ne pas dépasser
valNbrMax = InputBox("Saisissez le nombre d'heures max ", "Base Mensuelle") 'La valeur est saisir par l'utilisateur au clic du bouton
End Sub
- J'ai toujours mon autre module qui me permet de vérifier que la valeur en A1 ne dépasse pas X et justement ce nombre X doit être la valeur Max saisie à l'issue du clic sur le bouton sur le formulaire.
- Voici le code de l'autre module :
Sub Verifcellule()
'-----------------------------------------------------------------------------------
'Procédure verifB1 qui vérifie que la valeur dans la cellule B1 est inférieur à 250
'-----------------------------------------------------------------------------------
Dim CelluleB1 As Integer 'On déclare la variable CelluleB1 de type entier
CelluleB1 = Range("B1").Value 'Cette variable recoit la valeur de la cellule B1
If CelluleB1 > SaisirBmensuelle.valNbrMax Then 'Si la valeur dans la cellule B1 est supérieur à 250 on fait...
Select Case MsgBox("Vous dépasser !", vbRetryCancel + vbCritical, "ATTENTION ALERT DANGER") 'un msgbox alert
Case vbRetry
'procédure si click sur Réessayer
Case vbCancel
'procédure si click sur Annuler
End Select
End If
End Sub
- Ma question est donc : comment récupérer la valeur saisie dans le inputbox du module SaisirBmensuelle ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
il y a deux solutions mais je crois que vu comme sont construites tes macros, c'est la 2ème à toi de voir.
- 1ère solution : déclare ta variable comme suit (à écrire avant le premier sub) : public valNbrMax as variant
ta variable est alors définie pour toutes tes macros
-2nde solution : tu mets ta valeur dans une cellule cachée et tu récupères sa valeur.
il y a deux solutions mais je crois que vu comme sont construites tes macros, c'est la 2ème à toi de voir.
- 1ère solution : déclare ta variable comme suit (à écrire avant le premier sub) : public valNbrMax as variant
ta variable est alors définie pour toutes tes macros
-2nde solution : tu mets ta valeur dans une cellule cachée et tu récupères sa valeur.
Clemzd
Messages postés
177
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
7 avril 2013
18
1 févr. 2011 à 19:09
1 févr. 2011 à 19:09
merci pour votre aide : j'ai choisi la première solution mais lors de l'execution j'ai une erreur sur justement cette ligne : " Attribut incorrect dans une procédure Sub ou Function "
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
1 févr. 2011 à 20:05
1 févr. 2011 à 20:05
Bonsoir,
Tu peux aussi ne pas utiliser de macro, mais le menu Données > Validation.
++
Tu peux aussi ne pas utiliser de macro, mais le menu Données > Validation.
++
Bonjour,
Il faut l'écrire dns un modle comme suit
public valNbrMax as variant
'dans tes macros suppriment toute ligne qui sont dim valNbrMax
sub ffgf
ton code
end sub
sub fff
ton code
end sub
Il faut l'écrire dns un modle comme suit
public valNbrMax as variant
'dans tes macros suppriment toute ligne qui sont dim valNbrMax
sub ffgf
ton code
end sub
sub fff
ton code
end sub
Clemzd
Messages postés
177
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
7 avril 2013
18
10 févr. 2011 à 16:07
10 févr. 2011 à 16:07
Merci beaucoup pour vos réponses, c'est désormais fonctionnel !
Mais, je rencontre désormais un nouveau problème :
-Ce que je souhaites faire :
· créer une liste contenant ADS, MC et SSIAP
· mettre de la cellule D11 à D16 cette liste
- Ce que j'ai fait : (le code)
Sachant que j'appelle cette procédure à l'ouverture
- Le probleme
Lorsque je ferme, puis que j'ouvre mon fichier excel, j'obtiens :
" Erreur d'exécution '91' : variable objet ou variable de bloc With non définie "
Merci de votre aide.
Mais, je rencontre désormais un nouveau problème :
-Ce que je souhaites faire :
· créer une liste contenant ADS, MC et SSIAP
· mettre de la cellule D11 à D16 cette liste
- Ce que j'ai fait : (le code)
Sub Qualif() Dim ListQualif As ComboBox ' La variable ListQualif est une liste ' Initialisation de la liste ListQualif.AddItem "ADS" ListQualif.AddItem "MC" ListQualif.AddItem "SSIAP" Range("D11:D16") = ListQualif.List ' Les cellules de la colonne D (de la 11 à la 16ème ligne) recoivent la liste. End Sub
Sachant que j'appelle cette procédure à l'ouverture
- Le probleme
Lorsque je ferme, puis que j'ouvre mon fichier excel, j'obtiens :
" Erreur d'exécution '91' : variable objet ou variable de bloc With non définie "
Merci de votre aide.