Ligne de code qui ne fonctionne pas et j'ignore pourquoi

Bonsoir,

Quelqu'un peut-il me dire pourquoi la première partie (avant le Else) de ce code fontionne et l'autre pas ?

Dim request1 As Integer
Dim request2 As Integer

request1 = Sheets("A").Range("E13")
request2 = Sheets("A").Range("E14")

If request1 = request2 Then

Sheets("A").PivotTables("PivotTable1").PivotFields( _
       "[X].[Y].[Y]").VisibleItemsList = Array( _
       "[X].[Y].&[" & request1 & "]")

Else

Sheets("A").PivotTables("PivotTable1").PivotFields( _
        "[X].[Y].[Y]").VisibleItemsList = Array("", _
        "[X].[Y].&[" & request1 & "]", "[X].[Y].&[" & request2 & "]" _
)

J'essaye ainsi de demander à un TCD de prendre les valeurs entre request1 et request2

Les 2 variables sont bien définies et valides. La première partie du IF fonctionne sans problème mais pas la seconde.

Merci d'avance

Cordialement,

Vbabeginner

Bonjour,

Peut-être parce que tu as écrit avec les pieds ?

request1 = Sheets("A).Range("E13")

manque un guillemet ici après le A

If request1 = requeste2 Then

tu as mis un e à requeste2 ...

Je me suis arrêté ici.

Pardon ce sont des fautes de frappe lors de l'écriture de ce post (j'ai corrigé) mais dans le fichier réel les guillements et le request sont bien orthographiés

Cordialement,

Vbabeginner

Mon projet ne dépend plus que de ces quelques lignes de code. Pleeeeeaaase :)

Genre tu t'es amusé à réécrire le code au lieu de faire un copier coller ?

Sinon, si ca ne vient pas de ça, sans accès au fichier je ne sais pas du coup. Et quand bien même j'y aurais accès, pas dit que je sache plus.

Non j'ai fait copier coller et j'ai adapté les noms parce que les données sont sensibles et comme le nom des tables et des feuilles étaient trop explicites j'ai préféré les modifier.

J'ai du mal à joindre le "vrai" fichier car une fois de plus le TCD est lié à une source extene :(

Mais merci de t'être planché sur le sujet !

Bonne soirée,

Vbabeginner

Bonjour,

Quelqu'un d'autre aurait une idée ? Même qu'une piste ?

Merci d'avance,

Bonne journée,

Vbabeginner

Bonsoir VBAbeginner

Heuuuuu

boule de cristal

A tout hasard

Sub Test()
  Dim request1 As Integer
  Dim request2 As Integer

  request1 = Sheets("A").Range("E13")
  request2 = Sheets("A").Range("E14")

  If request1 = request2 Then
    Sheets("A").PivotTables("PivotTable1").PivotFields("[X].[Y].[Y]") _
      .VisibleItemsList = Array("[X].[Y].&[" & request1 & "]")
  Else
    Sheets("A").PivotTables("PivotTable1").PivotFields("[X].[Y].[Y]") _
    .VisibleItemsList = Array("[X].[Y].&[" & request1 & "]", "[X].[Y].&[" & request2 & "]")
  End If
End Sub

A+

Hello Bruno,

J'avais hésité à proposer cela, ne sachant pas ce que le vide au début du array pouvait faire ou pas ... Mais là, on est à 1000 lieues des choses que je peux maîtriser :(

Salut JoyeuxNoël

Sas fichier anonymisé... heu comment dire ben au pif (pas gadget celui là)

Bonjour à tous,

Je crois que les éléments vides ont pour valeur Empty (Vide) et non "".

Edit : Au temps pour moi, ce serait plutôt "(blank)" (vérifié sur un ancien sujet). A voir...

Cdlt,

Rechercher des sujets similaires à "ligne code qui fonctionne pas ignore pourquoi"