Affichage automatique MsgBox et liste déroulante

exene

XLDnaute Accro
Bonjour,

Dans un fichier , je souhaiterais afficher la MsgBox automatiquement quand je choisis un texte prédéfini d'une liste déroulante. J'ai écrit une macro qui veut bien fonctionner mais je suis obligé de passer par outil / macro / exécuter pour la lancer . Quelle instruction dois je rajouter pour que le message s'affiche dès la saisie.
Je suis nul en VBA. Ci-joint le fichier exemple.
Merci.
 

Pièces jointes

  • message alerte.xls
    22 KB · Affichages: 127
  • message alerte.xls
    22 KB · Affichages: 116
  • message alerte.xls
    22 KB · Affichages: 121

youky(BJ)

XLDnaute Barbatruc
Re : Affichage automatique MsgBox et liste déroulante

Bonjour exene,
Fait 1 click avec le bouton droit de ta souris sur l'onglet de Feuil1
et Visualiser le code, copie tout mon code dans la nouvelle fenetre
tu peux supprimer module1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "Tournée à découvert" Then
MsgBox "Vous devez renseigner les 2 colonnes de droite"
Target.Offset(, 1).Select
End If
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Affichage automatique MsgBox et liste déroulante

bonjour exene

dans le module de la feuille

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Row > 1 And Target.Value = "Tournée à découvert" Then MsgBox "Vous devez renseigner les 2 colonnes de droite"
End Sub

Salut Youki :) (et merci encore pour le take.... du bouton)
 

Lii

XLDnaute Impliqué
Re : Affichage automatique MsgBox et liste déroulante

Bonjour,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then End 'si plus d'une colonne
  If Target = "Tournée à découvert" And (Target.Offset(,1) = "" Or Target.Offset(, 2) = "") Then _
        MsgBox "Vous devez renseigner les 2 colonnes de droite"
End Sub
permet de n'avoir pas le message quand les 2 cellules de droite sont renseignées.
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : Affichage automatique MsgBox et liste déroulante

Petite anecdote pour PierreJean,
pour le Take...
En 1998 env. j'ai eu un problème similaire au tiens.....
Frédéric Sigonneau m'avait proposé cette solution parmi d'autres.
A l'époque je me suis dit... mais d'ou y tiens ça ce mec.....
Bien que son utilisation soit pas fréquente j'ai retenu la leçon.

Au plaisir d'une rancontre lors d'une prochaine discution.
 

exene

XLDnaute Accro
Re : Affichage automatique MsgBox et liste déroulante

Bonsoir,

C'est super !. Je m'absente quelques heures et plein de réponses m'attendent. Pour abuser, imaginons que les colonnes à renseigner soient masquées pour raison de lisibilité du tableau, serait il possible que lorsque l'on clique sur le bouton OK de la MsgBox, les colonnes s'affichent et qu'a la fermeture du fichier elles soient de nouveau masquées.

Merci
 

Lii

XLDnaute Impliqué
Re : Affichage automatique MsgBox et liste déroulante

Re,

à voir (procédure facile à corriger pour changer le moment du masquage des colonnes).
 

Pièces jointes

  • AfficherMasquerColonnesSi.zip
    6 KB · Affichages: 68
  • AfficherMasquerColonnesSi.zip
    6 KB · Affichages: 60
  • AfficherMasquerColonnesSi.zip
    6 KB · Affichages: 61

exene

XLDnaute Accro
Re : Affichage automatique MsgBox et liste déroulante

Bonjour,
Je rencontre un problème avec la macro, en effet j'ai dû rajouter des colonnes à droite et à à gauche. J'ai voulu changer les valeurs des colonnes dans la macro mais cela ne fonctionne pas. Le motif de la réclamation est maintenant en colonne M, je souhaiterais masquer les colonnes N et O. Je ne sais pas ou faire les modifications.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then End 'si plus d'une colonne
If Target.Column = 1 And Target <> "Tournée à découvert" Then
Columns("B:C").EntireColumn.Hidden = True
End If
If Target = "Tournée à découvert" And (Target.Offset(, 1) = "" Or Target.Offset(, 2) = "") Then
Columns("B:C").EntireColumn.Hidden = False
MsgBox "Vous devez renseigner les 2 colonnes de droite"
End If
If Target.Column = 2 And Target <> "" Then
If Target.Offset(, -1) = "Tournée à découvert" And Target.Offset(, 1) <> "" Then
Columns("B:C").EntireColumn.Hidden = True
End If
End If
If Target.Column = 3 And Target <> "" Then
If Target.Offset(, -2) = "Tournée à découvert" And Target.Offset(, -1) <> "" Then
Columns("B:C").EntireColumn.Hidden = True
End If
End If
End Sub

Merci.
 

Lii

XLDnaute Impliqué
Re : Affichage automatique MsgBox et liste déroulante

Re,

les ".Offset( ,n)" dépendent de la cellule du départ.
Ci-joint, une autre programmation avec quelques remarques.
 

Pièces jointes

  • AfficherMasquerColonnesSi.zip
    6.9 KB · Affichages: 49
  • AfficherMasquerColonnesSi.zip
    6.9 KB · Affichages: 40
  • AfficherMasquerColonnesSi.zip
    6.9 KB · Affichages: 39

exene

XLDnaute Accro
Re : Affichage automatique MsgBox et liste déroulante

Bonjour le Forum,
Bonjour Lii,

Vraiment désolé mais impossible d'adapter la macro. J'ai tenté de modifier les valeurs mais rien n'y fait. Cela doit venir de la présentation du tableau. Ci-joint la façon dont il se présente (la colonne A est vide).

Merci.
 

Pièces jointes

  • AFFICHERMASQUERTEST.xls
    15.5 KB · Affichages: 69

Lii

XLDnaute Impliqué
Re : Affichage automatique MsgBox et liste déroulante

Re,

si à la Poste on a des problèmes d'adresse ...:rolleyes:
Réclamation : ce n'est pas pour rien qu'on demande un bout de fichier situant le contexte.
Recommandation : il faudrait quand même essayer de bien trier les informations données donc, dernier envoi pour ma part !
 

Pièces jointes

  • AfficherMasquerColonnesSi.zip
    7 KB · Affichages: 47
  • AfficherMasquerColonnesSi.zip
    7 KB · Affichages: 49
  • AfficherMasquerColonnesSi.zip
    7 KB · Affichages: 49

exene

XLDnaute Accro
Re : Affichage automatique MsgBox et liste déroulante

Bonjour Lii,

Promis je ne dépose plus aucune demande sur ce post. Pour ce qui est de l'adresse en VBA, effectivement je suis nul et c'est certain j'aurais du envoyer un fichier plus explicite (mais je voulais faire au plus simple). Quant à l'adresse à la Poste, attendons la concurrence et nous allons rigoler s'il utilise tous la géolocalisation pour distribuer du courrier ! (on en récupère déjà un paquet en se faisant eng.....ler, alors que nous n'y sommes pour rien).

Encore merci pour le temps passé à me répondre.
 

Discussions similaires