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

  • Initiateur de la discussion Initiateur de la discussion xtor
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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)
 
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
 
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour