OVH Cloud OVH Cloud

protection et vba

5 réponses
Avatar
srogeau
bonjour

dans le code ci dessous le classeur s'ouvre apres avoir trouver le mot
"bonjour"dans la plage de cellule a1:a50 ,je voudrais qu'il s'ouvre apres s'il
trouve au moins 1 des trois mots suivant (qui sont par exemple "bonjour",ou
salut ou au revoir comment modifier le code ci dessous pour executer cette
action
merci
Private Sub Workbook_Open()
Dim r As Range
On Error Resume Next
Set r = Worksheets("noms").Range("A1:A50").Find("Bonjour")

'// pas de Bonjour donc good bye
If r Is Nothing Then thisWorkbook.close
End Sub

5 réponses

Avatar
Philippe.R
Bonsoir,
Comme ceci ?

Private Sub Workbook_Open()
Dim r As Range
On Error Resume Next
Set r1 = Worksheets("noms").Range("A1:A50").Find("Bonjour")
Set r2 = Worksheets("noms").Range("A1:A50").Find("salut")
Set r3 = Worksheets("noms").Range("A1:A50").Find("au revoir")
'// pas de Bonjour donc good bye
If r1 Is Nothing Then thisWorkbook.close
If r2 Is Nothing Then thisWorkbook.close
If r3 Is Nothing Then thisWorkbook.close
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Srogeau" a écrit dans le message de
news:
bonjour

dans le code ci dessous le classeur s'ouvre apres avoir trouver le mot
"bonjour"dans la plage de cellule a1:a50 ,je voudrais qu'il s'ouvre apres s'il
trouve au moins 1 des trois mots suivant (qui sont par exemple "bonjour",ou
salut ou au revoir comment modifier le code ci dessous pour executer cette
action
merci
Private Sub Workbook_Open()
Dim r As Range
On Error Resume Next
Set r = Worksheets("noms").Range("A1:A50").Find("Bonjour")

'// pas de Bonjour donc good bye
If r Is Nothing Then thisWorkbook.close
End Sub



Avatar
Michel Gaboly
Bonsoir,

A priori, comme cela (pas testé)

Private Sub Workbook_Open()
Dim r As Range, s as Range, t as Range
On Error Resume Next
Set r = Worksheets("noms").Range("A1:A50").Find("Bonjour")
Set s = Worksheets("noms").Range("A1:A50").Find("Salut")
Set t = Worksheets("noms").Range("A1:A50").Find("Au revoir")

'// Aucun des 3 mots, donc good bye
If r Is Nothing And s is Nothing And t is NothingThen ThisWorkbook.Close
End Sub


bonjour

dans le code ci dessous le classeur s'ouvre apres avoir trouver le mot
"bonjour"dans la plage de cellule a1:a50 ,je voudrais qu'il s'ouvre apres s'il
trouve au moins 1 des trois mots suivant (qui sont par exemple "bonjour",ou
salut ou au revoir comment modifier le code ci dessous pour executer cette
action
merci
Private Sub Workbook_Open()
Dim r As Range
On Error Resume Next
Set r = Worksheets("noms").Range("A1:A50").Find("Bonjour")

'// pas de Bonjour donc good bye
If r Is Nothing Then thisWorkbook.close
End Sub


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Michel Gaboly
Bonsoir,

Elle est sévère ta protection ;-)))

Srogeau accepte d'ouvrir le classeur si au moins l'une des
3 expressions est présente. Avec ton code, il faut que les 3
soient présentes, puisque tu fermes dès que l'une d'elles
n'est pas trouvée ;-))



Bonsoir,
Comme ceci ?

Private Sub Workbook_Open()
Dim r As Range
On Error Resume Next
Set r1 = Worksheets("noms").Range("A1:A50").Find("Bonjour")
Set r2 = Worksheets("noms").Range("A1:A50").Find("salut")
Set r3 = Worksheets("noms").Range("A1:A50").Find("au revoir")
'// pas de Bonjour donc good bye
If r1 Is Nothing Then thisWorkbook.close
If r2 Is Nothing Then thisWorkbook.close
If r3 Is Nothing Then thisWorkbook.close
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Srogeau" a écrit dans le message de
news:
bonjour

dans le code ci dessous le classeur s'ouvre apres avoir trouver le mot
"bonjour"dans la plage de cellule a1:a50 ,je voudrais qu'il s'ouvre apres s'il
trouve au moins 1 des trois mots suivant (qui sont par exemple "bonjour",ou
salut ou au revoir comment modifier le code ci dessous pour executer cette
action
merci
Private Sub Workbook_Open()
Dim r As Range
On Error Resume Next
Set r = Worksheets("noms").Range("A1:A50").Find("Bonjour")

'// pas de Bonjour donc good bye
If r Is Nothing Then thisWorkbook.close
End Sub




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
AV
Autre...

Private Sub Workbook_Open()
If [sum(countif(Noms!A1:A50,{"Bonjour";"Salut";"Au revoir"}))] = 0 Then
ThisWorkbook.Close
End Sub

AV
Avatar
Philippe.R
Bonjour Michel,
Il était temps que je me couche, j'aurai fini par suggérer des âneries.
;o))
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Michel Gaboly" a écrit dans le message de
news:
Bonsoir,

Elle est sévère ta protection ;-)))

Srogeau accepte d'ouvrir le classeur si au moins l'une des
3 expressions est présente. Avec ton code, il faut que les 3
soient présentes, puisque tu fermes dès que l'une d'elles
n'est pas trouvée ;-))



Bonsoir,
Comme ceci ?

Private Sub Workbook_Open()
Dim r As Range
On Error Resume Next
Set r1 = Worksheets("noms").Range("A1:A50").Find("Bonjour")
Set r2 = Worksheets("noms").Range("A1:A50").Find("salut")
Set r3 = Worksheets("noms").Range("A1:A50").Find("au revoir")
'// pas de Bonjour donc good bye
If r1 Is Nothing Then thisWorkbook.close
If r2 Is Nothing Then thisWorkbook.close
If r3 Is Nothing Then thisWorkbook.close
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Srogeau" a écrit dans le message de
news:
bonjour

dans le code ci dessous le classeur s'ouvre apres avoir trouver le mot
"bonjour"dans la plage de cellule a1:a50 ,je voudrais qu'il s'ouvre apres s'il
trouve au moins 1 des trois mots suivant (qui sont par exemple "bonjour",ou
salut ou au revoir comment modifier le code ci dessous pour executer cette
action
merci
Private Sub Workbook_Open()
Dim r As Range
On Error Resume Next
Set r = Worksheets("noms").Range("A1:A50").Find("Bonjour")

'// pas de Bonjour donc good bye
If r Is Nothing Then thisWorkbook.close
End Sub




--
Cordialement,

Michel Gaboly
http://www.gaboly.com