macro nouvelle feuille

  • Initiateur de la discussion Initiateur de la discussion Lucho07
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Lucho07

Guest
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 modification par un modérateur:
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

Génial,
et surtout merci,

il ne me reste plus qu'à essayer de comprendre le code en question,
comme je l'ai dit j'ai tt à apprendre s'agissant du VBA.
Je vais essayer de décortiquer....

Merci encore
à+ :woohoo:
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
586
Réponses
7
Affichages
829
Réponses
3
Affichages
645
Retour