Macro avec suite et copies de cellules de feuille N-1 [Résolu]

Michalechat 4 Messages postés jeudi 28 décembre 2017Date d'inscription 29 décembre 2017 Dernière intervention - 28 déc. 2017 à 11:20 - Dernière réponse : Michalechat 4 Messages postés jeudi 28 décembre 2017Date d'inscription 29 décembre 2017 Dernière intervention
- 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.

Afficher la suite 

6 réponses

Répondre au sujet
via55 8936 Messages postés mercredi 16 janvier 2013Date d'inscription 17 janvier 2018 Dernière intervention - 28 déc. 2017 à 11:46
0
Utile
1
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
Michalechat 4 Messages postés jeudi 28 décembre 2017Date d'inscription 29 décembre 2017 Dernière intervention - 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

Commenter la réponse de via55
via55 8936 Messages postés mercredi 16 janvier 2013Date d'inscription 17 janvier 2018 Dernière intervention - 28 déc. 2017 à 13:23
0
Utile
1
Poste ton fichier sur mon-partage.fr, fais creer un lien que tu copies et reviens coller ici, je regarderai
Michalechat 4 Messages postés jeudi 28 décembre 2017Date d'inscription 29 décembre 2017 Dernière intervention - 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.
Commenter la réponse de via55
via55 8936 Messages postés mercredi 16 janvier 2013Date d'inscription 17 janvier 2018 Dernière intervention - 28 déc. 2017 à 14:57
0
Utile
1
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
Michalechat 4 Messages postés jeudi 28 décembre 2017Date d'inscription 29 décembre 2017 Dernière intervention - 29 déc. 2017 à 09:06
Vraiment GENIAL ! Merci beaucoup ça va soulager mes manips informatiques !

A bientôt et encore merci beaucoup!
Commenter la réponse de via55