copier onglet

sancerre75

XLDnaute Nouveau
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.
 

Minick

XLDnaute Impliqué
Re : copier onglet

Avec le vaccin pour la suppression des boutons

Code:
Option Explicit

Sub MacroMail()
    Dim AccuseReception As Boolean
    Dim Sujet As String
    Dim ShtSrc As Worksheet, ShtTmp As Worksheet
    Dim Ctrl As Shape
    
    ' 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
    
    'Suppresion des boutons de la feuille temporaire
    For Each Ctrl In ActiveSheet.Shapes
        If Ctrl.FormControlType = xlButtonControl Then
            Ctrl.Delete
        End If
    Next Ctrl
    
    ' 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

++
Minick
 

Brigitte

XLDnaute Barbatruc
Re : copier onglet

Merci Minick.

Sancerre, le fichier avec la macro de Minick que j'ai mis "sancerre", ne marche donc pas et te fait erreur de compilation ?

L'as tu enregistré ? Là j'avoue que je ne comprends pas, si tu as outlook, ca devrait le faire. Minick, tu as une idée ? Chez moi c nickel chrome.


Sancerre, je préfère ca : il faut que tu adaptes, encore que vu le code fait par Minick, y a pas grand chose à adapter à part la PLAGE de cellules. Regarde voir dans le code ce qui peut bugger, regarde aussi si tu l'as bien mis dans un module (et pas dans la feuille)...

Si tu fais débogage, pourrais tu nous donner ici la ligne de code qui devient jaune ? ca nous aiderait sans doute.
 
Dernière édition:

Brigitte

XLDnaute Barbatruc
Re : copier onglet

Allo les studios ? ici la loire-atlantique : ca gronde, alors je crois que je vais fermer... Je vous retrouve pour la suite de vos aventures, après cet incident climatique que j'espère de peu d'ampleur...

A plussssss les petits loups !!

Voici le fichier de Sancerre. Comme ca il est plus accessible. Faut bien que je serve à qqchse...
Euh, bon courage Minick, ca a pas l'air d'être de la tarte, notre affaire ;-) ;-)
 

Pièces jointes

  • Sancerre zippé.zip
    121.8 KB · Affichages: 43
Dernière édition:

Discussions similaires

Réponses
4
Affichages
293

Statistiques des forums

Discussions
312 107
Messages
2 085 356
Membres
102 874
dernier inscrit
Petro2611