Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives


 
 
LinkBack Outils de la discussion
Vieux 17/02/2005, 14h42   #1 (permalink)
VBA
Guest
 
Messages: n/a
Par défaut Macro nommer onglet selon liste (mot composé)

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
Fichiers attachés
Type de fichier : zip Copiefeuillesv2.zip (11,5 Ko, 6 affichages)
 
Vieux 17/02/2005, 17h29   #2 (permalink)
sousou
Guest
 
Messages: n/a
Par défaut Re: Macro nommer onglet selon liste (mot composé)

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
 
ANNONCES
 

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 14h17.


(C) 2006 Excel Downloads