Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Variable en VB sur Excel

J

Jimmy GONNET

Guest
Bonjour,
Je souhaiterais que vous m'aidiez a scripter cela car je fait des copies de ma pages templates pour les 52 semaines d'une année et il faudrait que je recopie cela 52 en modifiant ... Est-ce possible de faire ca via une variable ou autre :

Sheets('Template').Select
Sheets('Template').Name = 'S01'
Sheets('S01').Select

'N° de Week (ici Week 1)
Sheets('S01').Range('B1') = 1
'Date de la semaine Suivante
Sheets('S01').Range('B2') = '02/01/2006'


Sheets('S01').Copy After:=Sheets(3)
Sheets('S01 (2)').Select
Sheets('S01 (2)').Name = 'S02'
Sheets('S02').Select

'N° de Week (ici Week 2)
Sheets('S02').Range('B1') = '=S01!$B$1+1'
'Date de la semaine Suivante
Sheets('S02').Range('B2') = '=S01!$B$2+7'


Sheets('S02').Copy After:=Sheets(4)
Sheets('S02 (2)').Select
Sheets('S02 (2)').Name = 'S03'
Sheets('S03').Select

'N° de Week (ici Week 3)
Sheets('S03').Range('B1') = '=S02!$B$1+1'
'Date de la semaine Suivante
Sheets('S03').Range('B2') = '=S02!$B$2+7'


Merci pour votre aide.
 

Jeannot45

XLDnaute Occasionnel
Salut Jimmy

Voici une petite procédure qui va résoudre ton problème:

Code:
Sub CopieTemplate()
Dim intCompteur As Integer, strNomFeuille As String, strFormule1 As String

Sheets(1).Select
Sheets(1).Name = 'S01'
Sheets('S01').Select

'N° de Week (ici Week 1)
    ActiveSheet.Range('B1') = 1
'Date de la semaine Suivante
    ActiveSheet.Range('B2') = '02/01/2006'
    
ActiveSheet.Copy After:=Sheets(1)

For intCompteur = 2 To 52


If intCompteur < 10 Then
    strNomFeuille = 'S0' & intCompteur
Else
    strNomFeuille = 'S' & intCompteur
End If
Sheets(intCompteur).Name = strNomFeuille

Sheets(strNomFeuille).Select

'Date de la semaine Suivante
    strFormule1 = '=' & Sheets(intCompteur - 1).Name & '!$B$2 + 7'
    ActiveSheet.Range('B1') = intCompteur
    ActiveSheet.Range('B2') = strFormule1
ActiveSheet.Copy After:=Sheets(intCompteur)
Next


End Sub

Le principe
On commence par initialiser la première feuille
puis par une boucle on génère les autres feuilles.

Bonne continuation

Jeannot
 
J

Jimmy GONNET

Guest
Merci de ton aide,
je teste cela ce soir et te fait un retour mais ca me semble tres prometteur et surtout ca semble etre completement ce que je souhaitais
encore merci
 
J

Jimmy GONNET

Guest
Merci beaucoup Jeannot pour ton aide qui m'a été précieuse. Effectivement ca correspondait exactement à ce que je souhaitais. Ca m'a permis de l'adapter pour la mise en place d'un suivi d'activité d'Equipe que je suis en train de faire sur excel.
J'essayerai de partager mon travail une fois que le fichier sera completement abouti.
Tous mes remerciement encore.
Jim.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…