Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

classement onglets

3 réponses
Avatar
steph b
Bonjour j ai un fichier excel avec plusieurs onglets
parmi ces onglets certains commence par le nom XD_xxxx.
j'aimerais qu'une macro me creer une feuille nommé XD_yyy mais me l aplace
a la fin de celle qui sont nommées XD_xxxx

bien évidemment xxx et yyy sont des noms variables.

merci

3 réponses

Avatar
LSteph
Bonjour,

Pas évident d'interprèter ta question:

Cas1
on peut pas deviner quel "nom variable" va être choisi par la macro
sauf si tu l'as précisé d'avance dans le code
donc tu mets tes nouveaux noms variables dans une liste ou un array
selon l'ordre voulu et tu boucle dessus
en le mettant after:=sheets(sheets.count)
ca devrait le faire

Cas2 On veut juste trier les feuilles par ordre alpha

Sub TriNomsOnglets()
Dim i As Integer, j As Integer
For i = 1 To Sheets.Count
For j = 1 To i - 1
If UCase(Sheets(i).Name) < UCase(Sheets(j).Name) Then
Sheets(i).Move Before:=Sheets(j)
Exit For
End If
Next j
Next i
End Sub

'--
'LSteph

On 29 avr, 10:08, "steph b" wrote:
Bonjour j ai un fichier excel avec plusieurs onglets
parmi ces onglets certains commence par le nom XD_xxxx.
j'aimerais qu'une macro me creer une feuille nommé XD_yyy  mais me l aplace
a la fin de celle qui sont nommées XD_xxxx

bien évidemment xxx et yyy sont des noms variables.

merci
Avatar
steph b
j esssaie detre plus clair donc...

dans mon fichier j ai un emultitude feuille et j'aimerais connaitre le moyen
de connaitre le numero de la feuille ( la derniere qui porte le nom XD_ )


"LSteph" a écrit dans le message de news:

Bonjour,

Pas évident d'interprèter ta question:

Cas1
on peut pas deviner quel "nom variable" va être choisi par la macro
sauf si tu l'as précisé d'avance dans le code
donc tu mets tes nouveaux noms variables dans une liste ou un array
selon l'ordre voulu et tu boucle dessus
en le mettant after:=sheets(sheets.count)
ca devrait le faire

Cas2 On veut juste trier les feuilles par ordre alpha

Sub TriNomsOnglets()
Dim i As Integer, j As Integer
For i = 1 To Sheets.Count
For j = 1 To i - 1
If UCase(Sheets(i).Name) < UCase(Sheets(j).Name) Then
Sheets(i).Move Before:=Sheets(j)
Exit For
End If
Next j
Next i
End Sub

'--
'LSteph

On 29 avr, 10:08, "steph b" wrote:
Bonjour j ai un fichier excel avec plusieurs onglets
parmi ces onglets certains commence par le nom XD_xxxx.
j'aimerais qu'une macro me creer une feuille nommé XD_yyy mais me l aplace
a la fin de celle qui sont nommées XD_xxxx

bien évidemment xxx et yyy sont des noms variables.

merci
Avatar
MichD
Bonjour,

Comme ceci :

'------------------------------------
Sub test()
Dim X As Integer, A As Integer, LastNameSheet As String
X = Sheets.Count
For A = X To 1 Step -1
If Left(UCase(Sheets(A).Name), 3) = "XD_" Then
LastNameSheet = Sheets(A).Name
Exit For
End If
Next
MsgBox LastNameSheet
End Sub
'------------------------------------


MichD
--------------------------------------------