Message Box automatique

  • Initiateur de la discussion Initiateur de la discussion Herbiti
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

Herbiti

Guest
Bonjour Le Forum,

J'aimerai faire une boîte de dialogue qui apparaît que lorsque l'on a rempli certaines cellules neccessaires à l'exécution.

J'y suis arrivé mais j'utilise une cellule pour faire:

j'ai mis:
Code:
si(nbval(A1;A2;A3)=3;réponse();'')
, dans la cellule A4
qui veut dire que si les cellules A1 et A2, neccessaires au programme ainsi que la réponse (A3) est remplie, le message apparaît

La fonction Réponse est défini comme telle:

Code:
Function Réponse()
MsgBox 'Votre réponse, avec les éléments donnés, est la suivante: ' & Sheets('Feuille').Range('A3')
End Function

J'aimerai faire cela sans utilisé une cellule de la feuille.

Merci

Message édité par: Herbiti, à: 15/09/2005 10:40

Message édité par: Herbiti, à: 15/09/2005 10:41

Message édité par: Herbiti, à: 15/09/2005 10:41
 
Bonjour Herbiti,

Essaie :

Sub Reponse()
dim c as range
dim i as integer

i=0
for each c in range('a1:a3')
if c.value<>'' then i=i+1
next c
if i=3 then MsgBox 'Votre réponse, avec les éléments donnés, est la suivante: ' & Sheets('Feuille').Range('A3')

end sub

J'espère avoir saisi la question.

Abel.
 
Bjr Herbiti, Abel, Le forum

Je pense qu'en utilisant le code d'Abel avec un événement Worksheet_change serait pas mal :

Dans VB, feuil1 :
worksheet -> événement change

et le code d'Abel ou celui-ci :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Sheets(1).Range('A1') = '' Or Sheets(1).Range('A2') = '' Or Sheets(1).Range('A3') = '' Then
    Exit Sub
Else
    MsgBox 'Votre réponse, avec les éléments donnés, est la suivante: ' & Sheets('Feuille').Range('A3'), vbOKOnly
End If

End Sub

la macro se lancera à chaque changement ds la feuille en question

A+
:
 
Re,

Oui, oui. Pardon.

2 solutions :
Dans un module avec un bouton associé sur la feuille ou, comme l'indique ZZR09, sur l'évennement 'quand changement'.

Une petite amélioration, si tu me le permets ZZR09 :

Private Sub Worksheet_Change(ByVal Target As Range)
dim Cible as range
set Cible= intersect (target, range('a1:a3'))
if not Cible is nothing then
If Sheets(1).Range('A1') = '' Or Sheets(1).Range('A2') = '' Or Sheets(1).Range('A3') = '' Then
Exit Sub
Else
MsgBox 'Votre réponse, avec les éléments donnés, est la suivante: ' & Sheets('Feuille').Range('A3'), vbOKOnly
End If
end if
End Sub

Le deuxième test ne se fait que s'il y a un changement dans la plage 'A1:A3'. Petit gain de temps (sans doute invisible vu la brièveté du code).

Abel.
 
ça fonctionne à merveille

mais j'aimerai quelques explications (ce que c'est qu'un range, etc...) sur le code suivant:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Cible As Range

Set Cible = Intersect(Target, Range('a1:a3'))

If Not Cible Is Nothing Then
    If Sheets(1).Range('A1') = '' Or Sheets(1).Range('A2') = '' Or Sheets(1).Range('A3') = '' Then
        Exit Sub
    Else
        MsgBox 'Votre réponse, avec les éléments donnés, est la suivante: ' & Sheets(1).Range('A3'), vbOKOnly
    End If
End If

End Sub
 
Re,

Quand tu es dans l'éditeur de VB, clique sur le mot pour lequel tu souhaites une explication et presse la touche F1.
Cela aura pour effet d'ouvrir l'aide d'Excel (et VB) sur le mot recherché.

L'aide est assez bien détaillée. Mais c'est vrai que pour un néophyte ...

Concernant Range (zone), cela désigne une plage de cellules dans une feuille. Cela peut désigner une seule cellule comme plusieurs.


Abel.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

J
Réponses
22
Affichages
3 K
jui42
J
G
  • Question Question
Réponses
36
Affichages
4 K
Kapo Wilfrid
K
Réponses
1
Affichages
1 K
M
Réponses
6
Affichages
1 K
Michel J.
M
M
Réponses
7
Affichages
2 K
M
A
Réponses
2
Affichages
1 K
Axelle48
A
P
Réponses
2
Affichages
2 K
piwiss
P
Retour