Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion sancerre75
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sancerre75

Guest
je souhaiterais copier un onglet dans un autre fichier excel mais je n'arrive pas à le faire. En fait mon fichier source est plein de formule et ce qui m'intéresse ce n'est que les données et le format. Quand je recopie mon onglet, les liaisons des formules sont plus bonnes et des ###### apparaissent sur toutes les lignes. Quelqu'un sait comment faire pour copier un onglet dans ma situation. Merci par avance.
 
Re : copier onglet

J'ai qq soucis... pour finir... SI personne ne s'y met, je regarde plus tard. J'ai très mal à la tête et je suis dans le brouillard...

Edit : merci Minick... Je devrais pourtant y arriver, mais je me mélange les pinceaux.

J'ai pourtant cette macro dans un classeur (qui prévoit même l'envoi par mail de ladite feuille copiée...)


La voici en attendant mieux... La partie rouge devrait pourtant faire l'affaire, non ? Que fais je qui merdouille dans l'exemple sancerre...
Il faudrait ensuite que cela supprime dans le classeur source la copie faite en attendant d'être collée dans un nouveau classeur, c'est là que je bloque et du coup, j'ai tout cassé...
 
Dernière édition:
Re : copier onglet

Le code est un peu barbare
mais dans le code tu copies d'abord la feuille source dans le meme classeur sur un nouvel onglet:
Code:
Sheets("FICHE COMMUNICATION").Select
Sheets("FICHE COMMUNICATION").Copy Before:=Sheets(8)

Puis tu fais un copier/Collage valeurs sur ce nouvel onglet:
Code:
Range("A1:AA44").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Et enfin tu copies ce nouvel onglet dans un nouveau classeur:
Code:
Sheets("FICHE COMMUNICATION (2)").Select
ActiveWorkbook.Windows(1).SelectedSheets.Copy

++
Minick
 
Re : copier onglet

Me revoici, provisoirement avec une solution qui marche, qui donc copie bien :

- la feuille 1 (renommer dans macro et revoir plages)
- dans un nouveau classeur (sans formules mais en laissant celles ci dans classeur source : voir cellule B13 dans classeur "sancerre" qui reste une formule)

Mais il faudrait :

- supprimer la feuille créée dans classeur source
- faire en sorte qu'on puisse le faire pour plusieurs feuilles ??? selon souhait de sancerre

Sancerre : si tu as plusieurs feuilles à copier, j'ai des questions (pas sûr que je puisse moi, y répondre)

- veux tu faire tout le classeur ?
- veux tu prendre chaque fois deux, trois, quatre... feuilles (noms ?)
- veux tu pouvoir choisir les feuilles ? si oui, possible, mais compliqué et surement pas moi

Je vais regarder mais plus tard la soluce (qui semble plus simple) de Minick mais comme je voulais au moins arriver à copier la feuille sans shinter les formules de la SOURCE... j'ai persévéré... ma solution est certainement pas très "propre" vu mon niveau, hihi.
 

Pièces jointes

Re : copier onglet


Super pédagogique, merci Minick de nous éclairer, j'avoue ne même plus me souvenir du comment, pourquoi de mon code, c'est te dire le brouillard.

Barbare : car créé par moi avec l'enregistreur auto... Ton tien est sûrement plus "propre"... ca fait aucun doute, vu mon niveau...

Comment ensuite supprimer la feuille provisoirement créée dans le classeur source et aussi, tant que j'y suis, revenir à la feuille 1 du classeur SOURCE ?

Si je peux abuser, Minick, je crois que je mettrais ca dans mon fichier à moi... merci et bises pour la peine



SInon, petite observation :

attention dans mon exemple sheets (8) n'existe pas dans classeur sancerre... donc ca va bugger.

Faut vraiment que je regarde à tête reposée.
 
Dernière édition:
Re : copier onglet

enfait j'ai mon fichier source avec plusieurs onglets. Dans ce fichier j'ai différents onglets qui me servent de bilan. Je veux sortir ces bilans pour pouvoir créer un fichier seul bilan pour pouvoir l'envoyer sans le reste du fichier source.
 
Re : copier onglet

L'envoyer, par mail ?

As tu outlook ?

Si oui à ces deux questions, utilise ma macro MACRO MAIL dans mon précédent post... Elle marche d'enfer : bon sur un seul onglet, il faut trouver comment faire pour plusieurs, mais tu peux sans doute trouver.

Je résume :

Dans mon fichier ARCHIVES HISTORIQUE, j'ai plusieurs onglets, dont l'onglet FICHE COMMUNICATION.

