Bonjour à tous,
Je suppose que j'ai un problème de déclaration de variable.
J'utilise une sub dans un module pour faire la mise en forme des mes onglets.
Lors de l'appel de ce code, je passe en paramètre fixe l'index des onglets à mettre en forme.
Cette façon me permet de passer les numéro d'onglets à traiter ou si je mets "0" cela va traiter tous les onglets.
La variable "IndexPage1" ayant ParamArray comme argument facultatif, cela me transforme ma liste de numéro d'index en tableau.
Jusqu'à maintenant ça fonctionnait sans problème étant donné que les numéros d'onglets sont passé en "dur", du style :
ou
Le problème est que j'aimerais via une autre sub s'occupant de l'impression, de passer les index de pages dynamiquement suivant comment le code d'impression s'effectue, example :
Si la variable passée est déclarée de ces types :
alors IndexPage1() aura cette valeur (par example) : "1, 2, 4, 17", ça ne passe pas les valeurs dans une forme tableau (paramarray)
Si la variable passée est directement un tableau :
alors indexPage1() sera une imbrication de 2 tableaux (TabImpMeF sera dans indexPage1(0)).
Donc ma question est comment déclarer ma variable "TabImpMeF" pour que indexPage1() soit comme ceci (par example):
indexPage(0)=1
indexPage(1)=5
indexPage(2)=13
etc...
Merci d'avance pour votre aide !
Je suppose que j'ai un problème de déclaration de variable.
J'utilise une sub dans un module pour faire la mise en forme des mes onglets.
Lors de l'appel de ce code, je passe en paramètre fixe l'index des onglets à mettre en forme.
Code:
Sub Mise_En_Forme(ParamArray IndexPage1() As Variant)
'MISE EN FORME DES ONGLETS DONT L'INDEX EST PASSE VIA "IndexPage1"
Dim Wsh As Worksheet
If IndexPage1(0) = 0 Then
For Each Wsh In ThisWorkbook.Worksheets
If Not ThisWorkbook.Worksheets(Wsh.Index).Index = 4 And Not ThisWorkbook.Worksheets(Wsh.Index).Index = 18 And Not ThisWorkbook.Worksheets(Wsh.Index).Index = 3 And Not ThisWorkbook.Worksheets(Wsh.Index).Index = 2 And Not ThisWorkbook.Worksheets(Wsh.Index).Index = 1 Then
Else
For i = 0 To UBound(IndexPage1)
If Not i = 4 And Not i = 18 And Not i = 3 And Not i = 2 And Not i = 1 Then
endif
next
End If
End Sub
Cette façon me permet de passer les numéro d'onglets à traiter ou si je mets "0" cela va traiter tous les onglets.
La variable "IndexPage1" ayant ParamArray comme argument facultatif, cela me transforme ma liste de numéro d'index en tableau.
Jusqu'à maintenant ça fonctionnait sans problème étant donné que les numéros d'onglets sont passé en "dur", du style :
Code:
Call Mise_En_Forme(TargetBackup, 17)
Code:
Call Mise_En_Forme(0)
Le problème est que j'aimerais via une autre sub s'occupant de l'impression, de passer les index de pages dynamiquement suivant comment le code d'impression s'effectue, example :
Code:
Call Mise_En_Forme(TabImpMeF)
Si la variable passée est déclarée de ces types :
Code:
Dim TabImpMeF As String
Dim TabImpMeF As Variant
Si la variable passée est directement un tableau :
Code:
Dim TabImpMeF() as variant
Donc ma question est comment déclarer ma variable "TabImpMeF" pour que indexPage1() soit comme ceci (par example):
indexPage(0)=1
indexPage(1)=5
indexPage(2)=13
etc...
Merci d'avance pour votre aide !
Dernière modification par un modérateur: