Je copie de nombreux classeurs dans un classeur, mais comme toutes les feuilles de calcul du même classeur portent le même nom, et chaque classeur possède le même nom. nom du fichier sur B1, donc je veux nommer la nouvelle feuille comme « violation (nom) »Copier la feuille de calcul dans un nouveau classeur et modifier le nom de la feuille de calcul en nom de composition
C'est le code que j'ai pour cette partie
Dim wc As Worksheet
Dim ws As Worksheet
Dim SheetNewName As String
Dim Parname As String
Dim SheetName As String
Select Case wc.Cells(n, 1)
Case "PK"
SheetName = "Peak"
Case "Sfactor"
SheetName = "SF Supply"
Case Else
SheetName = wc.Cells(n, 1)
End Select
Set ws = ThisWorkbook.Sheets("Sheet1")
Set wc = ActiveWorkbook.Sheets("Violations Summary")
Set Parname = wc.Range("B1")
Set SheetNewName = SheetName & "(" & Parname & ")"
ActiveWorkbook.Sheets(SheetName).Copy After:=ThisWorkbook.Sheets(1)
Set lastsheet = ThisWorkbook.Sheets(ThisWorkbook.Sheets.count).Select
lastsheet.Name = SheetNewName
je reçois l'erreur en essayant de changer le nom de la nouvelle feuille sur le nouveau classeur, l'erreur est
Erreur d'exécution '13': incompatibilité de type
Sur ces lignes
Set SheetNewName = SheetName & "(" & Parname & ")"
Mais si je modifie le code pour être comme ces
Set Parname = wc.Range("B1")
Set SheetNewName = SheetName & "(" & Parname & ")"
ActiveWorkbook.Sheets(SheetName).Copy After:=ThisWorkbook.Sheets(1)
Set lastsheet = ThisWorkbook.Sheets(1).Select
lastsheet.Name = Parname
Il copie la feuille, mais ne pas changer le nom et obtenir l'erreur
Erreur d'exécution '1004': définie par l'application ou une erreur définie objet-
Une question est-elle posée? SheetName n'existe pas, donc vous ne pouvez pas lui associer SheetNewName & ... à moins qu'il n'apparaisse ailleurs dans le code auparavant? – QHarr
Vouliez-vous utiliser une partie de la chaîne de wc.Name? – QHarr
oui sheetname existe, idint mettre le code pour elle Select Case wc.Cells (n, 1) Case "PK" SheetName = "Peak" Case "SFactor" SheetName = "SF Supply" Case Else SheetName = wc.Cellules (n, 1) End Select – bacotico