Problème de copie de feuille en VBA

onra -  
onesdf Messages postés 375 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis entrain de créer un code ou j'ai besoin de copier des feuilles successivement:
feuille "situations1" => "situation 2"
pui "situation 2" => "situation 3"
et ainsi de suite

Mon problème, c'est que mon code copie toujours la situation 1.

Voici mon code:
Sub Copysitu()
'
Dim i, a As Integer
For i = 3 To ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(i).Copy After:=Worksheets(i)
i = i + 1
Next i

End Sub

Si quelqu'un pourrait me donner un petit coup de pouce

merci
A voir également:

1 réponse

onesdf Messages postés 375 Date d'inscription   Statut Membre Dernière intervention   120
 
Ou alors y'a un truc que j'ai pas pigé, mais ca me parait normal

Si Situation 2 est une copie de Situation 1
et que Situation 3 est une copie de Situation 2
Alors Situation 3 est une copie de Situation 1
0
onra
 
désolé, il manque une petite info
entre les diférentes copies, les informations dans les feuilles changent.
Mais mon plus gros problème est de changer le nom des feuilles quand la source est toujours la même feuille.

Dans le code que je t'ai donné, la copie de la feuille ne se place pas en dernière, et c'est pour moi indispensable.

peut être comprendras tu mieux, si je te donne le code que j'ai fait pour changer le nom des feuilles.

Sub Changenom()
'
Dim i, a As Integer
For i = 3 To ActiveWorkbook.Worksheets.Count
a = i - 2
ActiveWorkbook.Worksheets(i).Name = "Situation" & a

Next i
End Sub
0
onesdf Messages postés 375 Date d'inscription   Statut Membre Dernière intervention   120 > onra
 
J'ai du mal à cerner ton problème, mais tu peux faire :

IndexFeuille = Sheets("Situation 1").Index
ActiveWorkbook.Sheets.Add after:=Sheets(IndexFeuille)
ActiveSheet.Name = "Situation 2"
' Traitements

IndexFeuille = Sheets("Situation 2").Index
ActiveWorkbook.Sheets.Add after:=Sheets(IndexFeuille)
ActiveSheet.Name = "Situation 3"
' Re traitements

...

Si ca ne te convient, essaie d'exposer clairement ton problème : ce que tu as à l'origine et ce que tu veux obtenir au final
0