Question de jours

Bonjour à tous les forumeurs et forumeuses.

Je dois dans le cadre de mon stage, créer le programme d'une pointeuse, j'ai réussi la majorité des choses qui m'étaient demandées, mais je bute sur une commande assez importante, en effet, si dans le courant de la semaine une personne n'a pas pointée a une journée, ils voudraient que cette journée soit affichée avec une cellule vide.

Date entrée 1 sortie 1 entrée 2 sortie 2 Total/jour Total/semaine

lundi 16 mai 2011 08:55 12:05 13:02 14:11

mardi 17 mai 2011 08:55 12:05 13:02 14:11

jeudi19 mai 2011 08:55 12:05 13:02 14:11

A ce moment là, on voit bien qu'il manque le mercredi 18 mai, et ils voudraient donc en appuyant sur une macro que mercredi 18 mai apparaisse comme ceci :

Date entrée 1 sortie 1 entrée 2 sortie 2 Total/jour Total/semaine

lundi 16 mai 2011 08:55 12:05 13:02 14:11

mardi 17 mai 2011 08:55 12:05 13:02 14:11

mercredi 18 mai 2011

jeudi19 mai 2011 08:55 12:05 13:02 14:11

Voici le code que j'ai crée

Sub jour()
Dim i As Integer
Dim r As Integer
Sheets("4158").Select
i = 12
r = 13
While Weekday(Cells(i, 1)) <= 5 And Day(Cells(i, 1)) <= 31
Rows(i).Select
If Weekday(Cells(r, 1).Value) - Weekday(Cells(i, 1).Value) <> 1 And Cells(i, 1).Value <> 0 Then
    Rows(r).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    i = i + 2
End If
i = i + 1
Wend
End Sub

, et je ne vois pas ou j'ai bien pu faire une erreur. Des idées ?

Bonjour,

une question bête au passage, mais pourquoi ne pas créer automatiquement une ligne vide tous les jours?

Qui se rempli si on pointe et si on ne pointe pas, reste donc vide...

Bon, j'ai prévenu que c'était bête...

Sinon, je suis encore relativement débutant en VBA, donc perso je vais pas pouvoir t'aider des tonnes, mais tkt les Supers Modos sont là!

Parce qu'au départ, je pars d'un grand copier coller qui se situe dans un autre dossier, ce qui me demanderait alors de changer tout le reste du code.

C'est ce que je pensais, mais bon, on sait jamais, ça aurait pu être faisable...

Bon courage!

Je suis en train d'avoir un semblant de réponse

Sub jour()
Dim i As Integer
Dim r As Integer
Sheets("4158").Select
i = 12
r = 13
While Weekday(Cells(i, 1)) <= 5 And Day(Cells(i, 1)) <= 31
Rows(i).Select
If Weekday(Cells(r, 1)) - Weekday(Cells(i, 1)) <> 1 And Cells(i, 1) <> 0 Then
    Rows(r).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Cells(r, 1).Value = (Cells(i, 1)) + 1
    i = i + 2
End If
i = i + 1
r = r + 1
Wend
End Sub

mais cette fois, il ne fonctionne que sur une seule ligne, il ne veut pas continuer le traitement

-- 22 Juin 2011, 16:02 --

J'arrive enfin à gérer les jours grace a ce code :

Sub jour()
Dim i As Integer
Dim r As Integer
Sheets("4158").Select
i = 12
r = 13
While Weekday(Cells(i, 1)) <= 5 And Day(Cells(i, 1)) <= 31
Rows(i).Select
If Weekday(Cells(r, 1)) - Weekday(Cells(i, 1)) <> 1 And Cells(i, 1) <> 0 Then
    Rows(r).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Cells(r, 1).Value = (Cells(i, 1)) + 1
    i = i + 2
Else
i = i + 1
r = r + 1
End If
Wend
End Sub

et grace à cela, lorsque j'ai plusieurs jours manquant dans une meme semaine, ils s'afficheront bel et bien, et le dernier probleme à résoudre, c'est que lorsqu'il y a une nouvelle semaine, ça ne fonctionne plus, c'est a dire :

lundi 16 mai 2011

mercredi 18 mai 2011

vendredi 20 mai 2011

lundi 23 mai 2011

mercredi 25 mai 2011

là je lance la macro et j'obtiens :

lundi 16 mai 2011

mardi 17 mai 2011

mercredi 18 mai 2011

jeudi 19 mai 2011

vendredi 20 mai 2011

lundi 23 mai 2011

mercredi 25 mai 2011

comme on le voit les jours manquants de la premiere semaine sont apparus, mais pas ceux de la seconde

Bonjour

Essaie ceci :

Sub jour()
Dim i As Integer
Dim r As Integer
Sheets("4158").Select
i = 12
For i = 12 To Range("A" & Rows.Count).End(xlUp).Row
While Weekday(Cells(i, 1)) <= 5 And Day(Cells(i, 1)) <= 31
If i = Range("A" & Rows.Count).End(xlUp).Row Then Exit Sub
If Weekday(Cells(i + 1, 1)) - Weekday(Cells(i, 1)) <> 1 And Cells(i, 1) <> 0 Then
    Rows(i + 1).Insert Shift:=xlDown
    Cells(i + 1, 1).Value = (Cells(i, 1)) + 1
    i = i + 2
Else
i = i + 1
End If
Wend
Next
End Sub

Si ok, no'ublie pas de cloturer le fil. Clique sur le V vert

Amicalement

ça marche presque Dan, je veux dire par là si l'on a

lundi 16 mai 2011

vendredi 20 mai 2011

c'est a dire lorsque la personne est absente de mardi à jeudi, il faut lancer la commande 3 fois ^^

p.s : je te remercie pour l'aide que tu m'apportes Dan

re,

c'est a dire lorsque la personne est absente de mardi à jeudi

Ah et comment on le sait dans le code cela ?? tes explications ne parlent pas de cela

Mets ton fichier en ligne ce sera plus simple

D'accord, et voici le fichier dans lequel je fais les test du code.

Je précise bien, j'ai quasiment tout fait, donc ne vous inquiétez pas si vous ne voyez pas les heures, pour le moment, seul la gestion des jours m'interessent, vous verrez dans l'onglet 4158, plusieurs jours, dans lesquels ils en manquent, et je cherche le code permettant de rajouter ces jours manquants

17mai.xlsm (77.78 Ko)

re

je cherche le code permettant de rajouter ces jours manquants

Ben cela le fait non ? Mais cela s'arrête au dernier item, ici le 27 mai

Oui cela le fait, mais je dois lancer plusieurs fois le code, c'est a dire que pour deux semaines dans lesquels ils manquent des jours, je dois lancer la macro jour 2 fois, alors que l'utilisateur n'aura juste qu'a le lancer une seule fois

-- 23 Juin 2011, 09:13 --

C'est bon j'ai trouvé une astuce, merci de ton aide Dan, et pour ceux qui veulent savoir, comme le code ne traitait qu'une semaine à la fois, j'ai crée un compteur qui va de 1 a 5, et a chaque fois il repete le code, comme il y a 4 semaines dans le mois, je vais jusque 5

Rechercher des sujets similaires à "question jours"