Erreur 1004 VBA - Nombre de lignes

Bonjour à tous,

Je rencontre un petit soucis avec un code VBA. Ce dernier me permet de traiter une extraction qu'un collègue réalise sous la forme d'un simple tableur Excel et de répartir les données dans un nouveau classeur avec trois feuilles (pour savoir quelles lignes j'ai besoin d'analyser et celles qui n'ont pas été modifiées sur le dernier trimestre/semestre...).

Assez brièvement, voici comment cela fonctionne :

  • La macro ouvre l'extraction du collègue et transfère les données sur ma feuille F_TEC ;
  • J'utilise ensuite des boucles sur cette feuille afin de répartir mes données entre trois feuilles F_PAAA, F_PANC et F_PANM ;
  • Je crée un nouveau classeur dans lequel j'aimerais copier mes feuilles F_PAAA, F_PANC et F_PANM

Or, lors de cette dernière étape, j'ai le message d'erreur suivant :

"Erreur d'exécution '1004': Excel ne parvient pas à 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".

Voici l'extrait de la macro en question (le bug arrive à la ligne commençant par F8PANM.Copy) :

Workbooks.Add
Fichier_données_traitées = ActiveWorkbook.Name
Workbooks(Fichier_traitement).Activate
F_PANM.Copy Before:=Workbooks(Fichier_données_traitées).Sheets(1)
F_PANC.Copy Before:=Workbooks(Fichier_données_traitées).Sheets(1)
F_PAAA.Copy Before:=Workbooks(Fichier_données_traitées).Sheets(1)

L'erreur semble provenir du fait que le nouveau classeur soit en format .xls et limité en nombre de lignes. Du coup, je me demandais s'il existe une solution pour que, quand je crée mon nouveau classeur, celui-ci soit directement en .xlsx et accepte plus de lignes. Si vous avez d'autres solutions, je suis preneur aussi.

J'ai essayé de regarder sur internet, mais n'ai pas trouvé la réponse...

Merci d'avance à ceux qui prendront le temps de m'aider.

Bonne journée,

Sharney

PS : Au vu des données confidentielles que peut contenir ce fichier, je ne peux malheureusement vous le fournir.

Bonjour,

à tester

Workbooks.Add
Fichier_données_traitées = ActiveWorkbook.Name & "x"
Workbook.SaveAs fichier_données_traitées, 51
Workbooks(Fichier_traitement).Activate
F_PANM.Copy Before:=Workbooks(Fichier_données_traitées).Sheets(1)
F_PANC.Copy Before:=Workbooks(Fichier_données_traitées).Sheets(1)
F_PAAA.Copy Before:=Workbooks(Fichier_données_traitées).Sheets(1)

Bonjour h2so4,

Merci d'être encore là pour aider les personnes.

Malheureusement, le code ne fonctionne pas. Je suis en train de voir, apparemment ce serait la ligne de SaveAs qui ne fonctionne pas.

Je regarde plus précisément.

Bonne journée


Re-bonjour,

J'ai aperçu la lumière au bout du tunnel hier soir et ai testé ce matin. La solution est toute simple, il suffit d'utiliser un Array.

Voici la solution trouvée pour remplacer tout le code du message précédent :

Sheets(Array("PA à analyser","PA à ne pas compter","PA non modifiés")).Copy
Rechercher des sujets similaires à "erreur 1004 vba nombre lignes"