Saut vers la fin après l'insertion d'une ligne

[Fermé]
Signaler
Messages postés
2
Date d'inscription
lundi 4 novembre 2013
Statut
Membre
Dernière intervention
28 décembre 2013
-
Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
-
Bonsoir,
Merci d'avance pour avoir pris la peine de lire le message, et ... voilà
je suis nouveau en programmation vba et mon problème est le suivant :

J'ai créé une petite app. pour dresser sur un tableau (préétabli) les heures supp. de chaque équipe,
normalement tout fonctionne bien (de 1. à 14.), mais lorsqu'il s'agit d'introduire deux périodes en une seule journée (de 15. à 22.), seulement la seconde est enregistrée sur ce tableau en deux fois (une sur la ligne originale et l'autre sur la ligne copiée et insérée.

Lorsque j(applique le débogueur, il se révèle que le programme tourne jusqu'à la ligne 20. et va directement sur la fin de la condition.

H7 = 0:00
H1 = L'heure de sortie
H2 = L'heure de retour
H3 = 4:00
H5 = 8:00
H6 = 16:30
H4 = 21:00


1. ElseIf WeekDay((numerojour), vbMonday) = 1 Or 2 Or 3 Or 4 Or 5 Then
2. If H7 <= H1 And H1 < H3 And H7 < H2 And H2 <= H3 Then
3. Range("B" & Compteur).Value = TextBox4.Value
4. Range("C" & Compteur).Value = TextBox8.Value
5. Range("D" & Compteur).Value = TextBox10.Value
6. ElseIf H7 <= H1 And H1 < H3 And H3 < H2 And H2 <= H5 Then
7. Range("B" & Compteur).Value = TextBox4.Value
8. Range("C" & Compteur).Value = TextBox8.Value
9. Range("D" & Compteur).Value = TextBox10.Value
10. ElseIf H7 <= H1 And H1 < H3 And H5 < H2 And H2 <= H6 Then
11. Range("B" & Compteur).Value = TextBox4.Value
12. Range("C" & Compteur).Value = "8:00"
13. Range("D" & Compteur).Value = TextBox10.Value
14.
15. ElseIf H7 <= H1 And H1 < H3 And H6 < H2 And H2 <= H4 Then
16. Range("B" & Compteur).Value = "16:30"
17. Range("C" & Compteur).Value = TextBox8.Value
18. Range("D" & Compteur).Value = TextBox10.Value
19. Range("B" & Compteur).EntireRow.Copy
20. Selection.Insert.Row
21.
22. Range("A14").Value = TextBox4.Value
23. Range("A15").Value = TextBox8.Value
24.
25.
26.
27.
.
.
.
51. end if


Je ne sais pas comment faire pour que ca ne saute pas de la 20. à 51. afin que ce puisse copier les valeurs des TB4 et 8. (selon une instruction simplifiée (je suis nouveau))

J'espère être bien clair et je vous remercie encore.

3 réponses

Messages postés
1953
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
12 août 2021
151
Bonjour,

Ce serait plus simple avec ton fichier (que tu pourrais poser sur https://www.cjoint.com/ ), mais je crois que c'est lié au fait que tu insères une ligne au niveau de celle que tu es en train de traiter et non en-dessous.

A+
Messages postés
2
Date d'inscription
lundi 4 novembre 2013
Statut
Membre
Dernière intervention
28 décembre 2013

ReSalut à toutes & à tous,
J'ai bien fait du temps, mais voilà, les deux fichiers sont compressés sous format .rar sur le lien https://www.cjoint.com/c/CLCwKVvPTsw .

Je vous rappelle qu'il s'agit d'un état mensuel des heures supplémentaires (entre 0:00 et 8:00 du mat. et entre 16:30 et 24:00) de chaque agent de mon équipe. Lorsqu'il s'agit de jours fériés et lorsque le travail comence normalement à 8:00, il n'y a aucun problème mais lorsque c'est un jour ouvrable et que câ commence avant 8:00 , ca me casse la tête à vouloir insérer :
une première ligne : de xx:xx à 8:00 =======> Heures sup. avant 8:00
une seconde ligne : de 16:30 à yy:yy =======> H.S après 16:30.

Merci encore de bien vouloir m'aider à finir cette petite app.
merci
Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
3 231
Bonjour
Mettre la pièce jointe (maxi: 1 Mo) au format .zip et non .rar
merci