Bonjour chers amis
Je voudrais par Vba uniquement selon saisie en D25
Si D25 = "x" Que K36 = "x"
Si D25 est vide ""
une invitation à choisir par Oui ou Non demandant "Autoriser à visualiser...."
Oui K36 = x
Non K36 = ""
En vous remerciant
Bonjour chers amis
Je voudrais par Vba uniquement selon saisie en D25
Si D25 = "x" Que K36 = "x"
Si D25 est vide ""
une invitation à choisir par Oui ou Non demandant "Autoriser à visualiser...."
Oui K36 = x
Non K36 = ""
En vous remerciant
Salut,
Voici, si j'ai bien compris un bout de code qui doit pouvoir faire ce que tu veux :
Il ne te reste plus qu'à faire un petit bouton pour lancer la chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub toto() If LCase(Range("D25").Value) = "x" Then Range("K36").Value = "x" Else reponse = MsgBox("Autoriser à visualiser ?", vbYesNo + vbQuestion) If reponse = vbYes Then Range("K36").Value = "x" Else Range("K36").Value = "" End If End If End Sub
Bonjour jerome
Puis-je inclure ton code dans cette macro Stp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B10:C12")) Is Nothing Then Application.EnableEvents = False If Application.WorksheetFunction.CountBlank(Range("B10:C12")) < 3 Then MsgBox "Vous devez inscrire au moins 3 utilisateurs avec leur mot de passe" End If Application.EnableEvents = True End If End Sub
J'ai essayé comme cela, mais j'ai une erreur : Variable non définie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B10:C12")) Is Nothing Then Application.EnableEvents = False If Application.WorksheetFunction.CountBlank(Range("B10:C12")) < 3 Then MsgBox "Vous devez inscrire au moins 3 utilisateurs avec leur mot de passe" End If If LCase(Range("D25").Value) = "x" Then Range("K36").Value = "x" Else Reponse = MsgBox("Autoriser à visualiser les e-mails ?", vbYesNo + vbQuestion) If Reponse = vbYes Then Range("K36").Value = "x" Else Range("K36").Value = "" End If End If Application.EnableEvents = True End If End Sub
Bonsoir, n'auriez vous pas quelque part un "Option Explicit" qui vous obligerait à définir la variable "Reponse"
Parceque chez moi, sur un document neuf et sans Option explicit, votre code fonctionne.
Cordialement![]()
bonjour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub Worksheet_Change(ByVal Target As Range) dim reponse as boolean If Target.Address = "$D$25" Then If LCase(Target.Value) = "x" Then Range("K36").Value = "x" Else reponse = MsgBox("Autoriser à visualiser ?", vbYesNo + vbQuestion) If reponse = vbYes Then Range("K36").Value = "x" Else Range("K36").Value = "" End If End If End If End Sub
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour Transitoire, Patrick,
Merci de me venir en aide
Oui, j'ai Option Explicit
Est-ce que je met bien le code ou il faut ? Car rien ne se passe, que je mette x ou rien en D25....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.Intersect(Target, Range("B10:C12")) Is Nothing Then Application.EnableEvents = False If Application.WorksheetFunction.CountBlank(Range("B10:C12")) < 3 Then MsgBox "Vous devez inscrire au moins 3 utilisateurs avec leur mot de passe" End If 'Insertion du code communiqué Dim reponse As Boolean If Target.Address = "$D$25" Then If LCase(Target.Value) = "x" Then Range("K36").Value = "x" Else reponse = MsgBox("Autoriser à visualiser ?", vbYesNo + vbQuestion) If reponse = vbYes Then Range("K36").Value = "x" Else Range("K36").Value = "" End If End If End If Application.EnableEvents = True End If End Sub
vu comme tu disable les events j'ai l'impression que tu ne l'a pas reactivé
mais par dessus tout je coprends pas pourquoi tu veux deaciter les events tu peux faire ton traitement b10;C12 et ton d25 dans un if else tout simplement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Private Sub Worksheet_Change(ByVal Target As Range) Dim reponse As Boolean, inter Application.EnableEvents = True ' je le remet au cas ou tu l'aurais inhibé voir fermer ton fichier et le réouvrir Set inter = Application.Intersect(Target, Range("B10:C12")) If Not inter Is Nothing Then If Application.WorksheetFunction.CountBlank(Range("B10:C12")) < 3 Then MsgBox "Vous devez inscrire au moins 3 utilisateurs avec leur mot de passe" End If Else 'Insertion du code communiqué If Target.Address = "$D$25" Then If LCase(Target.Value) = "x" Then Range("K36").Value = "x" Else reponse = MsgBox("Autoriser à visualiser ?", vbYesNo + vbQuestion) If reponse = vbYes Then Range("K36").Value = "x" Else Range("K36").Value = "" End If End If End If End If End Sub
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Salut
Sous VBA, ce code ne doit pas être placé dans un module mais directement dans le code de la feuille. Tu dois double-cliquer sur la feuille. Voici un screenshot qui montre où se trouve les feuilles sous VBA, ici il n'y a qu'une feuille nommée Feuil1.
++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et SeulTutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Bonjour, Le problème est que vous ne prenez pas le temps d'expliquer les tenants et aboutissants! J'ai l'impression que vous avez une erreur de conception. Sur mon Mac ça fonctionne, mais il y a des choses étranges? Il n'y a un évenement que si on modifie une cellule de B10:C12. la ça prend en compte la valeur de D25 pour incrémenter K36 de la même valeur ou la laisser (""). Je ne pense pas que ce soit cela vos désirs?
Cordialement![]()
Bonjour à vous
Je vous remercie notamment Transitoire : Il n'y a un évenement que si on modifie une cellule de B10:C12
Mon problème était bien là.
Bon Week-end à vous
Partager