Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Afficher un chiffre avec un point .

5 réponses
Avatar
Sunburn
Bonjour,
j'ai des onglets avec un nom du type "80.21" (c'est un point)
je veux faire un affichage de 4 onglets en fonction de choix dans une feuille.
Ma feuille "DA", sur lequel j'ai un choix (en G40) entre "IS", "IR" et "BA
IR", et un deuxième choix (en G41) entre "Simplifié" et "Normal".
en fonction de ces choix, je veux que mes pages s'affichent ou soient
invisibles:
IS et Simplifié, alors l'onglet "80.22" est affiché
IS et Normal, alors l'onglet "80.21" est affiché
IR et Simplifié, alors l'onglet "80.12" est affiché
IR et Normal, alors l'onglet "80.11" est affiché
BA IR et Simplifié, alors l'onglet "80.12" est affiché
BA IR et Normal, alors l'onglet "80.11" est affiché
et bien sur, à chaque fois, les 3 autres onglets sont invisible.

j'ai adapté un ancien code (en faisant une formule en N1, avec des SI, pour
afficher le bon oblet), mais le problème est que je n'arrive pas à saisir
80.11 par exemple, il met 80,11 et par conséquent, aucune page ne s'affiche.
Merci de votre aide.

voici mon code, dans ma page "DA":
----
Private Sub worksheet_change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("N1")) Is Nothing Then Exit Sub
Target.Value = UCase(CStr(Target.Value))
Application.ScreenUpdating = False
If Target.Address <> "$N$1" Then Exit Sub

If Target = "80.11" Then
Sheets("80.11").Visible = True
Sheets("80.12").Visible = False
Sheets("80.21").Visible = False
Sheets("80.22").Visible = False

ElseIf Target = "80.12" Then
Sheets("80.12").Visible = True
Sheets("80.11").Visible = False
Sheets("80.21").Visible = False
Sheets("80.22").Visible = False

ElseIf Target = "80.21" Then
Sheets("80.21").Visible = True
Sheets("80.11").Visible = False
Sheets("80.12").Visible = False
Sheets("80.22").Visible = False

ElseIf Target = "80.22" Then
Sheets("80.22").Visible = True
Sheets("80.11").Visible = False
Sheets("80.12").Visible = False
Sheets("80.21").Visible = False

Else
Sheets("80.11").Visible = False
Sheets("80.12").Visible = False
Sheets("80.21").Visible = False
Sheets("80.22").Visible = False
End If
End Sub
--------

5 réponses

Avatar
Modeste
Bonsour® Sunburn avec ferveur ;o))) vous nous disiez :


j'ai des onglets avec un nom du type "80.21" (c'est un point)
80.11 par exemple, il met 80,11 et par conséquent, aucune page ne
s'affiche.



Target.Value = Application.Substitute(UCase(CStr(Target.Value)),Chr(44),".")

--
--
@+
;o)))
Avatar
Sunburn
Désolé, mais ça ne fonctionne pas.
Merci quand même
Yann

"Modeste" a écrit :

Bonsour® Sunburn avec ferveur ;o))) vous nous disiez :


> j'ai des onglets avec un nom du type "80.21" (c'est un point)
> 80.11 par exemple, il met 80,11 et par conséquent, aucune page ne
> s'affiche.

Target.Value = Application.Substitute(UCase(CStr(Target.Value)),Chr(44),".")

--
--
@+
;o)))




Avatar
JPMonnier
Bonjour,
Tu devrais essayer de modifier tes paramètres régionaux
Changer ton symbole décimal de virgule en point
Bien que je n'utiliserais pas le point pour des noms d'onglets, mais plutôt
l'endoscore ( _ )

--
Cordialement


