Adresse d'une série de cellules

Bonjour à tous,

Je me met doucement aux macro.

Pour la gestion de mes chantiers, j'ai crée un classeur de gestion.

Ce classeur comporte une feuille récap et autant de feuille que de semaine passé sur le chantier.

J'ai réussi à faire une macro pour dupliqué une feuille maquette et lui attribué automatiquement le nom de la semaine suivante.

Mon souci est le suivant:

comment inclure dans cette macro la ligne récapitulative correspondante, en sachant que chaque feuille a un nom différent, mais que la nouvelle feuille créer est automatiquement en position 5.

Je sais pas si j'ai été assez clair.

Merci d'avance pour votre aide.

Bonjour Dohvakiin,

Worksheets(5) est toujours la 5ème feuille du classeur ; ça échouera bien sûr pour un classeur

de moins de 5 feuilles, car dans ces cas, la 5ème feuille n'existe tout simplement pas. ;)

Cordialement

Merci beaucoup,

J'ai fait ca moi

Sub Duplication()

'

' Duplication Macro

' Copie et renomme les feuille au fur et a mesure des semaines

'

' Touche de raccourci du clavier: Ctrl+Shift+D

'

Sheets(4).Select

'copie de la feuille n4 en position 1

Sheets(4).Copy Before:=Sheets(1)

Sheets(1).Select

'Deplacement de la feuille en position 4

Sheets(1).Move After:=Sheets(4)

'Incrémentation des semaine

[AG1] = [AG1] + 1

'Renommer la feuille en fonction du numéro de la semaine

ActiveSheet.Name = Range("AF2").Text

'Selction de la feuille récapitulatif

Sheets("Recapitulatif").Select

'selection de la ligne 8

Rows(8).Select

'Insertion d'une ligne

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

'Selection de la feuille numéro 4

Sheets(4).Select

'Copie des totaux

Range("G25:AL25").Select

Selection.Copy

'Selection de la feuille récapitulatif

Sheets("Recapitulatif").Select

'copie en D8

Range("D8").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

End Sub

quelle est la difference entre sheet et worksheet?

Bonjour Dohvakiin


A mon avis il y a surtout un 1er problème

Dohvakiin a écrit :

et autant de feuille que de semaine passé sur le chantier.

Comme je le dis souvent ce n'est parce que Excel permet de faire des feuilles dans un classeur qu'il faut tenter de battre le record du nombre de feuilles...

Je n'ai pas vu ton fichier... mais es-tu certain qu'il y a une différence entre plusieurs semaines du même chantier ?

Oui ! tu vas me dire... parce que la 1ère c'est la mise en place, la 2ème c'est l'exécution des travaux, la 3ème c'est l'exécution des travaux et la 4ème c'est la finition et le nettoyage du chantier... etc... déjà semaine 2 et 3 ont identiques !

Ce que je veux te faire comprendre c'est qu'Excel peut tout à fait faire "comme tu tentes d'organiser tes chantiers" mais tu vas vite te retrouver à parcourir soit beaucoup de fichier (si tu choisis de faire un classeur par chantier), soit beaucoup de feuilles...

Et cette méthode va vite te sembler fastidieuse et peut-être même contraignante !

Excel est un tableur, il faut donc penser sous forme de tableau !

Sheets est l'ensemble de toutes les feuilles du classeur, quel que soit leur type : feuilles de calcul, feuilles graphiques,

feuilles d'anciennes macros XL4, feuilles des anciennes boîtes de dialogue (ex-UserForm), feuilles UserForm, etc...

Worksheets est un sous-ensemble de la collection Sheets ci-dessus puisqu'il représente uniquement les feuilles de

calcul ; avantage d'utiliser Worksheets au lieu de Sheets : quand VBA doit utiliser une feuille de calcul donnée, il la

trouve plus rapidement puisqu'il la cherche seulement dans le sous-ensemble Worksheets au lieu de la chercher

dans la collection entière Sheets.

Je n'ai pas encore vu ton code VBA, mais je vais le faire maintenant. A+

Merci Dhany pour tes explication.

NCC 1701 a écrit :

Bonjour Dohvakiin


Oui ! tu vas me dire... parce que la 1ère c'est la mise en place, la 2ème c'est l'exécution des travaux, la 3ème c'est l'exécution des travaux et la 4ème c'est la finition et le nettoyage du chantier... etc... déjà semaine 2 et 3 ont identiques !

