Activation d'une feuille créer en VBA

Michael78

XLDnaute Nouveau
Bonjour,

Comme beaucoup... j'ai une question...
Via un code VBA je crée une nouvelle feuille, la renomme via une InputBox, puis classe mes feuilles par ordre alphabétique... jusque là tout va bien.

Par contre, ma feuille active devient la dernière feuille du classeur (la plus à droite, la dernière par ordre alphabétique), or je souhaite que ma feuille active soit... celle que je viens de créer.... est là... je galère. je vous met la macro pour voir si une bon âme....

Merci d'avance!!


Sub Nouvel_agent()

' Copie de la feuille vierge

Sheets("Feuille vierge").Visible = True
Sheets("Feuille vierge").Select
Sheets("Feuille vierge").Copy after:=Sheets(3)
Sheets("Feuille vierge (2)").Select
Sheets("Feuille vierge").Visible = False


' Renommer la feuille créée

nom = UCase(InputBox("nom du nouvel agent?"))
If nom <> "" Then ActiveSheet.Name = nom


' Classement des feuilles


'Updateby20140624
Dim xResult As VbMsgBoxResult
xTitleId = "KutoolsforExcel"
xResult = MsgBox("Classement de la feuille dans l'ordre alphabétique" & Chr(10), vbOKOnly + vbQuestion + vbDefaultButton1, xTitleId)
For i = 1 To Application.Sheets.Count
For j = 1 To Application.Sheets.Count - 1
If xResult = vbOK Then
If UCase$(Application.Sheets(j).Name) > UCase$(Application.Sheets(j + 1).Name) Then
Sheets(j).Move after:=Sheets(j + 1)
End If

End If
Next
Next


End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour Michael78,

Une piste : Affecter à une variable la nouvelle feuille juste après l'avoir créée.
VB:
nom = UCase(InputBox("nom du nouvel agent?"))
...
If nom <> "" Then ActiveSheet.Name = nom
dim newSheet
set newSheet = ActiveSheet
...

puis à la fin de la procédure :
VB:
...
newSheet.Select
...
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou