Bonjour,
j'utilise une barre d'outils personnalisée.
dans cette BO, il y a un bouton pour lequel l'action permet l'affichage
d'onglets précis. (macro en fin de post).
Je voudrais rajouter, à cette macro :
- un message avec un choix : "voulez-vous le modèle simplifié, le modèle
complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste,
pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de
ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou
s'il faut un Userform)
- en fonction du choix :
1/ je dois alimenter des cellules d'une valeur texte
* si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et
l'onglet "80_31s" portera la valeur "Utilisé",
* si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et
l'onglet "80_31s" portera la valeur "NA",
* si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la
valeur "NA" en A4.
2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que
l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une
variable "i" par exemple, qui sera alimentée par le choix fait juste avant ??
si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien
du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux
comprendre ce que je souhaiterais faire.
MERCI.
Yann
---
Sub CYCLE80()
Dim F As Worksheet
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect 'déprotection du classeur
For Each F In ActiveWorkbook.Worksheets
Select Case F.Name
Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _
"80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43",
"80_44"
F.Visible = True
F.Protect , AllowFormattingRows:=True
Case Else
F.Visible = False
' F.Unprotect
End Select
Next
Sheets("80").Select
With Sheets("DA")
If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else
If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else
If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else
End With
ActiveWorkbook.Protect Structure:=True
End Sub
----
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour Sunburn,
Tu peux utiliser un code comme ceci :
'----------------------------------------------- Sub Choix() Dim X As Variant Do X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _ & vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _ "2 - Le modèle complet." & vbCrLf & _ "3 - Pas de tableau." & vbCrLf & _ "Inscrivez le numéro correspondant à votre choix.", Type:=1) If X = False Then MsgBox "Opération annulée.": Exit Sub If X < 1 Or X > 3 Then If MsgBox("Votre choix contient une erreur." & vbCrLf & _ "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ "Attention") = vbYes Then MsgBox "Opération annulée." Exit Do End If End If Select Case X Case 1 ' Le modèle simplifié 'le code à exécuter si cette option est choisie Case 2 'Le modèle complet 'le code à exécuter si cette option est choisie Case 3 'Pas de tableau 'le code à exécuter si cette option est choisie End Select Loop Until X = 1 Or X = 2 Or X = 3 End Sub '-----------------------------------------------
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'utilise une barre d'outils personnalisée. dans cette BO, il y a un bouton pour lequel l'action permet l'affichage d'onglets précis. (macro en fin de post). Je voudrais rajouter, à cette macro : - un message avec un choix : "voulez-vous le modèle simplifié, le modèle complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste, pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou s'il faut un Userform) - en fonction du choix : 1/ je dois alimenter des cellules d'une valeur texte * si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et l'onglet "80_31s" portera la valeur "Utilisé", * si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et l'onglet "80_31s" portera la valeur "NA", * si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la valeur "NA" en A4. 2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une variable "i" par exemple, qui sera alimentée par le choix fait juste avant ?? si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux comprendre ce que je souhaiterais faire.
MERCI. Yann --- Sub CYCLE80() Dim F As Worksheet Application.ScreenUpdating = False ActiveWorkbook.Unprotect 'déprotection du classeur For Each F In ActiveWorkbook.Worksheets Select Case F.Name Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _ "80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43", "80_44" F.Visible = True F.Protect , AllowFormattingRows:=True Case Else F.Visible = False ' F.Unprotect End Select Next Sheets("80").Select With Sheets("DA") If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else End With ActiveWorkbook.Protect Structure:=True End Sub ----
Bonjour Sunburn,
Tu peux utiliser un code comme ceci :
'-----------------------------------------------
Sub Choix()
Dim X As Variant
Do
X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _
& vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _
"2 - Le modèle complet." & vbCrLf & _
"3 - Pas de tableau." & vbCrLf & _
"Inscrivez le numéro correspondant à votre choix.", Type:=1)
If X = False Then MsgBox "Opération annulée.": Exit Sub
If X < 1 Or X > 3 Then
If MsgBox("Votre choix contient une erreur." & vbCrLf & _
"Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _
"Attention") = vbYes Then
MsgBox "Opération annulée."
Exit Do
End If
End If
Select Case X
Case 1 ' Le modèle simplifié
'le code à exécuter si cette option est choisie
Case 2 'Le modèle complet
'le code à exécuter si cette option est choisie
Case 3 'Pas de tableau
'le code à exécuter si cette option est choisie
End Select
Loop Until X = 1 Or X = 2 Or X = 3
End Sub
'-----------------------------------------------
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 5C09DE74-2FA4-4948-B029-E844A4F2F254@microsoft.com...
Bonjour,
j'utilise une barre d'outils personnalisée.
dans cette BO, il y a un bouton pour lequel l'action permet l'affichage
d'onglets précis. (macro en fin de post).
Je voudrais rajouter, à cette macro :
- un message avec un choix : "voulez-vous le modèle simplifié, le modèle
complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste,
pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de
ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou
s'il faut un Userform)
- en fonction du choix :
1/ je dois alimenter des cellules d'une valeur texte
* si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et
l'onglet "80_31s" portera la valeur "Utilisé",
* si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et
l'onglet "80_31s" portera la valeur "NA",
* si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la
valeur "NA" en A4.
2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que
l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une
variable "i" par exemple, qui sera alimentée par le choix fait juste avant ??
si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien
du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux
comprendre ce que je souhaiterais faire.
MERCI.
Yann
---
Sub CYCLE80()
Dim F As Worksheet
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect 'déprotection du classeur
For Each F In ActiveWorkbook.Worksheets
Select Case F.Name
Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _
"80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43",
"80_44"
F.Visible = True
F.Protect , AllowFormattingRows:=True
Case Else
F.Visible = False
' F.Unprotect
End Select
Next
Sheets("80").Select
With Sheets("DA")
If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else
If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else
If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else
End With
ActiveWorkbook.Protect Structure:=True
End Sub
----
'----------------------------------------------- Sub Choix() Dim X As Variant Do X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _ & vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _ "2 - Le modèle complet." & vbCrLf & _ "3 - Pas de tableau." & vbCrLf & _ "Inscrivez le numéro correspondant à votre choix.", Type:=1) If X = False Then MsgBox "Opération annulée.": Exit Sub If X < 1 Or X > 3 Then If MsgBox("Votre choix contient une erreur." & vbCrLf & _ "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ "Attention") = vbYes Then MsgBox "Opération annulée." Exit Do End If End If Select Case X Case 1 ' Le modèle simplifié 'le code à exécuter si cette option est choisie Case 2 'Le modèle complet 'le code à exécuter si cette option est choisie Case 3 'Pas de tableau 'le code à exécuter si cette option est choisie End Select Loop Until X = 1 Or X = 2 Or X = 3 End Sub '-----------------------------------------------
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'utilise une barre d'outils personnalisée. dans cette BO, il y a un bouton pour lequel l'action permet l'affichage d'onglets précis. (macro en fin de post). Je voudrais rajouter, à cette macro : - un message avec un choix : "voulez-vous le modèle simplifié, le modèle complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste, pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou s'il faut un Userform) - en fonction du choix : 1/ je dois alimenter des cellules d'une valeur texte * si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et l'onglet "80_31s" portera la valeur "Utilisé", * si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et l'onglet "80_31s" portera la valeur "NA", * si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la valeur "NA" en A4. 2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une variable "i" par exemple, qui sera alimentée par le choix fait juste avant ?? si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux comprendre ce que je souhaiterais faire.
MERCI. Yann --- Sub CYCLE80() Dim F As Worksheet Application.ScreenUpdating = False ActiveWorkbook.Unprotect 'déprotection du classeur For Each F In ActiveWorkbook.Worksheets Select Case F.Name Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _ "80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43", "80_44" F.Visible = True F.Protect , AllowFormattingRows:=True Case Else F.Visible = False ' F.Unprotect End Select Next Sheets("80").Select With Sheets("DA") If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else End With ActiveWorkbook.Protect Structure:=True End Sub ----
MichDenis
Il y a une petite coquille dans le code proposé :
| If MsgBox("Votre choix contient une erreur." & vbCrLf & _ | "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ | "Attention") = vbYes Then
au lieu de vbyes , ce devrait être : vbNo
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Sunburn,
Tu peux utiliser un code comme ceci :
'----------------------------------------------- Sub Choix() Dim X As Variant Do X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _ & vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _ "2 - Le modèle complet." & vbCrLf & _ "3 - Pas de tableau." & vbCrLf & _ "Inscrivez le numéro correspondant à votre choix.", Type:=1) If X = False Then MsgBox "Opération annulée.": Exit Sub If X < 1 Or X > 3 Then If MsgBox("Votre choix contient une erreur." & vbCrLf & _ "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ "Attention") = vbYes Then MsgBox "Opération annulée." Exit Do End If End If Select Case X Case 1 ' Le modèle simplifié 'le code à exécuter si cette option est choisie Case 2 'Le modèle complet 'le code à exécuter si cette option est choisie Case 3 'Pas de tableau 'le code à exécuter si cette option est choisie End Select Loop Until X = 1 Or X = 2 Or X = 3 End Sub '-----------------------------------------------
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'utilise une barre d'outils personnalisée. dans cette BO, il y a un bouton pour lequel l'action permet l'affichage d'onglets précis. (macro en fin de post). Je voudrais rajouter, à cette macro : - un message avec un choix : "voulez-vous le modèle simplifié, le modèle complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste, pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou s'il faut un Userform) - en fonction du choix : 1/ je dois alimenter des cellules d'une valeur texte * si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et l'onglet "80_31s" portera la valeur "Utilisé", * si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et l'onglet "80_31s" portera la valeur "NA", * si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la valeur "NA" en A4. 2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une variable "i" par exemple, qui sera alimentée par le choix fait juste avant ?? si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux comprendre ce que je souhaiterais faire.
MERCI. Yann --- Sub CYCLE80() Dim F As Worksheet Application.ScreenUpdating = False ActiveWorkbook.Unprotect 'déprotection du classeur For Each F In ActiveWorkbook.Worksheets Select Case F.Name Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _ "80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43", "80_44" F.Visible = True F.Protect , AllowFormattingRows:=True Case Else F.Visible = False ' F.Unprotect End Select Next Sheets("80").Select With Sheets("DA") If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else End With ActiveWorkbook.Protect Structure:=True End Sub ----
Il y a une petite coquille dans le code proposé :
| If MsgBox("Votre choix contient une erreur." & vbCrLf & _
| "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _
| "Attention") = vbYes Then
au lieu de vbyes , ce devrait être : vbNo
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de discussion :
eVkmI1uCKHA.3800@TK2MSFTNGP04.phx.gbl...
Bonjour Sunburn,
Tu peux utiliser un code comme ceci :
'-----------------------------------------------
Sub Choix()
Dim X As Variant
Do
X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _
& vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _
"2 - Le modèle complet." & vbCrLf & _
"3 - Pas de tableau." & vbCrLf & _
"Inscrivez le numéro correspondant à votre choix.", Type:=1)
If X = False Then MsgBox "Opération annulée.": Exit Sub
If X < 1 Or X > 3 Then
If MsgBox("Votre choix contient une erreur." & vbCrLf & _
"Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _
"Attention") = vbYes Then
MsgBox "Opération annulée."
Exit Do
End If
End If
Select Case X
Case 1 ' Le modèle simplifié
'le code à exécuter si cette option est choisie
Case 2 'Le modèle complet
'le code à exécuter si cette option est choisie
Case 3 'Pas de tableau
'le code à exécuter si cette option est choisie
End Select
Loop Until X = 1 Or X = 2 Or X = 3
End Sub
'-----------------------------------------------
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 5C09DE74-2FA4-4948-B029-E844A4F2F254@microsoft.com...
Bonjour,
j'utilise une barre d'outils personnalisée.
dans cette BO, il y a un bouton pour lequel l'action permet l'affichage
d'onglets précis. (macro en fin de post).
Je voudrais rajouter, à cette macro :
- un message avec un choix : "voulez-vous le modèle simplifié, le modèle
complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste,
pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de
ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou
s'il faut un Userform)
- en fonction du choix :
1/ je dois alimenter des cellules d'une valeur texte
* si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et
l'onglet "80_31s" portera la valeur "Utilisé",
* si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et
l'onglet "80_31s" portera la valeur "NA",
* si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la
valeur "NA" en A4.
2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que
l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une
variable "i" par exemple, qui sera alimentée par le choix fait juste avant ??
si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien
du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux
comprendre ce que je souhaiterais faire.
MERCI.
Yann
---
Sub CYCLE80()
Dim F As Worksheet
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect 'déprotection du classeur
For Each F In ActiveWorkbook.Worksheets
Select Case F.Name
Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _
"80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43",
"80_44"
F.Visible = True
F.Protect , AllowFormattingRows:=True
Case Else
F.Visible = False
' F.Unprotect
End Select
Next
Sheets("80").Select
With Sheets("DA")
If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else
If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else
If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else
End With
ActiveWorkbook.Protect Structure:=True
End Sub
----
| If MsgBox("Votre choix contient une erreur." & vbCrLf & _ | "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ | "Attention") = vbYes Then
au lieu de vbyes , ce devrait être : vbNo
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Sunburn,
Tu peux utiliser un code comme ceci :
'----------------------------------------------- Sub Choix() Dim X As Variant Do X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _ & vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _ "2 - Le modèle complet." & vbCrLf & _ "3 - Pas de tableau." & vbCrLf & _ "Inscrivez le numéro correspondant à votre choix.", Type:=1) If X = False Then MsgBox "Opération annulée.": Exit Sub If X < 1 Or X > 3 Then If MsgBox("Votre choix contient une erreur." & vbCrLf & _ "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ "Attention") = vbYes Then MsgBox "Opération annulée." Exit Do End If End If Select Case X Case 1 ' Le modèle simplifié 'le code à exécuter si cette option est choisie Case 2 'Le modèle complet 'le code à exécuter si cette option est choisie Case 3 'Pas de tableau 'le code à exécuter si cette option est choisie End Select Loop Until X = 1 Or X = 2 Or X = 3 End Sub '-----------------------------------------------
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'utilise une barre d'outils personnalisée. dans cette BO, il y a un bouton pour lequel l'action permet l'affichage d'onglets précis. (macro en fin de post). Je voudrais rajouter, à cette macro : - un message avec un choix : "voulez-vous le modèle simplifié, le modèle complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste, pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou s'il faut un Userform) - en fonction du choix : 1/ je dois alimenter des cellules d'une valeur texte * si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et l'onglet "80_31s" portera la valeur "Utilisé", * si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et l'onglet "80_31s" portera la valeur "NA", * si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la valeur "NA" en A4. 2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une variable "i" par exemple, qui sera alimentée par le choix fait juste avant ?? si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux comprendre ce que je souhaiterais faire.
MERCI. Yann --- Sub CYCLE80() Dim F As Worksheet Application.ScreenUpdating = False ActiveWorkbook.Unprotect 'déprotection du classeur For Each F In ActiveWorkbook.Worksheets Select Case F.Name Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _ "80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43", "80_44" F.Visible = True F.Protect , AllowFormattingRows:=True Case Else F.Visible = False ' F.Unprotect End Select Next Sheets("80").Select With Sheets("DA") If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else End With ActiveWorkbook.Protect Structure:=True End Sub ----
sunburn
Re, Merci Michel, tout fonctionne nikel, j'adapte à mon code, ça me va impec. Merci encore. YANN
"MichDenis" wrote:
Il y a une petite coquille dans le code proposé :
| If MsgBox("Votre choix contient une erreur." & vbCrLf & _ | "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ | "Attention") = vbYes Then
au lieu de vbyes , ce devrait être : vbNo
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Sunburn,
Tu peux utiliser un code comme ceci :
'----------------------------------------------- Sub Choix() Dim X As Variant Do X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _ & vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _ "2 - Le modèle complet." & vbCrLf & _ "3 - Pas de tableau." & vbCrLf & _ "Inscrivez le numéro correspondant à votre choix.", Type:=1) If X = False Then MsgBox "Opération annulée.": Exit Sub If X < 1 Or X > 3 Then If MsgBox("Votre choix contient une erreur." & vbCrLf & _ "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ "Attention") = vbYes Then MsgBox "Opération annulée." Exit Do End If End If Select Case X Case 1 ' Le modèle simplifié 'le code à exécuter si cette option est choisie Case 2 'Le modèle complet 'le code à exécuter si cette option est choisie Case 3 'Pas de tableau 'le code à exécuter si cette option est choisie End Select Loop Until X = 1 Or X = 2 Or X = 3 End Sub '-----------------------------------------------
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'utilise une barre d'outils personnalisée. dans cette BO, il y a un bouton pour lequel l'action permet l'affichage d'onglets précis. (macro en fin de post). Je voudrais rajouter, à cette macro : - un message avec un choix : "voulez-vous le modèle simplifié, le modèle complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste, pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou s'il faut un Userform) - en fonction du choix : 1/ je dois alimenter des cellules d'une valeur texte * si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et l'onglet "80_31s" portera la valeur "Utilisé", * si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et l'onglet "80_31s" portera la valeur "NA", * si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la valeur "NA" en A4. 2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une variable "i" par exemple, qui sera alimentée par le choix fait juste avant ?? si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux comprendre ce que je souhaiterais faire.
MERCI. Yann --- Sub CYCLE80() Dim F As Worksheet Application.ScreenUpdating = False ActiveWorkbook.Unprotect 'déprotection du classeur For Each F In ActiveWorkbook.Worksheets Select Case F.Name Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _ "80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43", "80_44" F.Visible = True F.Protect , AllowFormattingRows:=True Case Else F.Visible = False ' F.Unprotect End Select Next Sheets("80").Select With Sheets("DA") If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else End With ActiveWorkbook.Protect Structure:=True End Sub ----
Re,
Merci Michel, tout fonctionne nikel, j'adapte à mon code, ça me va impec.
Merci encore.
YANN
"MichDenis" wrote:
Il y a une petite coquille dans le code proposé :
| If MsgBox("Votre choix contient une erreur." & vbCrLf & _
| "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _
| "Attention") = vbYes Then
au lieu de vbyes , ce devrait être : vbNo
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de discussion :
eVkmI1uCKHA.3800@TK2MSFTNGP04.phx.gbl...
Bonjour Sunburn,
Tu peux utiliser un code comme ceci :
'-----------------------------------------------
Sub Choix()
Dim X As Variant
Do
X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _
& vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _
"2 - Le modèle complet." & vbCrLf & _
"3 - Pas de tableau." & vbCrLf & _
"Inscrivez le numéro correspondant à votre choix.", Type:=1)
If X = False Then MsgBox "Opération annulée.": Exit Sub
If X < 1 Or X > 3 Then
If MsgBox("Votre choix contient une erreur." & vbCrLf & _
"Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _
"Attention") = vbYes Then
MsgBox "Opération annulée."
Exit Do
End If
End If
Select Case X
Case 1 ' Le modèle simplifié
'le code à exécuter si cette option est choisie
Case 2 'Le modèle complet
'le code à exécuter si cette option est choisie
Case 3 'Pas de tableau
'le code à exécuter si cette option est choisie
End Select
Loop Until X = 1 Or X = 2 Or X = 3
End Sub
'-----------------------------------------------
"sunburn" <sunburn@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 5C09DE74-2FA4-4948-B029-E844A4F2F254@microsoft.com...
Bonjour,
j'utilise une barre d'outils personnalisée.
dans cette BO, il y a un bouton pour lequel l'action permet l'affichage
d'onglets précis. (macro en fin de post).
Je voudrais rajouter, à cette macro :
- un message avec un choix : "voulez-vous le modèle simplifié, le modèle
complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste,
pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de
ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou
s'il faut un Userform)
- en fonction du choix :
1/ je dois alimenter des cellules d'une valeur texte
* si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et
l'onglet "80_31s" portera la valeur "Utilisé",
* si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et
l'onglet "80_31s" portera la valeur "NA",
* si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la
valeur "NA" en A4.
2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que
l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une
variable "i" par exemple, qui sera alimentée par le choix fait juste avant ??
si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien
du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux
comprendre ce que je souhaiterais faire.
MERCI.
Yann
---
Sub CYCLE80()
Dim F As Worksheet
Application.ScreenUpdating = False
ActiveWorkbook.Unprotect 'déprotection du classeur
For Each F In ActiveWorkbook.Worksheets
Select Case F.Name
Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _
"80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43",
"80_44"
F.Visible = True
F.Protect , AllowFormattingRows:=True
Case Else
F.Visible = False
' F.Unprotect
End Select
Next
Sheets("80").Select
With Sheets("DA")
If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else
If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else
If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else
End With
ActiveWorkbook.Protect Structure:=True
End Sub
----
Re, Merci Michel, tout fonctionne nikel, j'adapte à mon code, ça me va impec. Merci encore. YANN
"MichDenis" wrote:
Il y a une petite coquille dans le code proposé :
| If MsgBox("Votre choix contient une erreur." & vbCrLf & _ | "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ | "Attention") = vbYes Then
au lieu de vbyes , ce devrait être : vbNo
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Sunburn,
Tu peux utiliser un code comme ceci :
'----------------------------------------------- Sub Choix() Dim X As Variant Do X = Application.InputBox("Faites un choix parmi ces 3 alternatives." _ & vbCrLf & "1 - Le modèle simplifié" & vbCrLf & _ "2 - Le modèle complet." & vbCrLf & _ "3 - Pas de tableau." & vbCrLf & _ "Inscrivez le numéro correspondant à votre choix.", Type:=1) If X = False Then MsgBox "Opération annulée.": Exit Sub If X < 1 Or X > 3 Then If MsgBox("Votre choix contient une erreur." & vbCrLf & _ "Désirez-vous reprendre la saisie?", vbCritical + vbYesNo, _ "Attention") = vbYes Then MsgBox "Opération annulée." Exit Do End If End If Select Case X Case 1 ' Le modèle simplifié 'le code à exécuter si cette option est choisie Case 2 'Le modèle complet 'le code à exécuter si cette option est choisie Case 3 'Pas de tableau 'le code à exécuter si cette option est choisie End Select Loop Until X = 1 Or X = 2 Or X = 3 End Sub '-----------------------------------------------
"sunburn" a écrit dans le message de groupe de discussion : Bonjour, j'utilise une barre d'outils personnalisée. dans cette BO, il y a un bouton pour lequel l'action permet l'affichage d'onglets précis. (macro en fin de post). Je voudrais rajouter, à cette macro : - un message avec un choix : "voulez-vous le modèle simplifié, le modèle complet ou bien pas de tableau ?" au niveau du choix, case à cocher ou liste, pas de préférence, mais en tout cas un bouton OK, uniquement, pas possible de ne pas choisir. ->> (Donc là, je ne sais pas si je peux faire une Msgbox ou s'il faut un Userform) - en fonction du choix : 1/ je dois alimenter des cellules d'une valeur texte * si simplifié, alors l'onglet "80-31" portera la valeur "NA" en A4 et l'onglet "80_31s" portera la valeur "Utilisé", * si complet alors l'onglet "80-31" portera la valeur "Utilisé" en A4 et l'onglet "80_31s" portera la valeur "NA", * si pas de tableau, alors les 2 onglets "80_31" et "80_31s" auront la valeur "NA" en A4. 2/ l'onglet qui sera visible changera. en effet, ci-après, on voit que l'onglet "80_31" est dans la sélection des visibles. Peut-on mettre une variable "i" par exemple, qui sera alimentée par le choix fait juste avant ?? si complet, alors "i" = "80_31", si simplifié alors "i" = "80_31s", si rien du tout, alors "i" = ""
je vous remercie de votre aide, et voici ma macro actuelle afin de mieux comprendre ce que je souhaiterais faire.
MERCI. Yann --- Sub CYCLE80() Dim F As Worksheet Application.ScreenUpdating = False ActiveWorkbook.Unprotect 'déprotection du classeur For Each F In ActiveWorkbook.Worksheets Select Case F.Name Case "DA", "GA10", "GA11", "GA12", "GA13", "GA14", _ "80", "80_20", "80_31", "80_32", "80_33", "80_41", "80_42", "80_43", "80_44" F.Visible = True F.Protect , AllowFormattingRows:=True Case Else F.Visible = False ' F.Unprotect End Select Next Sheets("80").Select With Sheets("DA") If .[g40] = "IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "BA IR" Then Sheets("80_11").Visible = True: Exit Sub Else If .[g40] = "IS" Then Sheets("80_21").Visible = True: Exit Sub Else End With ActiveWorkbook.Protect Structure:=True End Sub ----