• Initiateur de la discussion Initiateur de la discussion recoverybis
  • 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 !

R

recoverybis

Guest
Bonjour tout le monde,

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.

Voici les codes

Partie 1 OK

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

Partie 2 Bug

Sub DeSelectPages()

Worksheets(TIndex).Select Replace:=False

Worksheets(TIndex(0)).Select

End Sub
 
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
ça fonctionne parfaitement et mille merci d'avoir pris quelques instants pour solutionner mon problème
Bien cordialement
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
2
Affichages
3 K
LandryK7
L
P
Réponses
0
Affichages
841
pierrealti
P
M
Réponses
3
Affichages
1 K
MarcTer
M
H
Réponses
2
Affichages
1 K
H
A
Réponses
0
Affichages
3 K
AurelieGuillon
A
I
Réponses
8
Affichages
2 K
iStarOSX
I
Retour