Je ne sais pas écrire en VBA et j’ai besoin d’une macro qui recopie la page « X » d’un classeur, la place en dernier, la renomme « Y », et si « Y » existe déjà ouvre une boite de dialogue pour le signaler .
j'espere que la macro ci dessous repondra à ta demande
Sub CopieNouvelleFeuille()
On Error GoTo Fin
Worksheets("X").Copy After:=Worksheets("X") ' copie feuille X dans une nouvelle feuille
ActiveSheet.Name = ("Y") ' renommer la nouvelle feuille
Sheets("Y").Move After:=Sheets(Sheets.Count) 'deplace la nouvelle feuille à la fin
Exit Sub
Fin: 'gestion erreur si la feuille Y existe deja
If Err = 1004 Then MsgBox " La feuille Y existe déja dans le classeur . "
'Application.DisplayAlerts = False ' pour ne pas avoir le message excel qui valide la suppression de la feuille
ActiveSheet.Delete ' en option en fonction de ton projet : suppression de la feuille qui existe deja
'Application.DisplayAlerts = True ' ! pas de false sans true
End Sub
oouuppss
excuse moi , je ne suis pas bien réveillé ce matin , ... il y avait plus simple....
Sub CopieNouvelleFeuilleV02()
On Error GoTo Fin
Worksheets("X").Copy After:=Sheets(Sheets.Count) ' copie feuille X dans une nouvelle feuille ( à la fin )
ActiveSheet.Name = ("Y") ' renommer la nouvelle feuille
Exit Sub
Fin: 'gestion erreur si la feuille Y existe deja
If Err = 1004 Then MsgBox " La feuille Y existe déja dans le classeur . "
'Application.DisplayAlerts = False ' option pour ne pas avoir le message excel qui valide la suppression de la feuille
ActiveSheet.Delete ' suppression de la feuille qui existe deja
'Application.DisplayAlerts = True ' ! pas de false sans true
End Sub