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

Probleme "if multiple" VBA

15 réponses
Avatar
Sunburn
Bonjour,
je voudrais afficher certains onglets sous conditions.
j'ai un tableau, et si dans ma plage H9 à H23, j'ai "50.32a", alors l'onglet
50_32a est visible, sinon il reste invisible.

j'ai essayé ça, mais ça plante. Pourquoi ?
MERCI. yann
----
If [H9] = "50.32a" Or [H10] = "50.32a" Or [H11] = "50.32a" Or [H12] =
"50.32a" Or [H13] = "50.32a" _
Or [H14] = "50.32a" Or [H15] = "50.32a" Or [H16] = "50.32a" Or [H17] =
"50.32a" Or [H18] = "50.32a" _
Or [H19] = "50.32a" Or [H20] = "50.32a" Or [H21] = "50.32a" Or [H22] =
"50.32a" Or [H23] = "50.32a" _
Then Sheets("50_32a").Visible = True
-----

ps : j'ai quasi la meme chose avec des "And".

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
Essaie :

If IsNumeric(Application.Match("50.32a", [H9:H23], 0)) Then
Sheets("50.32a").Select
End If

Cordialement.
Daniel

Bonjour,
je voudrais afficher certains onglets sous conditions.
j'ai un tableau, et si dans ma plage H9 à H23, j'ai "50.32a", alors l'onglet
50_32a est visible, sinon il reste invisible.

j'ai essayé ça, mais ça plante. Pourquoi ?
MERCI. yann
----
If [H9] = "50.32a" Or [H10] = "50.32a" Or [H11] = "50.32a" Or [H12] =
"50.32a" Or [H13] = "50.32a" _
Or [H14] = "50.32a" Or [H15] = "50.32a" Or [H16] = "50.32a" Or [H17] =
"50.32a" Or [H18] = "50.32a" _
Or [H19] = "50.32a" Or [H20] = "50.32a" Or [H21] = "50.32a" Or [H22] =
"50.32a" Or [H23] = "50.32a" _
Then Sheets("50_32a").Visible = True
-----

ps : j'ai quasi la meme chose avec des "And".


Avatar
Youky \(BJ\)
Voiçi

For Each c In [H9:H23]
If c.Value = "50.32a" Then Sheets(c.Value).Visible=True
Next

Youky [BJ]
Avatar
Sunburn
Bonjour Daniel,
d'accord, ça fonctionne, j'ai mis Sheets("50_32a").Visible = True pour que
ce soit plus ce que je veux, mais sinon, c'est bien.
Par contre, je ne vois pas comment ne plus afficher l'onglet si la valeur
"50.32a" n'est dans aucune des cellules de la plage.
merci.
j'ai essayé aussi avec le code de Youki, mais pas plus de réussite.
Merci. YANN

"Daniel.C" a écrit :

Bonjour.
Essaie :

If IsNumeric(Application.Match("50.32a", [H9:H23], 0)) Then
Sheets("50.32a").Select
End If

Cordialement.
Daniel

> Bonjour,
> je voudrais afficher certains onglets sous conditions.
> j'ai un tableau, et si dans ma plage H9 à H23, j'ai "50.32a", alors l'onglet
> 50_32a est visible, sinon il reste invisible.
>
> j'ai essayé ça, mais ça plante. Pourquoi ?
> MERCI. yann
> ----
> If [H9] = "50.32a" Or [H10] = "50.32a" Or [H11] = "50.32a" Or [H12] =
> "50.32a" Or [H13] = "50.32a" _
> Or [H14] = "50.32a" Or [H15] = "50.32a" Or [H16] = "50.32a" Or [H17] =
> "50.32a" Or [H18] = "50.32a" _
> Or [H19] = "50.32a" Or [H20] = "50.32a" Or [H21] = "50.32a" Or [H22] =
> "50.32a" Or [H23] = "50.32a" _
> Then Sheets("50_32a").Visible = True
> -----
>
> ps : j'ai quasi la meme chose avec des "And".





