Enregistrement fichier excel - VBA

waramer Messages postés 11 Date d'inscription mercredi 11 juillet 2018 Statut Membre Dernière intervention 19 juillet 2018 - 12 juil. 2018 à 15:54
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 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 !

2 réponses

jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
12 juil. 2018 à 17:25
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

0
waramer Messages postés 11 Date d'inscription mercredi 11 juillet 2018 Statut Membre Dernière intervention 19 juillet 2018
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...
0
jordane45 Messages postés 38142 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
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.
0
waramer Messages postés 11 Date d'inscription mercredi 11 juillet 2018 Statut Membre Dernière intervention 19 juillet 2018
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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
13 juil. 2018 à 17:22
Bonjour,

Essaie en ajoutant l'extension à Base
0
Rejoignez-nous