macro pour copier un onglet en dernier et le renommer

janick

XLDnaute Occasionnel
Bonjour,

Je souhaiterais avoir une aide pour combiner ces deux macro ci joint

Merci d'avance

Sub onglet()
On Error GoTo finerreur
Sheets.Add
ActiveSheet.Select
ActiveSheet.Move After:=Worksheets(Worksheets.Count)
ActiveSheet.Select
Nouveaunom = Application.InputBox("Entrer le nouveau nom", "Renommer un onglet")
ActiveSheet.Name = Nouveaunom
GoTo Fin
finerreur: 'Renvoi ici si l'onglet est inexistant
MsgBox "Nom de feuille déjà existante !" 'Message si la feuille déjà existante
Application.DisplayAlerts = False
ActiveSheet.Delete
Fin:
End Sub

Sub copier()

Sheets("1er tri").Select
Sheets("1er tri").Copy After:=Sheets(7)
Sheets("1er tri (2)").Select
Sheets("1er tri (2)").Name = "jaja" ' ou un autre nom au choix
Range("C81").Select
End Sub
 

wilfried_42

XLDnaute Barbatruc
Re : macro pour copier un onglet en dernier et le renommer

Bonjour jannick

Evitons les on error goto, il sont toujours delicats à gerer

On teste deja si le nom exite

For i = i to sheets.count
if sheets(i).name = nouveaunom then
msgbox "Le nom existe deja"
exit sub
end if
next i

ensuite comme le nom n'exite pas,

Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = nouveaunom
Sheets("nomdelafeuilleàcopier").Cells.Copy Destination:=Sheets(Sheets.Count).Range("A1")
 

janick

XLDnaute Occasionnel
Re : macro pour copier un onglet en dernier et le renommer

Bonjour wilfried_42,

Déja merci mais comme je ne suis pas tres calé je n'arive pas a faire fonctionner cette suite d'instructions.
ci joint pour contrôle
merci

Sub copier()

For i = i To Sheets.Count
If Sheets(i).Name = nouveaunom Then
MsgBox "Le nom existe deja"
Exit Sub
End If
Next i

'ensuite comme le nom n'exite pas,

Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = nouveaunom
Sheets("nomdelafeuilleàcopier").Cells.Copy Destination:=Sheets(Sheets.Count).Range("A1")

End Sub
 

wilfried_42

XLDnaute Barbatruc
Re : macro pour copier un onglet en dernier et le renommer

re:

je precise :
Code:
Sheets("[COLOR="Red"]nomdelafeuilleàcopier[/COLOR]").Cells.Copy
Destination:=Sheets(Sheets.Count).Range("A1")

en rouge, tu dois mettre le nom de la feuille à copier

si tu ne la connais pas : en bleu

Code:
[COLOR="Blue"]anciennom = activesheet.name[/COLOR]
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = nouveaunom
Sheets([COLOR="Blue"]anciennom[/COLOR]).Cells.Copy Destination:=Sheets(Sheets.Count).Range("A1")
 

Discussions similaires

Réponses
3
Affichages
567

Statistiques des forums

Discussions
312 078
Messages
2 085 117
Membres
102 783
dernier inscrit
Basoje