Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb incrément cellule dans macro HELP ME !!!!

5 réponses
Avatar
Sebastien de Vienne
Bonjour

J'ai un pb sur un code qu'a fait un expert du forum mais le probleme est
qu'il est actuellement en voyage....
Je m'explique :
Onglet "Bilan OT", on clique sur l'image des palmes, une invite se lance.
Choisir par exemple le numéro 5005380. Excel met à jour tout les champs
provenant des onglets TCD_pointage, TCD_ matériel, TCD_...

Cependant, vous remarquerez que les comptes rendu (ligne Z26 à Z32) ont meme
valeur, alors que c'est faut (voir onglet TCD_pointage de E5 à E11). il me
semble que l'erreur provient de ce code :
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
car il reste bloquer en permanence sur J5 (il ne fait pas J6, J7, J8....)

Comment faire pour faire incrémenter ce J5 de la valeur nlp ???

Je vous joint le code complet ainsi que le fichier

http://cjoint.com/?etrAAqgfZQ

Merci d'avance !!

Seb


For nlp = 0 To mp
With Sheets("bilan_OT")
.[c26].Offset(nlp, 0) = Sheets("tcd_pointage").[a5].Offset(nlp, 0)
.[c26].Offset(nlp, 1) = Sheets("tcd_pointage").[a5].Offset(nlp, 1)
.[c26].Offset(nlp, 5) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 50) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 16) = Sheets("tcd_pointage").[a5].Offset(nlp, 3)
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 35) = Sheets("tcd_pointage").[a5].Offset(nlp, 5)
.[c26].Offset(nlp, 38) = Sheets("tcd_pointage").[a5].Offset(nlp, 6)
.[c26].Offset(nlp, 41) = Sheets("tcd_pointage").[a5].Offset(nlp, 7)
.[c26].Offset(nlp, 44) = .[AP26].Offset(nlp, 0) +
.[as26].Offset(nlp, 0) + .[av26].Offset(nlp, 0)
.[ac56] = Evaluate("sum(tcd_pointage!I5:I" & mp + 6 & ")")
End With
Next nlp

5 réponses

Avatar
hasco
Bonjour de Vendée,

cela devrait fonctionner: (aucun saut de ligne! bien sûr)
.[c26].Offset(nlp, 19) = Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!" &
nlp & ",code_pointage,0))")

.[c26].Offset(nlp, 51) = Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!" &
nlp & ",code_pointage,0))")




Bonjour

J'ai un pb sur un code qu'a fait un expert du forum mais le probleme est
qu'il est actuellement en voyage....
Je m'explique :
Onglet "Bilan OT", on clique sur l'image des palmes, une invite se lance.
Choisir par exemple le numéro 5005380. Excel met à jour tout les champs
provenant des onglets TCD_pointage, TCD_ matériel, TCD_...

Cependant, vous remarquerez que les comptes rendu (ligne Z26 à Z32) ont meme
valeur, alors que c'est faut (voir onglet TCD_pointage de E5 à E11). il me
semble que l'erreur provient de ce code :
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
car il reste bloquer en permanence sur J5 (il ne fait pas J6, J7, J8....)

Comment faire pour faire incrémenter ce J5 de la valeur nlp ???

Je vous joint le code complet ainsi que le fichier

http://cjoint.com/?etrAAqgfZQ

Merci d'avance !!

Seb


For nlp = 0 To mp
With Sheets("bilan_OT")
.[c26].Offset(nlp, 0) = Sheets("tcd_pointage").[a5].Offset(nlp, 0)
.[c26].Offset(nlp, 1) = Sheets("tcd_pointage").[a5].Offset(nlp, 1)
.[c26].Offset(nlp, 5) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 50) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 16) = Sheets("tcd_pointage").[a5].Offset(nlp, 3)
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 35) = Sheets("tcd_pointage").[a5].Offset(nlp, 5)
.[c26].Offset(nlp, 38) = Sheets("tcd_pointage").[a5].Offset(nlp, 6)
.[c26].Offset(nlp, 41) = Sheets("tcd_pointage").[a5].Offset(nlp, 7)
.[c26].Offset(nlp, 44) = .[AP26].Offset(nlp, 0) +
.[as26].Offset(nlp, 0) + .[av26].Offset(nlp, 0)
.[ac56] = Evaluate("sum(tcd_pointage!I5:I" & mp + 6 & ")")
End With
Next nlp




Avatar
hasco
Autant pour moi ce qui marche c'est ceci

