waramer
Messages postés11Date d'inscriptionmercredi 11 juillet 2018StatutMembreDernière intervention19 juillet 2018
-
12 juil. 2018 à 15:54
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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....
jordane45
Messages postés37519Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 2 juin 2023341 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
waramer
Messages postés11Date d'inscriptionmercredi 11 juillet 2018StatutMembreDernière intervention19 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...
jordane45
Messages postés37519Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 2 juin 2023341 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
Messages postés11Date d'inscriptionmercredi 11 juillet 2018StatutMembreDernière intervention19 juillet 2018 13 juil. 2018 à 11:02
Oui, le message d'erreur : "L'indice n'appartient pas à la selection"
13 juil. 2018 à 10:07
Merci de ta réponse !
Cependant, Excel m'affiche un message d'erreur "objet" conçernant ma variable "sej". Je ne comprend pas pourquoi...
13 juil. 2018 à 10:51
Faudrait le message d'erreur EXACT et complet et nous indiquer à quelle ligne de code le debugueur te met la ligne en jaune.
13 juil. 2018 à 11:02
Code en jaune :