Incrémenter copier et renommé la feuille

Fermé
polyn0me Messages postés 3 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 4 juillet 2014 - 3 juil. 2014 à 17:38
polyn0me Messages postés 3 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 4 juillet 2014 - 4 juil. 2014 à 17:15
Bonjour,

Je commence tout juste le VBA et je cherche à faire une macro qui me permette donc de créer une nouvelle feuille puis d'y copier un tableau tout en incrémentant certaines cases et de renommer la page comme l'une des cellules incrémentée..


en gros 4 étape

1) nouvelle page

2) copier coller un certain nombre de case dans cette nouvelle page

3) faire en sorte que certaines cases soient incrémentées en même temps (exemple passer de la semaine 20 à 21)

4) renommer la page grâce à cette nouvelle valeur de cellule.

(j'espère que c'est plus clair avec ça^^)

j'ai des morceaux de codes qui marchent (vive google) mais dès que je les assemble j'ai plein d'erreurs que je ne comprend pas (telle la 1004) je suppose que ça provient du fait que la copie se fasse en même temps que le renommage (il existe ce mot?^^)

voici mon point de départ : cela permet de créer une nouvelle page et de copier mes cellules

Sub incrementation()

Range("A1:U40").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste

End Sub

voila^^ si vous avez des idées, des conseils^^

Merci beaucoup

JF
A voir également:

2 réponses

via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
3 juil. 2014 à 17:53
Bonjour

Pour incrementer la cellule B2 :
ActiveSheet.Range("B2") = ActiveSheet.Range("B2") + 1

Pour renomemr la feuille selon valeur en B2
ActiveSheet.Name = ActiveSheet.Range("B2")

Cdlmnt
0
polyn0me Messages postés 3 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 4 juillet 2014
4 juil. 2014 à 09:43
Bonjour,

oui j'avais bien ces lignes de codes la mais le problème est qu'à la secondes page le programme plante.


En effet je voudrais faire une première page qui serait en quelque sorte l'interface utilisateur ou tous les calculs de données, entrées dans les différents tableaux des pages suivantes, s'y retrouverait, et y compris un bouton permettant de créer une nouvelle page qui représenterai une nouvelle semaine

Je pense qu'il faudrait qu'il faudrait que le programme prenne en compte la dernière page créée pour faire cela et non l' "ActiveSheet" et c'est ça que je n'arrive pas à faire
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
4 juil. 2014 à 11:56
Bonjour

Essaie alors ainsi :

Sub incrementation()
'selection de la 1ere feuille
Sheets(1).Select
'selection de la plage à copier (ces 2 lignes sont necessaires; ne peuvent être regroupées en une seule)
Range("A1:U40").Select
Selection.Copy
'creation de nouvelle feuille en dernier et collage
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
'incrementaion de B1 à partir de B1 de feuille précédente
Sheets(Sheets.Count).Range("B1") = Sheets(Sheets.Count - 1).Range("B1") + 1
'renommer nouvelle feuille d'apres sa valeur en B1
Sheets(Sheets.Count).Name = Sheets(Sheets.Count).Range("B1")

End Sub

Cdlmnt
0
polyn0me Messages postés 3 Date d'inscription jeudi 3 juillet 2014 Statut Membre Dernière intervention 4 juillet 2014
4 juil. 2014 à 17:15
ha merci c'est génial^^

donc mon erreur était qu'il fallait passer par Sheets(1).Select et non pas par ActiveSheet si je comprend bien

j'aime bien l'incrémentation en fonction de la précédente aussi ça peut m'être utile

merci beaucoup !

cordialement

JF
0