OVH Cloud OVH Cloud

If ...interminable

5 réponses
Avatar
René Delcourt
Bonjour à tous,

Il doit certainement y avoir un raccourci à cette interminable ligne de
commande.

If pi.Value <> derndate(0) Or pi.Value Or pi.Value = derndate(1) Or pi.Value
= derndate(2) Or pi.Value = derndate(3) Or pi.Value = derndate(4) etc...Then
pi.Visible = false
else
pi.Visible = true
endif

Merci de votre aide
--
René Delcourt

5 réponses

Avatar
michdenis
Bonjour René,

En supposant que Pi est un textbox

if Isdate(pi) then
A = application.Match(clng(cdate(pi.value)), DerDate,0)
if err<>0 then err=0
select case A
case 1 to 4
Pi.visible =true
case else
Pi.visible = false
end select
end if


Salutations!



"René Delcourt" a écrit dans le message de news:
Bonjour à tous,

Il doit certainement y avoir un raccourci à cette interminable ligne de
commande.

If pi.Value <> derndate(0) Or pi.Value Or pi.Value = derndate(1) Or pi.Value
= derndate(2) Or pi.Value = derndate(3) Or pi.Value = derndate(4) etc...Then
pi.Visible = false
else
pi.Visible = true
endif

Merci de votre aide
--
René Delcourt
Avatar
René Delcourt
Merci pour la réponse.
En fait Pi (j'ai pas été très explicite) est un Pivot Item.
--
René Delcourt



Bonjour René,

En supposant que Pi est un textbox

if Isdate(pi) then
A = application.Match(clng(cdate(pi.value)), DerDate,0)
if err<>0 then err=0
select case A
case 1 to 4
Pi.visible =true
case else
Pi.visible = false
end select
end if


Salutations!



"René Delcourt" a écrit dans le message de news:
Bonjour à tous,

Il doit certainement y avoir un raccourci à cette interminable ligne de
commande.

If pi.Value <> derndate(0) Or pi.Value Or pi.Value = derndate(1) Or pi.Value
= derndate(2) Or pi.Value = derndate(3) Or pi.Value = derndate(4) etc...Then
pi.Visible = false
else
pi.Visible = true
endif

Merci de votre aide
--
René Delcourt





Avatar
michdenis
Bonjour René,

As-tu essayé quelque chose comme ceci :
Adapte le nom des objets selon ton application

(pas tester)
'-----------------------------
Sub Test()

Dim MJ As Boolean
Dim StateCal As String

StateCal = Application.Calculation
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With

With Feuil.PivotTables("NomTdc")
MJ = .ManualUpdate
.ManualUpdate = True
With .PivotFields("NomDuChamp")
For Each Pi In .PivotItems
Select Case Pi
Case 1 To 4
Pi.Visible = True
Case Else
Pi.Visible = False
End Select
Next
End With
.ManualUpdate = MJ
End With

With Application
.Calculation = StateCal
.EnableEvents = True
.ScreenUpdating = True
End With

End Sub
'-----------------------------


Salutations!



"René Delcourt" a écrit dans le message de news:
Merci pour la réponse.
En fait Pi (j'ai pas été très explicite) est un Pivot Item.
--
René Delcourt



Bonjour René,

En supposant que Pi est un textbox

if Isdate(pi) then
A = application.Match(clng(cdate(pi.value)), DerDate,0)
if err<>0 then err=0
select case A
case 1 to 4
Pi.visible =true
case else
Pi.visible = false
end select
end if


Salutations!



"René Delcourt" a écrit dans le message de news:
Bonjour à tous,

Il doit certainement y avoir un raccourci à cette interminable ligne de
commande.

If pi.Value <> derndate(0) Or pi.Value Or pi.Value = derndate(1) Or pi.Value
= derndate(2) Or pi.Value = derndate(3) Or pi.Value = derndate(4) etc...Then
pi.Visible = false
else
pi.Visible = true
endif

Merci de votre aide
--
René Delcourt





Avatar
michdenis
2 lignes de code ont été oubliées lors du copie-coller :
A = Application.Match(CLng(CDate(pi.Value)), DerDate, 0)
If Err <> 0 Then Err = 0

Dans la section suivante ... à corriger !


With Feuil1.PivotTables("MonTdc")
MJ = .ManualUpdate
.ManualUpdate = True
With .PivotFields("LesDates")
For Each pi In .PivotItems
A = Application.Match(CLng(CDate(pi.Value)), DerDate, 0)
If Err <> 0 Then Err = 0
Select Case pi
Case 1 To 4
pi.Visible = True
Case Else
pi.Visible = False
End Select
Next
End With
.ManualUpdate = MJ
End With


Salutations!



"michdenis" a écrit dans le message de news: u03xH4%
Bonjour René,

As-tu essayé quelque chose comme ceci :
Adapte le nom des objets selon ton application

(pas tester)
'-----------------------------
Sub Test()

Dim MJ As Boolean
Dim StateCal As String

StateCal = Application.Calculation
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With

With Feuil.PivotTables("NomTdc")
MJ = .ManualUpdate
.ManualUpdate = True
With .PivotFields("NomDuChamp")
For Each Pi In .PivotItems
Select Case Pi
Case 1 To 4
Pi.Visible = True
Case Else
Pi.Visible = False
End Select
Next
End With
.ManualUpdate = MJ
End With

With Application
.Calculation = StateCal
.EnableEvents = True
.ScreenUpdating = True
End With

End Sub
'-----------------------------


Salutations!



"René Delcourt" a écrit dans le message de news:
Merci pour la réponse.
En fait Pi (j'ai pas été très explicite) est un Pivot Item.
--
René Delcourt



Bonjour René,

En supposant que Pi est un textbox

if Isdate(pi) then
A = application.Match(clng(cdate(pi.value)), DerDate,0)
if err<>0 then err=0
select case A
case 1 to 4
Pi.visible =true
case else
Pi.visible = false
end select
end if


Salutations!



"René Delcourt" a écrit dans le message de news:
Bonjour à tous,

Il doit certainement y avoir un raccourci à cette interminable ligne de
commande.

If pi.Value <> derndate(0) Or pi.Value Or pi.Value = derndate(1) Or pi.Value
= derndate(2) Or pi.Value = derndate(3) Or pi.Value = derndate(4) etc...Then
pi.Visible = false
else
pi.Visible = true
endif

Merci de votre aide
--
René Delcourt





Avatar
michdenis
Cette ligne peut être problématique... cela dépend comment tu as renseigné ton tableau DerDate

Ceci peut être Ok
si tu as utilisé par exemple : derDate = Feuil1.Range("A1:A10")
a = Application.Match(pi.Value, DerDate, 0)

OU
Si tu as utilisé par exemle : DerDate = Feuil1.Range("a1:A10").value2
A = Application.Match(CLng(CDate(pi.Value)), DerDate, 0)

Faudra que tu adaptes !



Salutations!





"michdenis" a écrit dans le message de news: %23EezFR$
2 lignes de code ont été oubliées lors du copie-coller :
A = Application.Match(CLng(CDate(pi.Value)), DerDate, 0)
If Err <> 0 Then Err = 0

Dans la section suivante ... à corriger !


With Feuil1.PivotTables("MonTdc")
MJ = .ManualUpdate
.ManualUpdate = True
With .PivotFields("LesDates")
For Each pi In .PivotItems
A = Application.Match(CLng(CDate(pi.Value)), DerDate, 0)
If Err <> 0 Then Err = 0
Select Case pi
Case 1 To 4
pi.Visible = True
Case Else
pi.Visible = False
End Select
Next
End With
.ManualUpdate = MJ
End With


Salutations!



"michdenis" a écrit dans le message de news: u03xH4%
Bonjour René,

As-tu essayé quelque chose comme ceci :
Adapte le nom des objets selon ton application

(pas tester)
'-----------------------------
Sub Test()

Dim MJ As Boolean
Dim StateCal As String

StateCal = Application.Calculation
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With

With Feuil.PivotTables("NomTdc")
MJ = .ManualUpdate
.ManualUpdate = True
With .PivotFields("NomDuChamp")
For Each Pi In .PivotItems
Select Case Pi
Case 1 To 4
Pi.Visible = True
Case Else
Pi.Visible = False
End Select
Next
End With
.ManualUpdate = MJ
End With

With Application
.Calculation = StateCal
.EnableEvents = True
.ScreenUpdating = True
End With

End Sub
'-----------------------------


Salutations!



"René Delcourt" a écrit dans le message de news:
Merci pour la réponse.
En fait Pi (j'ai pas été très explicite) est un Pivot Item.
--
René Delcourt



Bonjour René,

En supposant que Pi est un textbox

if Isdate(pi) then
A = application.Match(clng(cdate(pi.value)), DerDate,0)
if err<>0 then err=0
select case A
case 1 to 4
Pi.visible =true
case else
Pi.visible = false
end select
end if


Salutations!



"René Delcourt" a écrit dans le message de news:
Bonjour à tous,

Il doit certainement y avoir un raccourci à cette interminable ligne de
commande.

If pi.Value <> derndate(0) Or pi.Value Or pi.Value = derndate(1) Or pi.Value
= derndate(2) Or pi.Value = derndate(3) Or pi.Value = derndate(4) etc...Then
pi.Visible = false
else
pi.Visible = true
endif

Merci de votre aide
--
René Delcourt