Macro nommer onglet selon liste (mot composé)

  • Initiateur de la discussion Initiateur de la discussion VBA
  • 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 !

V

VBA

Guest
Bonjour à tous,



J'ai la macro ci-jointe (que Stéphane du forum m'a aidé à monter - encore merci) et elle doit créer onglet reprenant le terme "somme" de lafeuille source "sommes" et y ajouter un nom extrait d'une liste située ds la "feuil3".

Mais la macro ne veut pas créer les onglets suivant le nom composé que j'ai défini (feuille "somme"&nms). Elle créé juste les feuilles en les numérotant.

Je n'arrive pas à trouver de solution.

Si quelqu'un peut m'aider ce serait super.

Merci


voir texte macro ci-après :





Sub test()

On Error Resume Next 'continue l'execution en cas d'erreur.
Application.DisplayAlerts = False 'desactive les alertes d'Excel.
Application.ScreenUpdating = False 'desactive le rafraechissement de l 'ecran.
Dim nmS As String, nmB As String 'variables pour les noms des feuilles.
Set wsh_somme = Worksheets("somme") 'feuille memorisee dans une variable objet.
Set wsh_bilan = Worksheets("bilan") 'feuille memorisee dans une variable objet.
Set wsh_data = Worksheets("Feuil3") 'feuille memorisee dans une variable objet.

For i = 2 To wsh_data.[A65536].End(xlUp).Row 'de la 2nde cellule de la fin de la colonne.
nm = wsh_data.Cells(i, 1) 'nom de la personne concernee.
nmS = "somme " & nm 'creation du nom d'une feuille somme.
nmB = "bilan " & nm 'creation du nom d'une feuille bilan.

'si la feuille existe, rien n'est fait, sinon la feuille est cree en dern.Position

If Not SheetExists(ThisWorkbook.Name, nmS) Then
wsh_somme.Copy after:=Sheets(Sheets.Count)

Else


'renommage de la feuille cree, elle est supprimee si une erreur surgit.
If SheetExists(ThisWorkbook.Name, "somme " & nm) Then
ActiveSheet.Name = nmS: [A1] = "somme " & nm

End If
End If


If Not SheetExists(ThisWorkbook.Name, nmB) Then
wsh_bilan.Copy after:=Sheets(Sheets.Count)

Else

If SheetExists(ThisWorkbook.Name, "bilan " & nm) Then
ActiveSheet.Name = nmB: [A1] = "bilan " & nm

End If

End If

Next i

End Sub

'################
'# verifie qu'un onglet existe dans un classeur
'# usage : If SheetExists(strSheetName) Then ...

Public Function SheetExists(ByVal strBookName As String, ByVal strSheetName As String) As Boolean
Dim strTemp As String

On Error GoTo Problem
strTemp = Workbooks(strBookName).Sheets(strSheetName).Name
SheetExists = True
Exit Function
Problem:
SheetExists = False
End Function



vba
 

Pièces jointes

Bonjour VBA

Voici le début de ton code simplifié
J'ai pas tout compris la manière ton tu voulais que cela fonctionne !

Sub test()

On Error Resume Next 'continue l'execution en cas d'erreur.
Application.DisplayAlerts = False 'desactive les alertes d'Excel.
Application.ScreenUpdating = False 'desactive le rafraechissement de l 'ecran.
Dim nmS As String, nmB As String 'variables pour les noms des feuilles.
Set wsh_somme = Worksheets("somme") 'feuille memorisee dans une variable objet.
Set wsh_bilan = Worksheets("bilan") 'feuille memorisee dans une variable objet.
Set wsh_data = Worksheets("Feuil3") 'feuille memorisee dans une variable objet.

For i = 2 To wsh_data.[A65536].End(xlUp).Row 'de la 2nde cellule de la fin de la colonne.
nm = wsh_data.Cells(i, 1) 'nom de la personne concernee.
nmS = "somme " & nm 'creation du nom d'une feuille somme.
nmB = "bilan " & nm 'creation du nom d'une feuille bilan.

'si la feuille existe, rien n'est fait, sinon la feuille est cree en dern.Position

If Not SheetExists(ThisWorkbook.Name, nmS) Then
wsh_somme.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = nmS
End If


If Not SheetExists(ThisWorkbook.Name, nmB) Then
wsh_bilan.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = nmB

End If
Next i

End Sub
 
- 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

Retour