Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
798 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel > duppliquer et renommer onglet à partir d'une liste [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel > duppliquer et renommer onglet à partir d'une liste [résolu]

n°1210663
kancele
Posté le 29-09-2005 à 11:47:17  profilanswer
 

Bonjour,
 
Je souhaite faire un questionnaire que je vais envoyer en pièce jointe par mail.
 
J'ai un onglet avec la liste des personnes "nom : liste utilisateur"
colonne 1 = utilisateur01---utilisateur75
colonne 2 = mail
colonne 3 = nom + prénom
 
J'ai le questionnaire sur un onglet "nom : utilisateur FR"
J'ai le même questionnaire traduit en anglais 'nom : utilisateur GB"
 
Je voudrais créer une macro me permettant de copier les onglet utilisateur FR et utilisateur GB dans un nouveau fichier excel qui serait enregistré dans un dossier précis sur mon pc.
 
Le fichier et les onglets devraient etre renommé :
fichier : nom prénom.xls soit (colonne 3) de l'onglet liste utilisateur
utilisateur FR = nom prénom FR
utilisateur GB = nom prénom GB
 
 
 
pour le moment je me suis occupé de tester ma macro sur l'onglet FR en tentant de le dupliquer et le renommer ! mais j'échoue !
 
 
 
 
 
voilà ce que j'ai fait :
 
Sub CreationOnglettest()
 
ActiveCell.CurrentRegion.Select
Dim tableau() As String
ReDim tableau(1 To ActiveCell.CurrentRegion.Count)
 
For ctr = 1 To ActiveCell.CurrentRegion.Count
tableau(ctr) = ActiveCell.CurrentRegion(ctr)
Next
 
For I = 1 To ActiveCell.CurrentRegion.Count
Sheets(Array("Utilisateur FR" )).Select
Sheets("Utilisateur FR" ).Activate
Sheets(Array("Utilisateur FR" )).Copy.Name = tableau(ctr)
Next
'
End Sub
 
 
 
est ce que vous pourriez me dire pourquoi ca ne marche pas ! et m'aider à finir


Message édité par kancele le 05-10-2005 à 14:07:49
mood
Publicité
Posté le 29-09-2005 à 11:47:17  profilanswer
 

n°1210832
mfauxock
Posté le 29-09-2005 à 14:57:19  profilanswer
 

je n'ai pas compris ce que tu veux faire avec utilisateur FR et GB
laquelle des deux tu copies ?
en attendant voici le code de crétion des fichier excel par uilisateur
Dim Source
Dim Cible
Dim Cll As Range
 
     
Source = ActiveWorkbook.Name
For Each Cll In Range("A1:" & Range("A65536" ).End(xlUp).Address)
 
    Workbooks.Add
    ChDir "c:\temp"
    ActiveWorkbook.SaveAs Filename:=Workbooks(Source).Sheets("liste utilisateur" ).Cells(Cll.Row, 3).Value
    Cible = ActiveWorkbook.Name
    Workbooks(Cible).ActiveSheet.Name = Workbooks(Source).Sheets("liste utilisateur" ).Cells(Cll.Row, 1).Value
 
Next

n°1210942
watashi
La démotivation : JAMAIS !
Posté le 29-09-2005 à 16:48:34  profilanswer
 

Salut Kancele,
 
J'ai regardé un peu ton probleme, donc voila un tit bout de macro qui devrait faire ce que tu veux (copier les 2 onglets dans un seul fichier excel, renomer les onglets et enregistrer le fichier avec le nom utilisateur en colone C, fermer le fichier, et continuer sur toute ta liste)
 

Code :
  1. Sub fichiers()
  2.      'Définition des variables
  3.      Dim Source As Workbook
  4.      'mets ton nom de fichier à la place de questionaire
  5.      Set Source = Workbooks("Questionaire.xls" )
  6.      Dim Nom, Ligne
  7.      Ligne = 2
  8.      'j'ai considéré que ta liste était en feuille n°1 dans la colone C avec
  9.      'en première ligne l'intitulé, et les noms ensuite sans aucun "blancs"
  10.      Nom = Source.Sheets(1).Cells(Ligne, 3).Value
  11.      'la boucle sur la liste
  12.      Do
  13.           'copier/coller des onglet dans un nouveau classeur
  14.           Source.Activate
  15.           'ici à la place de "FR" et "GB" tu mets tes noms d'onglets
  16.           Sheets(Array("FR", "GB" )).Select
  17.           Sheets("GB" ).Activate
  18.           Sheets(Array("FR", "GB" )).Copy
  19.           Application.CutCopyMode = False
  20.           'modification des noms d'onglets, sauvegarde et fermeture
  21.           With ActiveWorkbook
  22.                .Sheets(1).Name = Nom & " FR"
  23.                .Sheets(2).Name = Nom & " GB"
  24.                'Au lieu de "C:\" tu mets ton chemin
  25.                .SaveAs Filename:="C:\" & Nom & ".xls"
  26.                .Close
  27.           End With
  28.           'mise en place pour la ligne suivante
  29.           Ligne = Ligne + 1
  30.           Nom = Source.Sheets(1).Cells(Ligne, 3).Value
  31.      Loop Until Nom = ""     'La boucle s'arrette si le nom est vide
  32. End Sub


 
En ce qui concerne ta macro j'ai pas trop regardé, je suis pas douée sur les macros des autres. un autre que moi t'aidera surement à comprendre ce qui colle pas dedans, mais je crois qu'il faudrait au moins que tu dise ou elle bloque et le message que te donne excel.
 
bon courage et tiens nous au courant :)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1213439
kancele
Posté le 03-10-2005 à 11:39:50  profilanswer
 

super merci !  
 
ca marche comme ça.
en fait j'ai pas d'erreur excel, elle ne fait que dupliquer les onglets, et ne les renomme pas !  
 

n°1213636
watashi
La démotivation : JAMAIS !
Posté le 03-10-2005 à 14:43:18  profilanswer
 

Salut kancele,
 
le fait que les onglets ne se renomenaient pas vennait de ta ligne :

Code :
  1. Sheets(Array("Utilisateur FR" )).Copy.Name = tableau(ctr)


avec la copy tu peux définir la position de la feuille (before/after). mais pour changer son nom il faut le faire en un 2ème temps.

Code :
  1. Sheets(Array("Utilisateur FR" )).Copy
  2. ActiveSheet.Name = tableau(ctr)


Sinon si la macro marche tant mieux. :bounce:  
Marque résolu dans le sujet du premier post ça pourra peut-être en aider d'autres  ;)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1215501
kancele
Posté le 05-10-2005 à 14:08:00  profilanswer
 

done


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel > duppliquer et renommer onglet à partir d'une liste [résolu]

 

Sujets relatifs
[RESOLU] Informations d'execution d'un script en continuunicode, __str__, __ref__ et affichage [résolu]
[Excel VBA] Identification des cellules impactées par un recalcul[ASP.NET] - Access denied sur un site web de prod. [RÉSOLU]
Afficher un classeur excel dans une FormSélection et macro avec EXCEL
[Résolu] Expressions régulières et classes[Résolu] Dao : function replace() & access 2000
VB Excel - Renommer fichier en fonction du répertoire 
Plus de sujets relatifs à : Excel > duppliquer et renommer onglet à partir d'une liste [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR