Incrémenter copier et renommé la feuille

polyn0me Messages postés 3 Statut Membre -  
polyn0me Messages postés 3 Statut Membre -
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

2 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  2. polyn0me Messages postés 3 Statut Membre
     
    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
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      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
    2. polyn0me Messages postés 3 Statut Membre
       
      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