.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j" & 5 + nlp &
",code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j" & 5 + nlp &
",code_pointage,0))")

Bon courage


Bonjour

J'ai un pb sur un code qu'a fait un expert du forum mais le probleme est
qu'il est actuellement en voyage....
Je m'explique :
Onglet "Bilan OT", on clique sur l'image des palmes, une invite se lance.
Choisir par exemple le numéro 5005380. Excel met à jour tout les champs
provenant des onglets TCD_pointage, TCD_ matériel, TCD_...

Cependant, vous remarquerez que les comptes rendu (ligne Z26 à Z32) ont meme
valeur, alors que c'est faut (voir onglet TCD_pointage de E5 à E11). il me
semble que l'erreur provient de ce code :
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
car il reste bloquer en permanence sur J5 (il ne fait pas J6, J7, J8....)

Comment faire pour faire incrémenter ce J5 de la valeur nlp ???

Je vous joint le code complet ainsi que le fichier

http://cjoint.com/?etrAAqgfZQ

Merci d'avance !!

Seb


For nlp = 0 To mp
With Sheets("bilan_OT")
.[c26].Offset(nlp, 0) = Sheets("tcd_pointage").[a5].Offset(nlp, 0)
.[c26].Offset(nlp, 1) = Sheets("tcd_pointage").[a5].Offset(nlp, 1)
.[c26].Offset(nlp, 5) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 50) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 16) = Sheets("tcd_pointage").[a5].Offset(nlp, 3)
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j5,code_pointage,0))")
.[c26].Offset(nlp, 35) = Sheets("tcd_pointage").[a5].Offset(nlp, 5)
.[c26].Offset(nlp, 38) = Sheets("tcd_pointage").[a5].Offset(nlp, 6)
.[c26].Offset(nlp, 41) = Sheets("tcd_pointage").[a5].Offset(nlp, 7)
.[c26].Offset(nlp, 44) = .[AP26].Offset(nlp, 0) +
.[as26].Offset(nlp, 0) + .[av26].Offset(nlp, 0)
.[ac56] = Evaluate("sum(tcd_pointage!I5:I" & mp + 6 & ")")
End With
Next nlp




Avatar
Sebastien de Vienne
Salut Hasco!!

d'abord merci de m'avoir répondu !!

J'ai fait ce que tu m'as dis mais Excel me lance un message d'erreur disant
: Erreur d'excution 1004 : Impossible de modifier une cellule fusionner.
Lorsque je clique sur débogage, Excel m'indique la ligne où est présent :
[be:bg].ClearContents

Flute alors c'est la galère !!! Merci encore de ton aide !!

A+


Sub mise_a_jour()
[be:bg].ClearContents
Range("c26:ba39,c44:aa49,ac44:ba51,ac56,c53:y56") = ""
If Sheets("tcd_pointage").[b1] = "(Tous)" Then Exit Sub
mp = Application.CountA(Sheets("tcd_pointage").[j:j]) - 2
For nlp = 0 To mp
With Sheets("bilan_OT")
.[c26].Offset(nlp, 0) = Sheets("tcd_pointage").[a5].Offset(nlp, 0)
.[c26].Offset(nlp, 1) = Sheets("tcd_pointage").[a5].Offset(nlp, 1)
.[c26].Offset(nlp, 5) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 50) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 16) = Sheets("tcd_pointage").[a5].Offset(nlp, 3)
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j" & 5 + nlp &
",code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j" & 5 + nlp &
",code_pointage,0))")
.[c26].Offset(nlp, 35) = Sheets("tcd_pointage").[a5].Offset(nlp, 5)
.[c26].Offset(nlp, 38) = Sheets("tcd_pointage").[a5].Offset(nlp, 6)
.[c26].Offset(nlp, 41) = Sheets("tcd_pointage").[a5].Offset(nlp, 7)
.[c26].Offset(nlp, 44) = .[AP26].Offset(nlp, 0) +
.[as26].Offset(nlp, 0) + .[av26].Offset(nlp, 0)
.[ac56] = Evaluate("sum(tcd_pointage!I5:I" & mp + 6 & ")")
End With
Next nlp
Set plgp = Range("c26", "c" & [h40].End(xlUp).Row)
plgp.Select
If plgp.Rows.Count = 1 Then GoTo suite
On Error Resume Next
plgp.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgp].Value = [plgp].Value
suite:

