Macro avec suite et copies de cellules de feuille N-1

Résolu/Fermé
Michalechat Messages postés 4 Date d'inscription jeudi 28 décembre 2017 Statut Membre Dernière intervention 29 décembre 2017 - 28 déc. 2017 à 11:20
Michalechat Messages postés 4 Date d'inscription jeudi 28 décembre 2017 Statut Membre Dernière intervention 29 décembre 2017 - 29 déc. 2017 à 09:06
Bonjour à tous !

Je tiens un classeur Excel où je note mes heures pour le travaille.

J'ai un modèle que j'aimerai dupliquer 52 ou 53 fois en fonction des années, j'aimerai que les dates suivent. c'est a dire :
feuille "Semaine 1" date du lundi en F4 et samedi en H4 puis Feuille "Semaine 2" date du lundi +7 en F4 au Samedi +7 en H4 ...

J'ai réussi cette manip soit avec Une Macro soit avec une fonction.

Par contre là où je sèche c'est pour les heures à rattraper; je m'explique:
Chaque jour je note mes heures de présence et j'ai une cellule qui calcul automatique la somme de mes heures hebdomadaires. Si j'ai des heures supplémentaires, j'aimerai que celles-ci se reporte automatiquement sur la feuille suivante.

exemple :

Feuille semaine N :
en G37 heures reportés de la semaine passée = 1:30
En G38 total des heures supp de la semaine : = 0
En G39 Heures à reporter "=G38+G37"

je souhaite qu'en feuille N+1 :"G37 =G39 de la feuille N-1

Je n'arrive pas a combiner ces 3 fonctions :

1/ copier 52 ou 53 fois ma feuille modèle avec une Macro
2/ Que les dates de chaque semaines s'enchainent sur les 52 ou 53 feuilles
3/ Que les heures d'une cellule précise (G39) se reportent sur une cellule précise (G37) de la feuille qui suit.

Merci beaucoup pour votre aide.

Michalechat.

A voir également:

3 réponses

via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734
28 déc. 2017 à 11:46
Bonjour

Soit la feuille Modele vierge avec seulement les intitulés Lundi, Mardi etc et les formules de calculs dans les cellules. A coté de Lundi laisser en blanc pour entrer la date, à côté de Mardi mettre la formule =cellule de la date de lundi +1 etc pour mercredi ....
La copier une première fois pour la semaine 1
Renommer cette feuille "S1" et la remplir complétement
Dans la macro :
Prévoir une boucle For n=2 to 52 (ou 53)
Dans cette boucle mettre les instructions pour
- copier la feuille modèle
- la renommer "S" & n
- mettre l'instruction Range(adresse decellule de la date du lundi)=sheets("S" & n-1).range(adresse de la cellule de date du lundi)
- mettre l'instruction Range("G37")=sheets("S" & n-1).range("G39")

Cdlmnt
Via
0
Michalechat Messages postés 4 Date d'inscription jeudi 28 décembre 2017 Statut Membre Dernière intervention 29 décembre 2017
28 déc. 2017 à 12:55
Merci beaucoup, ça à l'air de fonctionner sur le papier mais j'ai un message d'erreur :" impossible d'aller à range qui est caché".
Je suis vraiment nul en codage (c'est mon premier essaie je ne sais pas si j'ai les bons codes)

Pourtant tout est visible, je ne comprend pas :


Sub semaine()

Dim n As Integer

For n = 2 To 52
Sheets(1).Select
If Boucle = 2 Then
Sheets(1).Copy After:=Sheets(1)
Else
Sheets(1).Copy After:=Sheets(Sheets.Count)
End If
ActiveSheet.Name = "S" & n
Range(F4) = [Sheets("S" & n - 1)].Range(F4) + 7
Range("G37") = Sheets("S" & n - 1).Range("G39")

Next n
End Sub

0
via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734
28 déc. 2017 à 13:23
Poste ton fichier sur mon-partage.fr, fais creer un lien que tu copies et reviens coller ici, je regarderai
0
Michalechat Messages postés 4 Date d'inscription jeudi 28 décembre 2017 Statut Membre Dernière intervention 29 décembre 2017
28 déc. 2017 à 13:29
Voila le lien:

https://mon-partage.fr/f/YAmfIrV8/

Merci beaucoup pour ton aide.
Pour pouvoir faire des calculs d'heures en négatif j'utilise le calendrier 1904 c'est peut être important à préciser.
0
via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734
28 déc. 2017 à 14:57
Re,

A condition de supprimer les 0 dans les noms des feuilles (de façon à pouvoir incrémenter), une fois la feuille Prev 1 établie, la macro suivante la copie 51 fois, change les dates et met la bonne formule en G37
Sub creafeuilles()
For n = 2 To 52
  Sheets("Prev 1").Select
    Sheets("Prev 1").Copy After:=Sheets(Sheets.Count)
    Sheets("Prev 1 (2)").Select
    Sheets("Prev 1 (2)").Name = "Prev " & n
    prec = "Prev " & n - 1
    Sheets("Prev " & n).Range("F4") = Sheets(prec).Range("H4") + 2
    form = "='" & prec & "'!G39"
    Sheets("Prev " & n).Range("G37").Select
    Selection.Formula = form
  Next
End Sub

Cdlmnt
Via
0
Michalechat Messages postés 4 Date d'inscription jeudi 28 décembre 2017 Statut Membre Dernière intervention 29 décembre 2017
29 déc. 2017 à 09:06
Vraiment GENIAL ! Merci beaucoup ça va soulager mes manips informatiques !

A bientôt et encore merci beaucoup!
0