Boucle avec variale alphanumérique

djkiller49

XLDnaute Nouveau
Bonjour les grands maîtres d'Excel,

Voici mon problème : :(
- J'ai 4 feuilles : SEM1, SEM2, SEM3 et SEM4 (attention, l'ordre peut varier et il peut y avoir d'autres feuilles que "SEM" dans mon fichier final. Il faut donc travailler avec le nom des feuille).
- Je voudrais sélectionner la feuille SEM1 et écrire en B2 la valeur TEST1.
- Je voudrais sélectionner la feuille SEM2 et écrire en B2 la valeur TEST2.
- Je voudrais sélectionner la feuille SEM3 et écrire en B2 la valeur TEST3.
- Je voudrais sélectionner la feuille SEM4 et écrire en B2 la valeur TEST4.

Dans ma logique, cela donne un truc du genre :
numero = 1
semaine= "SEM" + numero

While numero <= 4
Sheets(semaine).Select
Cell("B2") = "TEST" + numero
numero = numero + 1
Wend


Maintenant il reste a l'écrire avec le bon langage VBA :)
 

Pièces jointes

  • boucle_semaine.xlsx
    9.4 KB · Affichages: 12

djkiller49

XLDnaute Nouveau
Bonsoir.
Ça m'a l'ait pas mal comme ça sauf que ça peut s'écrire plus court :
VB:
Dim N As Long
For N = 1 To 4: Worksheets("SEM" & N).[B2].Value = "TEST" & N: Next N


Tout d'abord bravo pour la rapidité Dranreb :)


En utilisant votre syntaxe, j'arrive à ça et ça fonctionne :
Dim numero As Long
Dim semaine As String

numero = 1
semaine = "SEM" & numero
While numero <= 4
Sheets("SEM" & numero).Select
Range("B2").Value = "TEST" & numero
numero = numero + 1
Wend

Mais mon exemple est une version simplifié de mon besoin alors j'aurais juste voulu une correction de ma syntaxe si c'est possible ;)
Quelle syntaxe pour cette commande : Sheets(semaine).Select
 

Dranreb

XLDnaute Barbatruc
Éviter les Select et Selection dans les macros.
Pour éviter des répétitions d'expressions, affectez les plutôt par des Set à des variables déclarées As Workbook, Worksheet, Range etc.
Et évitez autant que possible de consulter une collection sans préciser son propriétaire.
Jamais de Range sans expression WorkSheet. devant, jamais de Worksheets(x) sans préciser de quel Workbook. devant.
 

Discussions similaires

Statistiques des forums

Discussions
312 839
Messages
2 092 682
Membres
105 509
dernier inscrit
hamidvba