Créer un nouveau classeur à partir d'un onglet

Ewigefrost

XLDnaute Junior
Bonjour,

tout d'abord, permettez-moi de vous dire que j'ai parcouru énormément de sujets avec un problème similaire au mien, sur ce forum et sur d'autres forums Excel, avant de poster ce message, mais aucun ne m'a permis de résoudre totalement mon problème.

J'aimerais créer une feuille dans un nouveau classeur (dans un répertoire donné) qui n'afficherait qu'une partie d'un onglet présent dans un classeur à plusieurs feuilles.

J'ai trouvé ce code sur internet, le seul qui marche totalement pour moi :

Code:
Sub ongletcopie()
Range("N2:W37").Select
Worksheets(Array("TCD ALU")).Copy
ActiveWorkbook.SaveAs "ZZZ" 
End Sub

Je ne peux pas mettre le fichier en PJ, vu qu'il y a des choses assez confidentielles dessus (je travaille sur un projet professionnel), mais l'onglet "TCD ALU" est celui que je veux reproduire dans un nouveau classeur et ZZZ est le nom (provisoire :D) du nouveau classeur.

Mais comme vous pouvez le voir, le nouveau classeur reproduit tout "TCD ALU" alors que je ne veux que la plage de cellules de N2 à W37. J'ai essayé de remplacer

Code:
Worksheets(Array("TCD ALU")).Copy

par

Code:
Worksheets(Array("TCD ALU").Range("N2:W37").Copy

mais cela ne fonctionne pas.

Donc ça c'est le premier problème à résoudre. Le second problème est de pouvoir créer le nouveau classeur sans avoir à ouvrir aucun des 2 fichiers. Est-ce possible ?

Ca doit être assez simple comme problème, mais je suis un débutant total sur VB et sur Excel, donc je compte sur votre précieuse et aimable aide pour m'en sortir !

Merci beaucoup par avance !
 

tototiti2008

XLDnaute Barbatruc
Re : Créer un nouveau classeur à partir d'un onglet

Bonjour Ewigefrost,

Essaye un truc comme ça

Code:
Sub tableaucopie()
Dim Wkb As Workbook
Set Wkb = Workbooks.Add
ThisWorkbook.Worksheets("TCD ALU").Range("N2:W37").Copy Wkb.ActiveSheet.Range("A1")
Wkb.SaveAs "ZZZ"
End Sub
 

Ewigefrost

XLDnaute Junior
Re : Créer un nouveau classeur à partir d'un onglet

Merci pour votre réponse rapide !

Ca marche bien, mais là je viens de me rendre compte d'un problème qui fait que ce que je souhaite faire est sûrement impossible (?) : le tableau contient des formules qui se servent de valeurs placées à côté de celui-ci dans le fichier original. Quand on ne garde que les cellules de N2 à W37, ces valeurs sautent et donc rien ne s'affiche dans le tableau (à part un #REF dans le titre).

Mais peut-être qu'il est possible de changer ces formules pour qu'elles viennent toujours chercher dans le fichier original ? C'est faisable ?

Merci encore.

PS : est-il possible de merger cette discussion avec ce doublon SVP ? https://www.excel-downloads.com/threads/creer-un-nouveau-classeur-a-partir-dun-onglet.178068/
 
Dernière édition:

Ewigefrost

XLDnaute Junior
Re : Créer un nouveau classeur à partir d'un onglet

Bonjour Efgé,

J'ai testé votre solution mais le problème est le même que celui décrit au message #3, càd le tableau ne contient aucune valeur car il ne trouve rien sur les cases d'à côté.

En fait la base de mon problème est que je cherche à intégrer le TCD sur Powerpoint en tant qu'objet (Insérer/Objet avec liaison), mais ça ne marche pas bien du fait que lorsque je fais ça, les valeurs à côté du TCD (qui sont ensuite utilisées par des formules dans le TCD) sont aussi incluses dans l'objet inséré, et ça je ne le veux pas.

Donc la solution à laquelle j'ai pensé et qui me fait poster sur ce forum est d'isoler le TCD pour que le PPT n'affiche que celui-ci.

Merci !
 

Efgé

XLDnaute Barbatruc
Re : Créer un nouveau classeur à partir d'un onglet

Re_Je ne comprend pas que les valeurs du TCD disparaissent après avoir écrasé les valeurs:
VB:
.UsedRange.Value = .UsedRange.Value
Un petit exemple peut être, nous, en tous cas moi, aidera à comprendre._je remet ma première proposition ici, ce sera plus simple pour tous le monde._Cordialement
 

Pièces jointes

  • Ewigefrost.xls
    19.5 KB · Affichages: 55
  • Ewigefrost.xls
    19.5 KB · Affichages: 59
  • Ewigefrost.xls
    19.5 KB · Affichages: 64

Ewigefrost

XLDnaute Junior
Re : Créer un nouveau classeur à partir d'un onglet

Re,

Je viens de retester avec ton code Efgé, et ça m'affiche ce message d'erreur :

Erreur d'exécution '1004' :
Impossible de déplacer une partie d'un rapport de tableau croisé dynamique ou d'insérer des cellules, des lignes ou des colonnes d'une feuille de calcul dans un rapport de tableau croisé dynamique. Pour insérer des cellules, des lignes ou des colonnes d'une feuille de calcul, déplacez d'abord le rapport de tableau croisé dynamique (sélectionnez le rapport de tableau croisé dynamique, puis dans l'onglet Options, groupe Actions, cliquez sur Déplacer le tableau croisé dynamique.

Je comprends pas trop ce que ça veut dire en fait ...

Ca me crée quand même un classeur, avec des valeurs dans le TCD, mais ça ne supprime pas les cases d'à côté.

Faut-il que je change quelque chose dans le code ?
 

Efgé

XLDnaute Barbatruc
Re : Créer un nouveau classeur à partir d'un onglet

Re__Il faut faire les choses dans l'ordre__J'ai commenté le code__Après, sans exemple, je ne vois plus__Cordialement
 

Pièces jointes

  • Ewigefrost.xls
    20.5 KB · Affichages: 67
  • Ewigefrost.xls
    20.5 KB · Affichages: 71
  • Ewigefrost.xls
    20.5 KB · Affichages: 72

Ewigefrost

XLDnaute Junior
Re : Créer un nouveau classeur à partir d'un onglet

Ok, merci pour ces commentaires. Voici des captures d'écran de ma feuille Excel "TCD ALU" (je ne peux vraiment pas envoyer le fichier Excel original, pas même un seul onglet, désolé. J'espère que ça suffira quand même.).

tcd1.jpg
tcd2.jpg
tcd3.jpg

Ces 3 tableaux sont cote à cote dans le fichier Excel, le premier tableau se servant d'autres feuilles dans le classeur pour afficher des valeurs, le deuxième tableau servant à afficher des valeurs "débidouillées" du premier tableau (sans décimale), et le troisième tableau servant à refaire des bidouilles concernant les dates entre autres (et ensuite à donner les valeurs nécessaires à l'élaboration des diagrammes sous le deuxième tableau).

