Erreur type 9 : l'indice n'appartient pas ...

xtor

XLDnaute Nouveau
Bonjour à tous et toutes,

Dans le but de réaliser un tarif, où l'on peut choisir l'onglet à imprimer pour le client, j'ai utilisé une fonction array.

Toutefois, lorsque je lance la macro, elle m'indique une erreur type 9, ... et je ne parviens pas à trouver l'erreur. Si on remplace la variable onglet par le nom des feuilles, la macro fonctionne sans problèmes, mais mon idée est de pouvoir l'automatiser.
Pourriez-vous m'aider ?

D'avance merci

xtor
 

Pièces jointes

  • test.xlsm
    15.5 KB · Affichages: 39

M12

XLDnaute Accro
Bonjour,

Regarde dans ton code
Code:
Sheets(Array(onglet)).Select
tu veux ouvrir la feuille "Couverture" pour la variable "onglet"
mais sur les conditions du dessus, tu la renommée avec soit A ou B suivant le choix
Donc, il ne trouve pas la feuille (indice)
 

M12

XLDnaute Accro
Teste avec ce code
Code:
Sub CreerPDF() 

    Sheets("Conditions").Activate
    If Range("I2").Value <> 0 Then Var = "A"
    If Range("I3").Value <> 0 Then Var = "B"

    Sheets(Array("Couverture", Var)).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\TARIFS CLIENTS\" + "Tarif  Test" + ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
        ActiveWorkbook.Close False
 
End Sub
 

xtor

XLDnaute Nouveau
Merci pour l'éclairage, ...
Je renomme ("couverture") en ("couverture", "A") non ?

onglet = "COUVERTURE" '----- sélectionne la page de couverture

If Range("I2").Value <> 0 Then onglet = onglet & ", A" ' ---- sélectionne en PLUS les pages du tarif ("COUVERTURE, "A") dans ce cas

Il doit donc m’imprimer alors la feuille “COUVERTURE” et la “FEUILLE A”

Merci
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour xtor,

Testez le code ci-dessous :
VB:
Sub Macro1()
Dim onglet As Variant
  onglet = "COUVERTURE"

  Sheets("Conditions").Select
  If Range("I2").Value <> 0 Then onglet = onglet & "," & "A"
  If Range("I3").Value <> 0 Then onglet = onglet & "," & "B"
  Sheets(Split(onglet, ",")).Select
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      "C:\TARIFS CLIENTS\" + "Tarif  Test" + ".pdf", Quality:= _
      xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
      OpenAfterPublish:=False
  Sheets("Conditions").Select
  ActiveWorkbook.Close False
End Sub
 

Pièces jointes

  • xtor- Imprimer sous conditions- v1.xlsm
    21.8 KB · Affichages: 28

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T