Avatar
Sunburn
Merci Youki.
mais j'ai 5 feuilles à afficher ou non en fonction de ce qui est saisi.
j'ai essayé de le mettre à ma sauce, mais maintenant, ça n'affiche plus un
seul onglet voulu.... SNIF :'(
voilà ce que j'ai fais :
-----
For Each c In [H9:H23]
If c.Value = "50.32a" Then Sheets("50_32a").Visible = True
If c.Value = "50.32b" Then Sheets("50_32b").Visible = True
If c.Value = "50.32c" Then Sheets("50_32c").Visible = True
If c.Value = "50.32d" Then Sheets("50_32d").Visible = True
If c.Value = "50.32e" Then Sheets("50_32e").Visible = True
If c.Value <> "50.32a" Then Sheets("50_32a").Visible = False
If c.Value <> "50.32b" Then Sheets("50_32b").Visible = False
If c.Value <> "50.32c" Then Sheets("50_32c").Visible = False
If c.Value <> "50.32d" Then Sheets("50_32d").Visible = False
If c.Value <> "50.32e" Then Sheets("50_32e").Visible = False
Next
------



"Youky (BJ)" a écrit :

Voiçi

For Each c In [H9:H23]
If c.Value = "50.32a" Then Sheets(c.Value).Visible=True
Next

Youky [BJ]





Avatar
Daniel.C
If IsNumeric(Application.Match("50.32a", [H9:H23], 0)) Then
Sheets("50_32a").Visible = True
Else
Sheets("50_32a").Visible = False
End If
Daniel

Bonjour Daniel,
d'accord, ça fonctionne, j'ai mis Sheets("50_32a").Visible = True pour que
ce soit plus ce que je veux, mais sinon, c'est bien.
Par contre, je ne vois pas comment ne plus afficher l'onglet si la valeur
"50.32a" n'est dans aucune des cellules de la plage.
merci.
j'ai essayé aussi avec le code de Youki, mais pas plus de réussite.
Merci. YANN

"Daniel.C" a écrit :

Bonjour.
Essaie :

If IsNumeric(Application.Match("50.32a", [H9:H23], 0)) Then
Sheets("50.32a").Select
End If

Cordialement.
Daniel

Bonjour,
je voudrais afficher certains onglets sous conditions.
j'ai un tableau, et si dans ma plage H9 à H23, j'ai "50.32a", alors
l'onglet 50_32a est visible, sinon il reste invisible.

j'ai essayé ça, mais ça plante. Pourquoi ?
MERCI. yann
----
If [H9] = "50.32a" Or [H10] = "50.32a" Or [H11] = "50.32a" Or [H12] =
"50.32a" Or [H13] = "50.32a" _
Or [H14] = "50.32a" Or [H15] = "50.32a" Or [H16] = "50.32a" Or [H17] =
"50.32a" Or [H18] = "50.32a" _
Or [H19] = "50.32a" Or [H20] = "50.32a" Or [H21] = "50.32a" Or [H22] =
"50.32a" Or [H23] = "50.32a" _
Then Sheets("50_32a").Visible = True
-----

ps : j'ai quasi la meme chose avec des "And".









Avatar
Sunburn
Impecable Daniel, ça marche du tonner !!!
merci.
YANN

"Daniel.C" a écrit :

If IsNumeric(Application.Match("50.32a", [H9:H23], 0)) Then
Sheets("50_32a").Visible = True
Else
Sheets("50_32a").Visible = False
End If
Daniel

> Bonjour Daniel,
> d'accord, ça fonctionne, j'ai mis Sheets("50_32a").Visible = True pour que
> ce soit plus ce que je veux, mais sinon, c'est bien.
> Par contre, je ne vois pas comment ne plus afficher l'onglet si la valeur
> "50.32a" n'est dans aucune des cellules de la plage.
> merci.
> j'ai essayé aussi avec le code de Youki, mais pas plus de réussite.
> Merci. YANN
>
> "Daniel.C" a écrit :
>
>> Bonjour.
>> Essaie :
>>
>> If IsNumeric(Application.Match("50.32a", [H9:H23], 0)) Then
>> Sheets("50.32a").Select
>> End If
>>
>> Cordialement.
>> Daniel
>>
>>> Bonjour,
>>> je voudrais afficher certains onglets sous conditions.
>>> j'ai un tableau, et si dans ma plage H9 à H23, j'ai "50.32a", alors
>>> l'onglet 50_32a est visible, sinon il reste invisible.
>>>
>>> j'ai essayé ça, mais ça plante. Pourquoi ?
>>> MERCI. yann
>>> ----
>>> If [H9] = "50.32a" Or [H10] = "50.32a" Or [H11] = "50.32a" Or [H12] =
>>> "50.32a" Or [H13] = "50.32a" _
>>> Or [H14] = "50.32a" Or [H15] = "50.32a" Or [H16] = "50.32a" Or [H17] =
>>> "50.32a" Or [H18] = "50.32a" _
>>> Or [H19] = "50.32a" Or [H20] = "50.32a" Or [H21] = "50.32a" Or [H22] =
>>> "50.32a" Or [H23] = "50.32a" _
>>> Then Sheets("50_32a").Visible = True
>>> -----
>>>
>>> ps : j'ai quasi la meme chose avec des "And".
>>
>>
>>