Enfin tout ça pour dire que le deuxième tableau et les diagrammes nécessitent les tableaux d'à côté pour afficher des valeurs.

Une idée pour cette erreur ?

Erreur d'exécution '1004' :
Impossible de déplacer une partie d'un rapport de tableau croisé dynamique ou d'insérer des cellules, des lignes ou des colonnes d'une feuille de calcul dans un rapport de tableau croisé dynamique. Pour insérer des cellules, des lignes ou des colonnes d'une feuille de calcul, déplacez d'abord le rapport de tableau croisé dynamique (sélectionnez le rapport de tableau croisé dynamique, puis dans l'onglet Options, groupe Actions, cliquez sur Déplacer le tableau croisé dynamique.

Ce fichier Excel s'actualisera automatiquement d'ici quelques semaines, et je veux donc afficher un PPT qui se met à jour automatiquement et qui affiche le tableau et les diagrammes présents dans l'image TCD2.
 

Pièces jointes

  • tcd1.jpg
    tcd1.jpg
    34.9 KB · Affichages: 140
  • tcd2.jpg
    tcd2.jpg
    78.4 KB · Affichages: 117
  • tcd3.jpg
    tcd3.jpg
    46.5 KB · Affichages: 166
  • tcd3.jpg
    tcd3.jpg
    46.5 KB · Affichages: 166

Efgé

XLDnaute Barbatruc
Re : Créer un nouveau classeur à partir d'un onglet

Re_Il ne s'agit plus de créer un classeur en conservant une zone de feuille, mais de déplacer, vers une application tierce (PowerPoint) ,des données et des graphiques en conservant les liaisons_Désolé, je passe la main__Cordialement
 

Discussions similaires

Réponses
19
Affichages
520

Statistiques des forums

Discussions
312 046
Messages
2 084 850
Membres
102 686
dernier inscrit
Franck6950