"Sunburn" a écrit dans le message de
news:
Bonjour,
j'ai des onglets avec un nom du type "80.21" (c'est un point)
je veux faire un affichage de 4 onglets en fonction de choix dans une
feuille.
Ma feuille "DA", sur lequel j'ai un choix (en G40) entre "IS", "IR" et "BA
IR", et un deuxième choix (en G41) entre "Simplifié" et "Normal".
en fonction de ces choix, je veux que mes pages s'affichent ou soient
invisibles:
IS et Simplifié, alors l'onglet "80.22" est affiché
IS et Normal, alors l'onglet "80.21" est affiché
IR et Simplifié, alors l'onglet "80.12" est affiché
IR et Normal, alors l'onglet "80.11" est affiché
BA IR et Simplifié, alors l'onglet "80.12" est affiché
BA IR et Normal, alors l'onglet "80.11" est affiché
et bien sur, à chaque fois, les 3 autres onglets sont invisible.

j'ai adapté un ancien code (en faisant une formule en N1, avec des SI,
pour
afficher le bon oblet), mais le problème est que je n'arrive pas à saisir
80.11 par exemple, il met 80,11 et par conséquent, aucune page ne
s'affiche.
Merci de votre aide.

voici mon code, dans ma page "DA":
----
Private Sub worksheet_change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("N1")) Is Nothing Then Exit Sub
Target.Value = UCase(CStr(Target.Value))
Application.ScreenUpdating = False
If Target.Address <> "$N$1" Then Exit Sub

If Target = "80.11" Then
Sheets("80.11").Visible = True
Sheets("80.12").Visible = False
Sheets("80.21").Visible = False
Sheets("80.22").Visible = False

ElseIf Target = "80.12" Then
Sheets("80.12").Visible = True
Sheets("80.11").Visible = False
Sheets("80.21").Visible = False
Sheets("80.22").Visible = False

ElseIf Target = "80.21" Then
Sheets("80.21").Visible = True
Sheets("80.11").Visible = False
Sheets("80.12").Visible = False
Sheets("80.22").Visible = False

ElseIf Target = "80.22" Then
Sheets("80.22").Visible = True
Sheets("80.11").Visible = False
Sheets("80.12").Visible = False
Sheets("80.21").Visible = False

Else
Sheets("80.11").Visible = False
Sheets("80.12").Visible = False
Sheets("80.21").Visible = False
Sheets("80.22").Visible = False
End If
End Sub
--------


Avatar
Modeste
Bonsour® Sunburn avec ferveur ;o))) vous nous disiez :

Désolé, mais ça ne fonctionne pas.
Merci quand même
Yann

"Modeste" a écrit :
Target.Value =
Application.Substitute(UCase(CStr(Target.Value)),Chr(44),".")





Private Sub worksheet_change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("N1")) Is Nothing Then Exit Sub
NomOnglet= Application.Substitute(UCase(CStr(Target.Value)),Chr(44),".")
Application.ScreenUpdating = False
If Target.Address <> "$N$1" Then Exit Sub

Sheets("80.11").Visible = NomOnglet = "80.11"
Sheets("80.12").Visible = NomOnglet = "80.12"
Sheets("80.21").Visible = NomOnglet = "80.21"
Sheets("80.22").Visible = NomOnglet = "80.22"

End Sub
--
--
@+
;o)))
Avatar
Sunburn
Merci, ça fonctionne.
Touefois, est-il possible d'avoir ce code dans une macro "générique", car
par sécurité, je voudrais que le test se fasse sur un autre onglet
"parametres", cellule A1.
de plus, j'ai une macros qui me permet de voir les pages 80, 80.11, 80.12,
80.21, 80.22, 80.50, 80.60 et 80.41, et je veux que la macro qui n'affiche
que le bon des 4 onglets 80.11,12,21,22 et les autres onglets, donc je
pensais rappeler cette macro à ce moment là.
J'espère que je suis compréhensible.
Merci

"Modeste" a écrit :

Private Sub worksheet_change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("N1")) Is Nothing Then Exit Sub
NomOnglet= Application.Substitute(UCase(CStr(Target.Value)),Chr(44),".")
Application.ScreenUpdating = False
If Target.Address <> "$N$1" Then Exit Sub

Sheets("80.11").Visible = NomOnglet = "80.11"
Sheets("80.12").Visible = NomOnglet = "80.12"
Sheets("80.21").Visible = NomOnglet = "80.21"
Sheets("80.22").Visible = NomOnglet = "80.22"

End Sub
--
--
@+
;o)))