Encore fois, j’ai besoin de la compétence des initiés en VBA car une partie du code utilisé dans ma macro plante. La première fonction très bien ça consiste à sélectionner la feuille active et toutes les autres à droite sachant que c’est un planning de cantine organisé en semaine donc il contient 52 onglets, très pratique. En revanche, la seconde partie qui dissocie l’ensemble bug alors merci à tous ceux qui pourront se pencher un instant sur mon problème.
Hello
sans fichier.. on est censé faire comment pour comprendre?
sinon. deux macros qui utilisent TIndex..
bien sur. TIndex a été déclaré en Public tout en haut du code..
sinon...la macro SelectePages initialise ce fameux Tindex..
mais dès qu'elle est finie.. Tindex est INCONNU de la seconde macro..
pour t'en convaincre..
lance les deux macros en mode pas à pas et surveille le contenu de TIndex
C'est bien ce que je disais.. le TIndex n'est pas déclaré en public. donc ta macro de deselection ne sait pas de quoi il s'agit
pas la peine de mulitplier les modules: tu peux mettre toutes les macro dans le meme. et supprimer les autres
ce qui te donne ceci.
VB:
Public TIndex
Sub CopierPages()
'
' CopierPages Macro
'
' Touche de raccourci du clavier: Ctrl+p
'
Sheets("S1").Select
Sheets("S1").Copy Before:=Sheets(1)
End Sub
Sub SelectPages()
Dim i As Integer, x As Integer
ReDim TIndex(Worksheets.Count - ActiveSheet.Index)
For i = ActiveSheet.Index To Worksheets.Count
TIndex(x) = i
x = x + 1
Next
Worksheets(TIndex).Select
End Sub
Sub DeSelectPages()
Worksheets(TIndex).Select Replace:=False
Worksheets(TIndex(0)).Select
End Sub
C'est bien ce que je disais.. le TIndex n'est pas déclaré en public. donc ta macro de deselection ne sait pas de quoi il s'agit
pas la peine de mulitplier les modules: tu peux mettre toutes les macro dans le meme. et supprimer les autres
ce qui te donne ceci.
VB:
Public TIndex
Sub CopierPages()
'
' CopierPages Macro
'
' Touche de raccourci du clavier: Ctrl+p
'
Sheets("S1").Select
Sheets("S1").Copy Before:=Sheets(1)
End Sub
Sub SelectPages()
Dim i As Integer, x As Integer
ReDim TIndex(Worksheets.Count - ActiveSheet.Index)
For i = ActiveSheet.Index To Worksheets.Count
TIndex(x) = i
x = x + 1
Next
Worksheets(TIndex).Select
End Sub
Sub DeSelectPages()
Worksheets(TIndex).Select Replace:=False
Worksheets(TIndex(0)).Select
End Sub
C'est bien ce que je disais.. le TIndex n'est pas déclaré en public. donc ta macro de deselection ne sait pas de quoi il s'agit
pas la peine de mulitplier les modules: tu peux mettre toutes les macro dans le meme. et supprimer les autres
ce qui te donne ceci.
VB:
Public TIndex
Sub CopierPages()
'
' CopierPages Macro
'
' Touche de raccourci du clavier: Ctrl+p
'
Sheets("S1").Select
Sheets("S1").Copy Before:=Sheets(1)
End Sub
Sub SelectPages()
Dim i As Integer, x As Integer
ReDim TIndex(Worksheets.Count - ActiveSheet.Index)
For i = ActiveSheet.Index To Worksheets.Count
TIndex(x) = i
x = x + 1
Next
Worksheets(TIndex).Select
End Sub
Sub DeSelectPages()
Worksheets(TIndex).Select Replace:=False
Worksheets(TIndex(0)).Select
End Sub