lgp = Sheets("bilan_OT").[c40].End(xlUp).Row
With Sheets("bilan_OT")
.[c26].Offset(mp + 1, 19) = "TOTAL :"
.[c26].Offset(mp + 1, 35) = Evaluate("SUM(AP26:AP" & lgp & ")")
.[c26].Offset(mp + 1, 38) = Evaluate("SUM(AS26:AS" & lgp & ")")
.[c26].Offset(mp + 1, 41) = Evaluate("SUM(AV26:AV" & lgp & ")")
.[c26].Offset(mp + 1, 44) = Evaluate("SUM(AY26:AY" & lgp & ")")
End With

If Sheets("tcd_pointage").[b1] <> Sheets("tcd_materiel").[b1] Then GoTo suite1
mm = Application.CountA(Sheets("tcd_materiel").[e:e]) - 2
For nlm = 0 To mm
With Sheets("bilan_OT")
.[ac44].Offset(nlm, 0) = Sheets("tcd_materiel").[a5].Offset(nlm,
0)
.[ac44].Offset(nlm, 1) = Sheets("tcd_materiel").[a5].Offset(nlm,
1)
.[ac44].Offset(nlm, 5) = Sheets("tcd_materiel").[a5].Offset(nlm,
2)
.[ac44].Offset(nlm, 16) =
Sheets("tcd_materiel").[a5].Offset(nlm, 3)
.[ac44].Offset(nlm, 20) =
Sheets("tcd_materiel").[a5].Offset(nlm, 4)
.[ac44].Offset(nlm, 52) =
Sheets("tcd_materiel").[a5].Offset(nlm, 2)
End With
Next nlm
Set plgm = Range("ac44", "ac" & [ay52].End(xlUp).Row)
plgm.Select
If plgm.Rows.Count = 1 Then GoTo suite1
On Error Resume Next
plgm.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgm].Value = [plgm].Value
suite1:
If Sheets("tcd_pointage").[b1] <> Sheets("tcd_location").[b1] Then GoTo suite2
ml = Application.CountA(Sheets("tcd_location").[e:e]) - 2
For nll = 0 To ml
With Sheets("bilan_OT")
.[c44].Offset(nll, 0) = Sheets("tcd_location").[a5].Offset(nll, 0)
.[c44].Offset(nll, 1) = Sheets("tcd_location").[a5].Offset(nll, 1)
.[c44].Offset(nll, 5) = Sheets("tcd_location").[a5].Offset(nll, 2)
.[c44].Offset(nll, 16) = Sheets("tcd_location").[a5].Offset(nll,
3)
.[c44].Offset(nll, 20) = Sheets("tcd_location").[a5].Offset(nll,
4)
.[ac45].Offset(nll, 28) =
Sheets("tcd_location").[a5].Offset(nll, 2)
End With
Next nll
Set plgl = Range("c44", "c" & [y50].End(xlUp).Row)
plgl.Select
If plgl.Rows.Count = 1 Then Exit Sub
On Error Resume Next
plgl.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgl].Value = [plgl].Value
suite2:
mc = Application.CountA(Sheets("tcd_consom").[c:c]) - 1
If mc = "0" Then GoTo suite3
For nlc = 0 To mc
With Sheets("bilan_OT")
.[c53].Offset(nlc, 0) = Sheets("tcd_consom").[a5].Offset(nlc, 0)
.[c53].Offset(nlc, 1) = Sheets("tcd_consom").[a5].Offset(nlc, 1)
.[c53].Offset(nlc, 5) = Sheets("tcd_consom").[a5].Offset(nlc, 2)
.[c53].Offset(nlc, 18) = Sheets("tcd_consom").[a5].Offset(nlc, 3)
End With
Next nlc
Set plgc = Range("c53", "c" & [y57].End(xlUp).Row)
plgc.Select
If plgc.Rows.Count = 1 Then GoTo suite3
On Error Resume Next
plgc.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgc].Value = [plgc].Value
suite3:
With Sheets("bilan_OT").[a1]
.Select
.ClearContents
End With
End Sub
Avatar
hasco
Ha oui! Excel est parfois difficile et n'aime pas beaucoup qu'on travail en
VBA sur des cellules fusionnée. Il faut souvent les défusionner, faire le
traitement puis refusionner. Ce qui complique le truc-----> Eviter les
cellules fusionnées avec VBA.

Tu ne m'as pas dit si la solution te convenait ou pas

Bonsoir, il y a une vie avant, pendant et après excel.... Bon Ap!


Salut Hasco!!

d'abord merci de m'avoir répondu !!

