Bonjour à tous,
Suite à la réalisation d'une macro, je me retrouve face à une problématique que je n'arrive à résoudre. Ainsi je me permets de solliciter l'aide de la communauté pour y répondre et trouver une solution.
Voici le code concerné:
Le fichier excel se compose de trois onglets:
La macro a pour objectif de créer un fichier avec un onglet par personnes évaluées (formulaire rempli avec les données de l'onglet "Report").
Le problème:
Lorsque j’exécute la macro, une erreur apparaît :
" Erreur d'exécution 1004 : Excel ne parvient par à insérer les feuilles dans le classeur de destination car il contient moins de lignes et de colonnes que le classeur source. Pour déplacer ou copier les données vers le classeur de destination, vous pouvez les sélectionner, puis utiliser les commandes copier et coller pour les insérer dans les feuilles d'un autre classeur."
D'autre part, le code suivant est mis en surbrillance:
Ce que je comprends c'est que le format n'est pas le bon et qu'il peut s'agir d'une erreur de compatibilité.
J'ai essayé de changer le format du nouveau classeur, mais sans succès. Je n'arrive vraiment pas à résoudre ce problème même avec l'aide de google.
Merci d'avance pour votre aide.
Victor
Suite à la réalisation d'une macro, je me retrouve face à une problématique que je n'arrive à résoudre. Ainsi je me permets de solliciter l'aide de la communauté pour y répondre et trouver une solution.
Voici le code concerné:
Code:
Sub Export_Equipe()
Dim NewBook As Workbook
Dim Template_Tal As String
Dim Team As String
Dim Template As String
Dim Ligne As Integer
Dim Path As String
Dim File As Variant
Application.ScreenUpdating = False
'Calage nom du fichier actuel
Template_Tal = ActiveWorkbook.Name
'Recopie sur nouveau fichier
Set NewBook = Workbooks.Add
NewBook.SaveAs FileFormat:=xlExcel8
Ligne = 4
'Boucle sur la liste des membres de l'equipe
'### Attention liste temporaire constituee sur onglet Setup ###
Workbooks(Template_Tal).Activate
Worksheets("Export").Activate
'### Attention calage en dur de la colonne F ###
Do While Range("C" & Ligne).Value <> ""
Template = Range("C" & Ligne).Value
'Preparation de l'onglet individuel
Range("C_ACTEUR").Value = Template
Calculate
'Transfert sur nouveau fichier
ThisWorkbook.Sheets("Template_form").Copy Before:=NewBook.Sheets(1)
'Recopie en valeur sur un nouveau formulaire
Range("A1:V63").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Range("P30").Select
Formule = "=IF(R27=""High"",""Yes"",""No"")"
ActiveCell.Formula = Formule
'Calage nom onglet pour l'individu
NewBook.Activate
NewBook.Sheets(1).Name = Template
'Fin de boucle
Workbooks(Template_Tal).Activate
Worksheets("Export").Activate
Ligne = Ligne + 1
Loop
'Purge onglet non requis
NewBook.Activate
Ligne = ActiveWorkbook.Sheets.Count
If Ligne > 1 Then
Application.DisplayAlerts = False
NewBook.Sheets(Ligne).Delete
Application.DisplayAlerts = True
Else
Application.ScreenUpdating = True
MsgBox ("None")
Application.ScreenUpdating = False
End If
'Sauvegarde et fermeture nouveau fichier
Path = CreateObject("WScript.Shell").SpecialFolders("Desk top") & "\" & ActiveWorkbook.Name
File = Application.GetSaveAsFilename(Thepath, "MicrosoftExcel,*.xls")
If File = False Then Exit Sub
Application.DisplayAlerts = False
NewBook.SaveAs File
Application.DisplayAlerts = True
NewBook.Close
Workbooks(Template_Tal).Activate
Worksheets("Export").Activate
Range("C4").Activate
'Message de confirmation
Application.ScreenUpdating = True
MsgBox (" - File available - ")
End Sub
Le fichier excel se compose de trois onglets:
- Template_form = formulaire d'évaluation
- Report = onglet de base de données qui alimente Template_form pour certaines informations
- Export = onglet d'export, où l'utilisateur copie les noms des personne évaluées et lance la macro
La macro a pour objectif de créer un fichier avec un onglet par personnes évaluées (formulaire rempli avec les données de l'onglet "Report").
Le problème:
Lorsque j’exécute la macro, une erreur apparaît :
" Erreur d'exécution 1004 : Excel ne parvient par à insérer les feuilles dans le classeur de destination car il contient moins de lignes et de colonnes que le classeur source. Pour déplacer ou copier les données vers le classeur de destination, vous pouvez les sélectionner, puis utiliser les commandes copier et coller pour les insérer dans les feuilles d'un autre classeur."
D'autre part, le code suivant est mis en surbrillance:
Code:
'Transfert sur nouveau fichier
ThisWorkbook.Sheets("Template_form").Copy Before:=NewBook.Sheets(1)
Ce que je comprends c'est que le format n'est pas le bon et qu'il peut s'agir d'une erreur de compatibilité.
J'ai essayé de changer le format du nouveau classeur, mais sans succès. Je n'arrive vraiment pas à résoudre ce problème même avec l'aide de google.
Merci d'avance pour votre aide.
Victor
Pièces jointes
Dernière modification par un modérateur: