[VBA] Else sans If ???

Le
XLnoob
Bonjour,

débutant sous VBA, j'ai créé une petite macro pour vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle
Merci par avance pour l'aide que vous pourrez m'apporter,



Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Elliac
Le #4326301
Bonjour,

Le problème vient plutôt des For Each sans Next

Camille

"XLnoob" wrote:

Bonjour,

débutant sous VBA, j'ai créé une petite macro pour vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle...
Merci par avance pour l'aide que vous pourrez m'apporter,


------------------------------------
Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub



Phil
Le #4326291
Bjr
message d'erreur ambigu..
En fait pour chaque for, il fau un next...

For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"
Next WS

"XLnoob"
Bonjour,

débutant sous VBA, j'ai créé une petite macro pour
vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle...
Merci par avance pour l'aide que vous pourrez m'apporter,


------------------------------------
Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub



Jacky
Le #4326261
Bonjour,
Un peu simplifié......
'----------
Sub jj()
Dim Code As String
Dim WS As Worksheet
Code = InputBox("Code?", "Entrer le code", "Texte par défaut", 100, 100)
Application.ScreenUpdating = False
For Each WS In ActiveWorkbook.Worksheets
If UCase(Code) = "OUVRIR" Then WS.Unprotect Password:="blablabla"
If UCase(Code) = "FERMER" Then WS.Protect Password:="blablabla"
Next
End Sub
'-------------

--
Salutations
JJ


"MichDenis"
Quand tu emploies "For", il ne faut pas oublier de fermer la boucle avec
"Next.


Sub test()
Dim Code As String
Code = InputBox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect Password:="blablabla"
Next

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect Password:="blablabla"
Next

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub





"XLnoob" news:

Bonjour,

débutant sous VBA, j'ai créé une petite macro pour
vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle...
Merci par avance pour l'aide que vous pourrez m'apporter,


------------------------------------
Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub




XLnoob
Le #4326211
Vu le nombre de (bonnes) réponses je crois qu'il va falloir developper la
photo finish pour déterminer le vainqueur!

En tout cas MERCI à tous!
...
Le débogueur qui bug, j'avais pas pensé à ca!




Bonjour,
Un peu simplifié......
'----------
Sub jj()
Dim Code As String
Dim WS As Worksheet
Code = InputBox("Code?", "Entrer le code", "Texte par défaut", 100, 100)
Application.ScreenUpdating = False
For Each WS In ActiveWorkbook.Worksheets
If UCase(Code) = "OUVRIR" Then WS.Unprotect Password:="blablabla"
If UCase(Code) = "FERMER" Then WS.Protect Password:="blablabla"
Next
End Sub
'-------------

--
Salutations
JJ


"MichDenis"
Quand tu emploies "For", il ne faut pas oublier de fermer la boucle avec
"Next.


Sub test()
Dim Code As String
Code = InputBox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect Password:="blablabla"
Next

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect Password:="blablabla"
Next

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub





"XLnoob" news:

Bonjour,

débutant sous VBA, j'ai créé une petite macro pour
vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle...
Merci par avance pour l'aide que vous pourrez m'apporter,


------------------------------------
Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub









isabelle
Le #4326141
bonjour XLnoob,

c'est Next qui manque à la macro pour compléter le For

isabelle

Bonjour,

débutant sous VBA, j'ai créé une petite macro pour vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle...
Merci par avance pour l'aide que vous pourrez m'apporter,


------------------------------------
Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub



MichDenis
Le #4326121
Quand tu emploies "For", il ne faut pas oublier de fermer la boucle avec "Next.


Sub test()
Dim Code As String
Code = InputBox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect Password:="blablabla"
Next

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect Password:="blablabla"
Next

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub





"XLnoob"
Bonjour,

débutant sous VBA, j'ai créé une petite macro pour vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle...
Merci par avance pour l'aide que vous pourrez m'apporter,


------------------------------------
Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub
isabelle
Le #4325931
salut Denis,

on est parti pour arriver bon 2ème pour les prochaines 3 semaines ;-)

Difference time : UTC/GMT -05:00 inc. summer time : +01:00
Daylight Saving Time :
From : 03/11/2007 02:00 (+01:00)
To : 11/04/2007 02:00 (-01:00)

it's summer time now !

isabelle

Quand tu emploies "For", il ne faut pas oublier de fermer la boucle avec "Next.


Sub test()
Dim Code As String
Code = InputBox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect Password:="blablabla"
Next

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect Password:="blablabla"
Next

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub





"XLnoob"
Bonjour,

débutant sous VBA, j'ai créé une petite macro pour vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle...
Merci par avance pour l'aide que vous pourrez m'apporter,


------------------------------------
Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub




MichDenis
Le #4249381
Bonjour Isabelle,

Je veux bien arriver deuxième si cela me permet de vor plus clair ... plus tard !
;-)

oui, oui, l'été s'en vient !

Salutations


"isabelle" a écrit dans le message de news: %
salut Denis,

on est parti pour arriver bon 2ème pour les prochaines 3 semaines ;-)

Difference time : UTC/GMT -05:00 inc. summer time : +01:00
Daylight Saving Time :
From : 03/11/2007 02:00 (+01:00)
To : 11/04/2007 02:00 (-01:00)

it's summer time now !

isabelle

Quand tu emploies "For", il ne faut pas oublier de fermer la boucle avec "Next.


Sub test()
Dim Code As String
Code = InputBox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect Password:="blablabla"
Next

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect Password:="blablabla"
Next

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub





"XLnoob"
Bonjour,

débutant sous VBA, j'ai créé une petite macro pour vérrouiller/déverrouiller
toutes mes feuilles en une seule fois via une InputBox, mais j'obtiens un
message "erreur de compilation: Else sans If".

Je pense pourtant avoir respecté la syntaxe conditionnelle...
Merci par avance pour l'aide que vous pourrez m'apporter,


------------------------------------
Dim Code As String
Code = Inputbox("Code?", "Entrer le code", "Texte par défaut", 100, 100)

Dim WS As Worksheet
Application.ScreenUpdating = False


If Code = "Ouvrir" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Unprotect password:="blablabla"

ElseIf Code = "Fermer" Then
For Each WS In ActiveWorkbook.Worksheets
WS.Protect password:="blablabla"

Else: Exit Sub

End If

Application.ScreenUpdating = True
End Sub




Publicité
Poster une réponse
Anonyme