macro nouvelle feuille

Lucho07

XLDnaute Nouveau
Bonsoir au forum,
Je crains d'en demander un peu beaucoup, mais je me lance...
Ds le fichier joint, je souhaite créer une macro (associée à un bouton) qui permettrait de créer une nouvelle feuille, à chaque clic sur ce bouton:
- en effaçant le contenu de la feuille: à savoir les cellules C6, E6, D33 et la zone A13:H31
- en effectuant le report depuis le feuillet précédent (cellule E34) vers le nouveau feuillet (Cell E33)
- en modifiant le n° du bordereau en G2
- et cerise sur le gateau je voudrais associer le nom de l'onglet au n° du bordereau en G2
- enfin faire en sorte que le bouton crée glisse à chaque création de feuille vers le dernier feuillet crée

J'ai fait un essai, grace à l'enregistreur de macro, mais le resultat est incomplet, mais n'est surtout pas à la hauteur.....
...... et comme je ne maitrise pas le VBA.....

Quelqu'un peut t'il me mettre sur la piste ?

Merci d'avance,

[file name=Rejets_modele.zip size=8981]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Rejets_modele.zip[/file]
 
Dernière édition:

Hervé

XLDnaute Barbatruc
Supporter XLD
Bonsoir lucho


en pièce jointe ton fichier modifié.

salut

le code :

Sub nouveau_bordereau()
Dim feuille As Worksheet
Dim numero As Integer


    ActiveSheet.Copy after:=Sheets(Sheets.Count)
With ActiveSheet
    numero = Mid(Sheets(.Index - 1).Name, 5) + 1
    .Name = 'Bord ' & numero
    .Range('g2') = numero
    .Range('C6,E6,A13:E31,G13:H31,D33').ClearContents
   
Set feuille = Sheets(Sheets(.Index - 1).Name)
    .Range('e33') = feuille.Range('e34')
    feuille.Shapes('Button 1').Delete
End With
End Sub
[file name=modelev2.zip size=11355]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/modelev2.zip[/file]
 

Pièces jointes

  • modelev2.zip
    11.1 KB · Affichages: 24

Hervé

XLDnaute Barbatruc
Supporter XLD
Bonjour lucho, juju, le forum

lucho, le même code commenté, afin de t'aider à décortiquer.

Sub nouveau_bordereau()
Dim feuille As Worksheet
Dim numero As Integer


    ActiveSheet.Copy after:=Sheets(Sheets.Count)
'copie la feuille active à la fin du classeur(sheets.count)
   
With ActiveSheet 'avec la feuille active, donc la copie
   
'numero= tout les caractères au delà du 5 ème caractère de la feuille précédente +1 pour l'incrémentation
    numero = Mid(Sheets(.Index - 1).Name, 5) + 1
    .Name = 'Bord ' & numero
'nom de la feuille = concatenation de 'Bord' et du numero
    .Range('g2') = numero
'place en g2 le numero
    .Range('C6,E6,A13:E31,G13:H31,D33').ClearContents
'efface les données
   
Set feuille = Sheets(Sheets(.Index - 1).Name) 'cree une variable feuille de la feuille précédente
    .Range('e33') = feuille.Range('e34')
'transfert les données entre les 2 feuilles
    feuille.Shapes('Button 1').Delete
'efface le bouton de la feuille précédente
End With
End Sub


salut
 

Discussions similaires

Statistiques des forums

Discussions
300 890
Messages
1 988 173
Membres
210 095
dernier inscrit
k-loo