Cet onglet (et seulement celui-là, donc dans ton cas, plusieurs autres), je l'envoie par mail à qqun... Ca fait donc une copie de cet onglet dans le même classeur, ca ouvre un nouveau classeur, ca y copie l'onglet en question, ca copie/colle valeur spécial... et j'ai un bouton dans le classeur source qui fait tout ca : copie/collage spécial, ouverture nouveau classeur et envoi du mail (j'ai plus qu'à mettre le destinataire).

Voilà... Je pars faire les courses, mais j'ai la tête qui tourne, je crois que la grippe, ou un vilain rhume s'installe.

A plussssssssssss
 
Re : copier onglet

Re,

J'aurai fais quelque chose dans ce gout la (j'ai supposer que l'on envoie par mail la feuille active):
Code:
Option Explicit

Sub MacroMail()
    Dim AccuseReception As Boolean
    Dim Sujet As String
    Dim ShtSrc As Worksheet, ShtTmp As Worksheet
    
    ' On memorise la feuille active pour plus tard
    Set ShtSrc = ActiveSheet
    
    ' on copie la feuille source (donc la feuille active) dans une nouvelle feuille en fin de fichier
    ShtSrc.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
    ' on memorise la feuille temporaire (plus facile pour la manipuler ensuite)
    Set ShtTmp = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    ' on copie/colle valeurs la plage qui nous interesse dans la feuille temporaire
    With ShtTmp.Range("A1:AA44")
        .Copy
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End With
    
    AccuseReception = True
    Sujet = "Demande de communication de boîte archives auprès ADLA"
    
    'Copie de la feuille temporaire dans un nouveau classeur
    ShtTmp.Copy
    'Eventuellement on renomme la feuille pour eviter le  (2) en fin de nom d'onglet
    ActiveSheet.Name = ShtSrc.Name
    
    ' envoi du mail et fermeture du classeur nouvellement cree (sans l'enregistrer)
    ActiveWorkbook.SendMail "", Sujet, AccuseReception
    ActiveWorkbook.Close False
    
    'suppression de la feuille temporaire (on desactive, au passage, les messages d'alerte pour ne pas a avoir a confirmer la suppression)
    Application.DisplayAlerts = False
        ShtTmp.Delete
    Application.DisplayAlerts = True
    'on reactive la feuille source
    ShtSrc.Activate
    
    'on fait un peu de menage dans la memoire
    Set ShtTmp = Nothing
    Set ShtSrc = Nothing
End Sub

Pour envoyer plusieurs onglets, pas de probleme mais comment savoir quels onglets envoyer, une liste de choix ou une liste dans une feuille?

++
Minick
 
Re : copier onglet

Re,

Merci Minick, dès que mon neurone est rétabli en mode "compréhension", dès que j'enlève le "masque", je teste ta solution...

Au passage, j'aime beaucoup ton code "largement commenté" : c'est bien mieux pour des ignares comme moi. La preuve, je sais plus qq années après pourquoi j'ai fait telle chose ;-)
 
Re : copier onglet

Non Sancerre,

Ne te décourage pas. Copie/colle le code de Minick dans un nouveau module du fichier Sancerre par exemple.

Puis regarde chaque champ à adapter (plage, nom de feuille)... adapte donc..

Puis fais outis/macros/exécuter cette macro "macro mail"...

Et dis nous.
 
Re : copier onglet

Re,

Je viens de mettre le code de Minick (pas le mien donc) dans le fichier Sancerre dans le module 2.
J'ai affecté le bouton "minick" à cette macro et j'ai testé. Ca marche d'enfer.

Essaie Sancerre. Tu seras conquis. Du beau boulot, j'adopte. Pour moi, c'est donc totalement un succès.

Juste un truc : comment faire pour que les boutons de macro n'apparaissent pas dans la feuille copiée ? Juste effacer la zone dans la macro ?

Reste à finir de satisfaire Sancerre :

- pour envoyer plusieurs onglets...

Il faut, Sancerre que tu répondes à notre question (je l'avais mise plus haut/bas) : veux tu une liste des onglets pour choisir ou bien veux tu envoyer toujours les mêmes (et donc peut on les nommer dans la macro ?)..

Ce n'est pas moi bien sûr qui saurais faire, vu mon état, vu mon niveau, mais bon je m'investis pour aider Minick qui trime. Merci encore.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
43
Affichages
882
Réponses
5
Affichages
706
Réponses
10
Affichages
432
  • Question Question
Microsoft 365 Fonction SI
Réponses
23
Affichages
563
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…