J'ai fait ce que tu m'as dis mais Excel me lance un message d'erreur disant
: Erreur d'excution 1004 : Impossible de modifier une cellule fusionner.
Lorsque je clique sur débogage, Excel m'indique la ligne où est présent :
[be:bg].ClearContents

Flute alors c'est la galère !!! Merci encore de ton aide !!

A+


Sub mise_a_jour()
[be:bg].ClearContents
Range("c26:ba39,c44:aa49,ac44:ba51,ac56,c53:y56") = ""
If Sheets("tcd_pointage").[b1] = "(Tous)" Then Exit Sub
mp = Application.CountA(Sheets("tcd_pointage").[j:j]) - 2
For nlp = 0 To mp
With Sheets("bilan_OT")
.[c26].Offset(nlp, 0) = Sheets("tcd_pointage").[a5].Offset(nlp, 0)
.[c26].Offset(nlp, 1) = Sheets("tcd_pointage").[a5].Offset(nlp, 1)
.[c26].Offset(nlp, 5) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 50) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 16) = Sheets("tcd_pointage").[a5].Offset(nlp, 3)
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j" & 5 + nlp &
",code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j" & 5 + nlp &
",code_pointage,0))")
.[c26].Offset(nlp, 35) = Sheets("tcd_pointage").[a5].Offset(nlp, 5)
.[c26].Offset(nlp, 38) = Sheets("tcd_pointage").[a5].Offset(nlp, 6)
.[c26].Offset(nlp, 41) = Sheets("tcd_pointage").[a5].Offset(nlp, 7)
.[c26].Offset(nlp, 44) = .[AP26].Offset(nlp, 0) +
.[as26].Offset(nlp, 0) + .[av26].Offset(nlp, 0)
.[ac56] = Evaluate("sum(tcd_pointage!I5:I" & mp + 6 & ")")
End With
Next nlp
Set plgp = Range("c26", "c" & [h40].End(xlUp).Row)
plgp.Select
If plgp.Rows.Count = 1 Then GoTo suite
On Error Resume Next
plgp.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgp].Value = [plgp].Value
suite:

lgp = Sheets("bilan_OT").[c40].End(xlUp).Row
With Sheets("bilan_OT")
.[c26].Offset(mp + 1, 19) = "TOTAL :"
.[c26].Offset(mp + 1, 35) = Evaluate("SUM(AP26:AP" & lgp & ")")
.[c26].Offset(mp + 1, 38) = Evaluate("SUM(AS26:AS" & lgp & ")")
.[c26].Offset(mp + 1, 41) = Evaluate("SUM(AV26:AV" & lgp & ")")
.[c26].Offset(mp + 1, 44) = Evaluate("SUM(AY26:AY" & lgp & ")")
End With

If Sheets("tcd_pointage").[b1] <> Sheets("tcd_materiel").[b1] Then GoTo suite1
mm = Application.CountA(Sheets("tcd_materiel").[e:e]) - 2
For nlm = 0 To mm
With Sheets("bilan_OT")
.[ac44].Offset(nlm, 0) = Sheets("tcd_materiel").[a5].Offset(nlm,
0)
.[ac44].Offset(nlm, 1) = Sheets("tcd_materiel").[a5].Offset(nlm,
1)
.[ac44].Offset(nlm, 5) = Sheets("tcd_materiel").[a5].Offset(nlm,
2)
.[ac44].Offset(nlm, 16) =
Sheets("tcd_materiel").[a5].Offset(nlm, 3)
.[ac44].Offset(nlm, 20) =
Sheets("tcd_materiel").[a5].Offset(nlm, 4)
.[ac44].Offset(nlm, 52) =
Sheets("tcd_materiel").[a5].Offset(nlm, 2)
End With
Next nlm
Set plgm = Range("ac44", "ac" & [ay52].End(xlUp).Row)
plgm.Select
If plgm.Rows.Count = 1 Then GoTo suite1
On Error Resume Next
plgm.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgm].Value = [plgm].Value
suite1:
If Sheets("tcd_pointage").[b1] <> Sheets("tcd_location").[b1] Then GoTo suite2
ml = Application.CountA(Sheets("tcd_location").[e:e]) - 2
For nll = 0 To ml
With Sheets("bilan_OT")
.[c44].Offset(nll, 0) = Sheets("tcd_location").[a5].Offset(nll, 0)
.[c44].Offset(nll, 1) = Sheets("tcd_location").[a5].Offset(nll, 1)
.[c44].Offset(nll, 5) = Sheets("tcd_location").[a5].Offset(nll, 2)
.[c44].Offset(nll, 16) = Sheets("tcd_location").[a5].Offset(nll,
3)
.[c44].Offset(nll, 20) = Sheets("tcd_location").[a5].Offset(nll,
4)
.[ac45].Offset(nll, 28) =
Sheets("tcd_location").[a5].Offset(nll, 2)
End With
Next nll
Set plgl = Range("c44", "c" & [y50].End(xlUp).Row)
plgl.Select
If plgl.Rows.Count = 1 Then Exit Sub
On Error Resume Next
plgl.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgl].Value = [plgl].Value
suite2:
mc = Application.CountA(Sheets("tcd_consom").[c:c]) - 1
If mc = "0" Then GoTo suite3
For nlc = 0 To mc
With Sheets("bilan_OT")
.[c53].Offset(nlc, 0) = Sheets("tcd_consom").[a5].Offset(nlc, 0)
.[c53].Offset(nlc, 1) = Sheets("tcd_consom").[a5].Offset(nlc, 1)
.[c53].Offset(nlc, 5) = Sheets("tcd_consom").[a5].Offset(nlc, 2)
.[c53].Offset(nlc, 18) = Sheets("tcd_consom").[a5].Offset(nlc, 3)
End With
Next nlc
Set plgc = Range("c53", "c" & [y57].End(xlUp).Row)
plgc.Select
If plgc.Rows.Count = 1 Then GoTo suite3
On Error Resume Next
plgc.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgc].Value = [plgc].Value
suite3:
With Sheets("bilan_OT").[a1]
.Select
.ClearContents
End With
End Sub



