les discours maladroit sont sans doute des deux cotés, pas besoin de ce friter!
Version imprimable
As tu peur de tester? ;)
Oui quand on a une date dans une cellule formatée en mmmm, le mmmm exprime le mois dans la langue de ton environnement.
Ca tourne même mieux sans le code dans le Workbook_Open, je le supprime donc, merci !
Avez-vous une idée pour le planning restant dans la feuille Ajout_Années?
Cordialement
Supprime le
Tu as tout simplement lancé ta procédure "construction" avec la feuille active: Ajout_Années
En temps normal, ta procédure "construction" étant lancé avec l'évènement Change de la feuille Tasklist. C'est à dire Tasklist étant LA feuille active.
PS. Pour "le discours maladroit" imaginé, je ne crois pas en arriver là! Loin de donner des leçons derrière un clavier. Simplement je vous encourage à aller de l'avant du moment qu'on est tous des novices (certes à des degrés plus ou moins profonds). C'est avec la pratique, la documentation et l'analyse calme qu'on arrive à avancer. L'ego est à laisser de côté
Bonjour,
J'ai compris mon erreur pour le lancement de la procédure construction mais je ne vois pas si cette erreur risque d'être récurrente... En clair, est ce que je dois adapter mon code pour être certain que la fonction construction ne se lance plus sur l'onglet Ajout_Années?
Cordialement
Pour être tranquille (quant à l'évolution de ton code) modifie ta sub Construction en indiquant la feuille à laquelle se rapportent les plages.
Pour cela on utilise le nom de la feuille Task list ou bien son CodeName Feuil4 avec le With/End With et pour chaque Range ou Column, les suffixer d'un point
Explication avec exempleCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 '.... With Feuil4 'With Worksheets("Tasks list") With .Columns("J:FO") .Clear .ColumnWidth = 2 End With 'Range("J3:FP5").Clear DateDep = DateSerial(.Range("F2"), Month(.Range("F3")), 1) SemDep = numSem(DateDep) If SemDep > 51 Then SemDep = 1 LaDate = 7 * SemDep + DateSerial(.Range("F2"), 1, 1) - Weekday(DateSerial(.Range("F2"), 1, 3)) ' Jeudi de cette semaine ' Si le Jeudi de la semaine de départ n'est pas dans le mois demandé on rajoute 1 à la semaine de départ If Month(LaDate) <> Month(.Range("F3")) Then SemDep = SemDep + 1: LaDate = LaDate + 7 SemFin = numSem(DateAdd("yyyy", 3, DateDep)) ColDep = 10 ColFin = ColDep For I = .Range("F2") To .Range("F2") + 2 If I = .Range("F2") Then '....suite End With End Sub
inscrit Toto en A1 de LA feuille activeCode:Range("A1")="Toto"
inscrit Tata en A1 de la feuille Feuil1 et on la colorie en rouge quelque soit la feuille activeCode:
1
2 Worksheets("Feuil1").Range("A1") = "Tata" Worksheets("Feuil1").Range("A1").Font.Color = 255
Avec with/end with on simplifie l'écriture comme ceci
Plus tard quand on tu vas travailler simultanément avec plusieurs classeurs, il faudra aussi indiquer à quelle classeurappartient la feuilleCode:
1
2
3
4 With Worksheets("Feuil1") .Range("A1") = "Tata" .Range("A1").Font.Color = 255 End With
Merci pour le code et l'exemple, ça permet de bien comprendre le système.
Le code semble fonctionner nickel, merci beaucoup pour votre aide.
Je marque la discussion comme résolue.
Merci pour l'aide,
Bonne après-midi