Avatar
FFO
Salut à toi

En supposant que la plage à analyser se trouve en Feuil1
Je te propose ce code :

On Error Resume Next
Cellule = Sheets("Feuil1").Range("H9", "H23").Find(What:="50.32a",
After:=Range("H9"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Address
If Cellule = "" Then
Sheets("50.32a").Visible = False
Else
Sheets("50.32a").Visible = True
End If

Celà devrait convenir
Dis moi !!!
Avatar
Sunburn
Merci FFO, mais j'ai opté pour la solution de Daniel, car elle fonctionne.
Merci tout de même .
YANN

"FFO" a écrit :

Salut à toi

En supposant que la plage à analyser se trouve en Feuil1
Je te propose ce code :

On Error Resume Next
Cellule = Sheets("Feuil1").Range("H9", "H23").Find(What:="50.32a",
After:=Range("H9"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Address
If Cellule = "" Then
Sheets("50.32a").Visible = False
Else
Sheets("50.32a").Visible = True
End If

Celà devrait convenir
Dis moi !!!




Avatar
FFO
Rebonjour à toi
Solution avec plusieurs onglets dans la plage en Feuil1 :

Données = "50.32a/50.32b/50.32c/50.32d/50.32e"
For i = 0 To UBound(Split(Données, "/"))
On Error Resume Next
Cellule = Sheets("Feuil1").Range("H9", "H23").Find(What:=Split(Données,
"/")(i), After:=Range("H9"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Address
If Cellule = "" Then
A = Split(Données)(i)
Sheets(Split(Données, "/")(i)).Visible = False
Else
Sheets(Split(Données, "/")(i)).Visible = True
End If
Cellule = ""
Next

Tu peux même te servir d'une cellule pour lister tes Onglets et faire
référence à cette cellule par exemple
En Feuil1 A1 tu mets : 50.32a/50.32b/50.32c/50.32d/50.32e
Et tu déclare la variable "Données" ainsi :

Données = Sheets("Feuil1").Range("A1")

Ce qui donne :

Données = Sheets("Feuil1").Range("A1")
For i = 0 To UBound(Split(Données, "/"))
On Error Resume Next
Cellule = Sheets("Feuil1").Range("H9", "H23").Find(What:=Split(Données,
"/")(i), After:=Range("H9"), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Address
If Cellule = "" Then
A = Split(Données)(i)
Sheets(Split(Données, "/")(i)).Visible = False
Else
Sheets(Split(Données, "/")(i)).Visible = True
End If
Cellule = ""
Next

Celà devrait convenir
Dis moi !!!!
Avatar
Sunburn
re,
Bonjour Daniel.
je voulais savoir si je pouvais t'embeter pour un probleme précis,
concernant ce que tu m'avais fais pour mon problème du mois dernier, c'est à
dire la mise à hauteur automatique de lignes.
J'ai un soucis que je n'arrive pas à résoudre :
ça fonctionnait très bien depuis que tu m'avais donné la solution le
24/10/2008.
mais là, ça plante depuis quelques jours. je m'explique dans le fait que à
chaque fois que je saisi des infos (ou meme suprime des infos existantes) sur
les lignes fusionnées, et ben Excel travail comme un malade, et je suis
obligé de quitter, donc impossible d'utiliser mon classeur.

Alors, je viens de vérifier les codes qui concernent la mise à hauteur auto
des lignes, et ils sont parfaitement identiques entre mon classeur presque
fini, et le classeur que tu m'avais envoyé.

Et ça fonctionne sur ton classeur, et pas sur le mien !!!!!
---
J'ai les boules, et j'y capte rien. C'est ptèt d'autres macros qui bloque ce
calcul de hauteur auto.
ça serait possible que tu jettes un coup d'oeil à mes macros, pour savoir si
y'en a 1 ou plusieurs qui peuvent faire planter l'ensemble de mon classeur
actuel ???

Je te remercie d'avance si tu peux m'aider à sortir de ce bourbier. Je dois
présenter mon classeur mercredi prochain, il est fini, mais il palnte.....
les boules.


Merci d'avance si tu peux.
YANN
1 2