Avatar
Sebastien de Vienne
Salut Hasco !!!
Comme je t'ai dis lorsque j'exécute la macro sous VBA il me met le message
d'erreur, mais lorsque je lance en auto la macro sous excel, ca fonction sans
probleme... bizarre !! Mais en tout cas ca fonctionne et c'est ce qui compte
!!! Merci encore c'est trop cool !!!

A+

seb


Ha oui! Excel est parfois difficile et n'aime pas beaucoup qu'on travail en
VBA sur des cellules fusionnée. Il faut souvent les défusionner, faire le
traitement puis refusionner. Ce qui complique le truc-----> Eviter les
cellules fusionnées avec VBA.

Tu ne m'as pas dit si la solution te convenait ou pas

Bonsoir, il y a une vie avant, pendant et après excel.... Bon Ap!


Salut Hasco!!

d'abord merci de m'avoir répondu !!

J'ai fait ce que tu m'as dis mais Excel me lance un message d'erreur disant
: Erreur d'excution 1004 : Impossible de modifier une cellule fusionner.
Lorsque je clique sur débogage, Excel m'indique la ligne où est présent :
[be:bg].ClearContents

Flute alors c'est la galère !!! Merci encore de ton aide !!

A+


Sub mise_a_jour()
[be:bg].ClearContents
Range("c26:ba39,c44:aa49,ac44:ba51,ac56,c53:y56") = ""
If Sheets("tcd_pointage").[b1] = "(Tous)" Then Exit Sub
mp = Application.CountA(Sheets("tcd_pointage").[j:j]) - 2
For nlp = 0 To mp
With Sheets("bilan_OT")
.[c26].Offset(nlp, 0) = Sheets("tcd_pointage").[a5].Offset(nlp, 0)
.[c26].Offset(nlp, 1) = Sheets("tcd_pointage").[a5].Offset(nlp, 1)
.[c26].Offset(nlp, 5) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 50) = Sheets("tcd_pointage").[a5].Offset(nlp, 2)
.[c26].Offset(nlp, 16) = Sheets("tcd_pointage").[a5].Offset(nlp, 3)
.[c26].Offset(nlp, 19) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j" & 5 + nlp &
",code_pointage,0))")
.[c26].Offset(nlp, 51) =
Evaluate("INDEX(cr_pointage,MATCH(tcd_pointage!j" & 5 + nlp &
",code_pointage,0))")
.[c26].Offset(nlp, 35) = Sheets("tcd_pointage").[a5].Offset(nlp, 5)
.[c26].Offset(nlp, 38) = Sheets("tcd_pointage").[a5].Offset(nlp, 6)
.[c26].Offset(nlp, 41) = Sheets("tcd_pointage").[a5].Offset(nlp, 7)
.[c26].Offset(nlp, 44) = .[AP26].Offset(nlp, 0) +
.[as26].Offset(nlp, 0) + .[av26].Offset(nlp, 0)
.[ac56] = Evaluate("sum(tcd_pointage!I5:I" & mp + 6 & ")")
End With
Next nlp
Set plgp = Range("c26", "c" & [h40].End(xlUp).Row)
plgp.Select
If plgp.Rows.Count = 1 Then GoTo suite
On Error Resume Next
plgp.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgp].Value = [plgp].Value
suite:

