Afficher un chiffre avec un point .

Le
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
--
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
Modeste
Le #17523511
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)))
Sunburn
Le #17523771
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)))




JPMonnier
Le #17523931
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" 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
--------


Modeste
Le #17525261
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)))
Sunburn
Le #17525641
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)))




Publicité
Poster une réponse
Anonyme