Eh bien justement non. Chaque semaine est différente. Je cherche à voir combien d'heure sont consommé pour tels ou tels tache. Je peux te joindre le fichier si cela t'intéresse, et surtout pour avoir ton avis sur la viabilité du classeur

(re)

Oui tu peux joindre le fichier... c'est toujours plus pratique pour se rendre compte...

Par contre je suis certain moi, qu'une semaine de chantier est toujours identique à une autre semaine de chantier... même si les chantiers, les équipes, les clients sont différents...

Mais je vais regarder ton fichier pour voir si je me trompe

Bonsoir,

C'est sur que toutes les semaines ont bien 7 jours de 24 heures !

C'est vrai qu'une bonne conception des tableaux Excel consiste à tout mettre dans un seul tableau...Quand c'est possible !

A+

Et voila dis moi ce que tu en pense, moi personnellement ça correspond pas mal à mes besoin.

Ca me permet aussi de démarrer doucement l'automatisation de mes classeur.

(pointage...)


Le fichier

12suivi-chantier.xlsm (41.57 Ko)

(re)

Dohvakiin a écrit :

Et voila dis moi ce que tu en pense, moi personnellement ça correspond pas mal à mes besoin.Ca me permet aussi de démarrer doucement l'automatisation de mes classeur.(pointage...)

c'est un bon début... bon travail

Maintenant je te prépare "ma vision" pour te prouver que

galopin01 a écrit :

C'est sur que toutes les semaines ont bien 7 jours de 24 heures !

que
galopin01 a écrit :

C'est vrai qu'une bonne conception des tableaux Excel consiste à tout mettre dans un seul tableau...Quand c'est possible !

et c'est toujours possible ou alors je veux un exemple

et

NCC 1701 a écrit :

qu'une semaine de chantier est toujours identique à une autre semaine de chantier... même si les chantiers, les équipes, les clients sont différents...

et tu vas voir que j'ai raison...

mais je ne suis pas fâché...

Il faut apprendre pour savoir, il faut apprendre des autres et de ses erreurs

Bonjour Dohvakiin,

Je te retourne ton fichier Excel modifié :

Attention : c'est surtout une optimisation du code VBA ; comme je ne suis pas sûr

de ce que tu voulais, vérifie bien tout, puis dis-moi ce que tu en penses.

Cordialement

Salut Dhany,

J'ai regardé tes modif et je me suis rendu compte qu'il y avait un bug s'il ont créer plusieurs feuilles successives.

J'ai corrigé le problème en intégrant des variables.

Il faut encore que j'intègre tes modification et ça devrait être bon.

Je te joint mon Fichier, il me reste aussi à gérer le changement d'année.

10suivi-chantier.xlsm (44.36 Ko)

Bonjour Dohvakiin,

Quelques remarques sur ton propre code :

1) Tu as mis : Dim Depart As Integer puis : Depart = Range("E28") mais ensuite,

tu n'as pas utilisé Depart => j'ai supprimé cette variable inutile.

2) Tu as mis : Sheets(1).Move After:=Sheets(4) puis Sheets(4).Select

or suite au déplacement de la feuille 1 en position 4, on est déjà

sur la feuille 4 => la 2ème instruction Sheets(4).Select est inutile.

3) La 2ème ligne de code suivante est le « résumé » de la 1ère :

  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  Selection.PasteSpecial Paste:=xlPasteValues

on peut abréger ainsi car les 3 valeurs de droite qui suivent sont les valeurs par défaut :

ne pas faire d'opération (autre que le coller) ; sauter les blancs, pas de transposition

4) Tu as beaucoup d'instructions qui peuvent se faire sans .Select ; exemple :

Range("G7:AL22").Select puis Selection.ClearContents peuvent être unis :

Range("G7:AL22").ClearContents ; équivalent : [G7:AL22].ClearContents

5) Toujours en évitant de mettre des .Select inutiles, ça te permet aussi

d'éviter de passer trop souvent d'une feuille à une autre ; exemple :

toutes les instructions qui suivent :

  Sheets(4).Select
  Range("AG1").Select
  Selection.Copy
  Sheets(2).Select
  Range("E29").Select
  Selection.PasteSpecial Paste:=xlPasteValues

peuvent être résumé à :

  [Info!E29] = Worksheets(4).[AG1]

(et de plus, le collage spécial en valeur était ici inutile)

Pour le reste, je te laisse regarder mon code VBA.

Tu pourras aussi voir que sur la feuille "Recapitulatif",

le 2ème bouton « Nouvelle Année » marche bien.

Merci de me donner ton avis.

Rechercher des sujets similaires à "adresse serie"