Variable en VB sur Excel

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

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.
 
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
 
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.
 
- 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

Réponses
10
Affichages
791
Réponses
5
Affichages
910
Réponses
3
Affichages
880
Réponses
7
Affichages
367
Retour