lgp = Sheets("bilan_OT").[c40].End(xlUp).Row
With Sheets("bilan_OT")
.[c26].Offset(mp + 1, 19) = "TOTAL :"
.[c26].Offset(mp + 1, 35) = Evaluate("SUM(AP26:AP" & lgp & ")")
.[c26].Offset(mp + 1, 38) = Evaluate("SUM(AS26:AS" & lgp & ")")
.[c26].Offset(mp + 1, 41) = Evaluate("SUM(AV26:AV" & lgp & ")")
.[c26].Offset(mp + 1, 44) = Evaluate("SUM(AY26:AY" & lgp & ")")
End With

If Sheets("tcd_pointage").[b1] <> Sheets("tcd_materiel").[b1] Then GoTo suite1
mm = Application.CountA(Sheets("tcd_materiel").[e:e]) - 2
For nlm = 0 To mm
With Sheets("bilan_OT")
.[ac44].Offset(nlm, 0) = Sheets("tcd_materiel").[a5].Offset(nlm,
0)
.[ac44].Offset(nlm, 1) = Sheets("tcd_materiel").[a5].Offset(nlm,
1)
.[ac44].Offset(nlm, 5) = Sheets("tcd_materiel").[a5].Offset(nlm,
2)
.[ac44].Offset(nlm, 16) =
Sheets("tcd_materiel").[a5].Offset(nlm, 3)
.[ac44].Offset(nlm, 20) =
Sheets("tcd_materiel").[a5].Offset(nlm, 4)
.[ac44].Offset(nlm, 52) =
Sheets("tcd_materiel").[a5].Offset(nlm, 2)
End With
Next nlm
Set plgm = Range("ac44", "ac" & [ay52].End(xlUp).Row)
plgm.Select
If plgm.Rows.Count = 1 Then GoTo suite1
On Error Resume Next
plgm.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgm].Value = [plgm].Value
suite1:
If Sheets("tcd_pointage").[b1] <> Sheets("tcd_location").[b1] Then GoTo suite2
ml = Application.CountA(Sheets("tcd_location").[e:e]) - 2
For nll = 0 To ml
With Sheets("bilan_OT")
.[c44].Offset(nll, 0) = Sheets("tcd_location").[a5].Offset(nll, 0)
.[c44].Offset(nll, 1) = Sheets("tcd_location").[a5].Offset(nll, 1)
.[c44].Offset(nll, 5) = Sheets("tcd_location").[a5].Offset(nll, 2)
.[c44].Offset(nll, 16) = Sheets("tcd_location").[a5].Offset(nll,
3)
.[c44].Offset(nll, 20) = Sheets("tcd_location").[a5].Offset(nll,
4)
.[ac45].Offset(nll, 28) =
Sheets("tcd_location").[a5].Offset(nll, 2)
End With
Next nll
Set plgl = Range("c44", "c" & [y50].End(xlUp).Row)
plgl.Select
If plgl.Rows.Count = 1 Then Exit Sub
On Error Resume Next
plgl.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgl].Value = [plgl].Value
suite2:
mc = Application.CountA(Sheets("tcd_consom").[c:c]) - 1
If mc = "0" Then GoTo suite3
For nlc = 0 To mc
With Sheets("bilan_OT")
.[c53].Offset(nlc, 0) = Sheets("tcd_consom").[a5].Offset(nlc, 0)
.[c53].Offset(nlc, 1) = Sheets("tcd_consom").[a5].Offset(nlc, 1)
.[c53].Offset(nlc, 5) = Sheets("tcd_consom").[a5].Offset(nlc, 2)
.[c53].Offset(nlc, 18) = Sheets("tcd_consom").[a5].Offset(nlc, 3)
End With
Next nlc
Set plgc = Range("c53", "c" & [y57].End(xlUp).Row)
plgc.Select
If plgc.Rows.Count = 1 Then GoTo suite3
On Error Resume Next
plgc.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
[plgc].Value = [plgc].Value
suite3:
With Sheets("bilan_OT").[a1]
.Select
.ClearContents
End With
End Sub