Enregistrement fichier excel - VBA

waramer 11 Messages postés mercredi 11 juillet 2018Date d'inscription 19 juillet 2018 Dernière intervention - 12 juil. 2018 à 15:54 - Dernière réponse : cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention
- 13 juil. 2018 à 17:22
Bonjour,

Je me tourne vers vous aujourd'hui car j'ai un problème avec mon code.
En effet, je dois créer plusieurs feuille et renommer chaque première feuille de mes nouveau fichier qui correspond au nom de la 1ère feuille de mon fichier de base.
Sub save()

Dim wkb As Workbook
Set wkb = Workbooks.Add
Dim shCounter As Integer
Dim ws As Worksheet
Dim name As String
Dim MonFichier As String
MonFichier = "F:\Partages\Commun_DRH\Taux de recouvrement\Evolution\2018\" & name
Dim sej As String
Set sej = Workbooks("Base").Worksheets(1).name ' ????


For shCounter = 4 To ThisWorkbook.Sheets.Count 'Feuille 4 à fin
name = ThisWorkbook.Sheets(3).Range("E" & shCounter).Value ' Prend les valeurs colonne E sheet 3

If MonFichier = "" Then
'do nothing
Else: wkb.SaveAs Filename:="F:\Partages\Commun_DRH\Taux de recouvrement\Evolution\2018\" & name 'ajoute fichier nom feuille
Workbooks.Open MonFichier & name(".xls") 'ouvrir mon fichier venant d'être créer
Worksheets(1).name = sej 'Copie le nom de la sheet 1 de l'ancien classeur "base" dans le nouveau


End If

Next shCounter



End Sub


Je retrouve beaucoup de problème avec ma variable appelé "Sej". Sej devrait correspondre au nom de la 1ère feuille de mon fichier "base".
De plus,

Workbooks.Open MonFichier & name(".xls") 'ouvrir mon fichier venant d'être créer
Worksheets(1).name = sej 'Copie le nom de la sheet 1 de l'ancien classeur "base" dans le nouveau


je ne suis pas du tout sur de ce code, je le trouve trop encombrant pour ce que je demande à Excel de faire....

Merci pour votre aide,

Très cordialement !
Afficher la suite 

Votre réponse

5 réponses

jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 septembre 2018 Dernière intervention - 12 juil. 2018 à 17:25
0
Merci
Bonjour,

Ce que tu ne nous dis pas... c'est que quand tu lances ton script ça te met des erreurs.....
Il aurait fallut nous les donner...

Sachant que si tu avais exécuté ton code en mode pas à pas tu aurais vu différents soucis.
Sub save()
    Dim wkb As Workbook
    Dim shCounter As Integer
    Dim MonFichier As String
    Dim name As String
    Dim sej As String
    
    sej = Workbooks("Base").Worksheets(1).name ' sans le SET ça marche mieux
        
    Set wkb = Workbooks.Add ' Ajout d'un nouveau classeur
        
    For shCounter = 4 To ThisWorkbook.Sheets.Count  'Feuille 4 à fin
        name = ThisWorkbook.Sheets(3).Range("E" & shCounter).Value  ' Prend les valeurs colonne E sheet 3
        If name <> "" Then
            MonFichier = "F:\Partages\Commun_DRH\Taux de recouvrement\Evolution\2018\" & name
            wkb.SaveAs Filename:=MonFichier 'ajoute fichier nom feuille
            Worksheets(1).name = sej  'Copie le nom de la sheet 1 de l'ancien classeur "base" dans le nouveau
        End If
    Next

End Sub

waramer 11 Messages postés mercredi 11 juillet 2018Date d'inscription 19 juillet 2018 Dernière intervention - 13 juil. 2018 à 10:07
Bonjour Jordane,

Merci de ta réponse !
Cependant, Excel m'affiche un message d'erreur "objet" conçernant ma variable "sej". Je ne comprend pas pourquoi...
jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 20 septembre 2018 Dernière intervention - 13 juil. 2018 à 10:51
hummm.....
Faudrait le message d'erreur EXACT et complet et nous indiquer à quelle ligne de code le debugueur te met la ligne en jaune.
waramer 11 Messages postés mercredi 11 juillet 2018Date d'inscription 19 juillet 2018 Dernière intervention - 13 juil. 2018 à 11:02
Oui, le message d'erreur : "L'indice n'appartient pas à la selection"

Code en jaune :
sej = Workbooks("Base").Worksheets(1).name
Commenter la réponse de jordane45
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 13 juil. 2018 à 17:22
0
Merci
Bonjour,

Essaie en ajoutant l'extension à Base
Commenter la réponse de cs_MPi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.