Enregistrer des feuilles sans liaison, seulement les valeurs.

  • Initiateur de la discussion Initiateur de la discussion maxfli296
  • 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 !

maxfli296

XLDnaute Nouveau
Enregistrer des feuilles dans un autre classeur, seulement les valeurs.

Bonjour à tous!

Je suis un petit nouveau ici et j'ai un petit problème avec une macro.

Je veux enregistrer seulement 4 feuilles de mon classeur, dans un autre classeur qui aura pour nom, entre autre, le contenu d'une cellule qui est sur une feuille spécifique.

Tou s'enregistre très bien mais mon problème est que le nouveau classeur créé garde les liens avec mon classeur d'origine, ce que je ne veux pas.

Je veux seulement recopier les feuilles avec les valeurs qui se retrouve dans les cellules et non pas les formules et les liens avec mon autre classeur. Je veux recopier les 4 feuilles en même temps.


Voici mon code:


Option Explicit


Const Repertoire As String = "D:\"



Sub ENRFEUILLES()
'
Dim Nomfichier As String
'
' première partie du nom du fichier sans extension
Nomfichier = "CONTRAT-"

With Application


.DisplayAlerts = False

With .ThisWorkbook

Sheets(Array("Slab", "Frame", "Bon commande", "Bon livraison peinture")).Select
Sheets("Bon livraison peinture").Activate
Sheets(Array("Slab", "Frame", "Bon commande", "Bon livraison peinture")).Copy
ActiveWorkbook.SaveAs Filename:=Repertoire & Nomfichier & _
.Sheets("FORMULAIRE").Range("D8") & ".xls", _
addtomru:=True
ActiveWindow.Close
Sheets("FORMULAIRE").Select

End With

.DisplayAlerts = True
End With

End Sub




Merci beaucoup!

maxfli296🙂
 
Dernière édition:
Re : Enregistrer des feuilles sans liaison, seulement les valeurs.

Bonsoir,

Oui certainement.
Avant de te proposer quelque chose dis moi à quoi sert cette instruction --> "Sheets("Bon livraison peinture").Activate" dans ta macro ?

A te lire
 
Dernière édition:
Re : Enregistrer des feuilles sans liaison, seulement les valeurs.

Bonsoir!

L'instruction suivante:"Sheets("Bon livraison peinture").Activate"

a été mise l'a par excel quand j'ai utiliser l'enregistreur de macro.

C'est la dernière feuille qui est sélectionnée lorsque je sélectionne les 4 feuilles que je veux copier dans mon autre classeur.

maxfli296
 
Re : Enregistrer des feuilles sans liaison, seulement les valeurs.

OK.
Supprime cette instruction et aussi "ActiveWindow.Close"

Regarde les liens que je t'ai proposés et fais moi savoir si tu as un pb.

A bientôt
 
Re : Enregistrer des feuilles sans liaison, seulement les valeurs.

Est-ce que je peut adapter la macro à celle que j'ai fait pour avoir seulement les valeurs des cellules et non les liens et les formules?

Je suis un peu dans le champ!!!!

Je voudrais bien fournir mon fichier mais il est beaucoup trop volumineux🙁

À l'aide!!!


maxfli296
 
Re : Enregistrer des feuilles sans liaison, seulement les valeurs.

Re,
Ok.Merci d'être revenu.

Ma proposition reposait sur la copie du classeur avec les feuilles concernées puis l'enlèvement des feuilles qui ne doivent pas être sauvegardées et ensuite suppression des formules dans les feuilles restantes.

La macro et le fichier de Porcinet fonctionnent différement. J'y ai noté pas mal d'instruction "Select" que j'évite d'utiliser en VBA.

Mais bon, tu es content et c'est le principal.

N'hésite pas à placer ton fichier si tu vois un intérêt à ce que je le regarde.

A bientôt
 
Re : Enregistrer des feuilles sans liaison, seulement les valeurs.

Bonjour Dan,

Oui je sais que ça peu ne pas être un code parfait, mais je ne connais pas grand chose à la prog VBA...donc....autant que ça marche, çca me convient.

Je voudrais bien placer mon fichier pour te le montrer, mais il est trop volumineux , selon les règles du forum, pour que le joigne à mon post. Il fait environ 200 ko.

maxfli296
 
Re : Enregistrer des feuilles sans liaison, seulement les valeurs.

Pas de soucis pour moi.

Pour placer ton fichier il faut que tu le réduises en enlevant des données par exemple ou une feuille ou deux.

Par la messagerie XLD, je peux également te donner ma BAL de manière à ce que tu puisses me l'envoyer.
 
Re : Enregistrer des feuilles sans liaison, seulement les valeurs.

Bonjour,

Merci de ton fichier.
J'ai modifié par mal de choses dans toutes les macros afin de les rendre plus rapides.
Pour chaque macro modifée, j'ai ajouté une mention "modifiée par Dan"

Ci-dessous un exemple de ta macro modifiée et nettement plus courte que la tienne car tu avais utilisé l'enregistreur de macro auto.
Code:
Sub OuvGauInt()
' OuvGauInt Macro
' Macro enregistrée le 2006-08-27 par David
' Macro modifiée par Dan le 04/09/06
    Application.ScreenUpdating = False
    Range("I36").Value = "OUVERTURE GAUCHE INTERIEUR"
    'Travail sur feuille Slab
    Sheets("Slab").Activate
    Range("E45:J46,E49:J50,O44:R51").Activate
    With Selection
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
    End With
    Range("E45:J46,O44:R47").Select
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Range("O48:R51").Select
    With Selection.Borders(xlDiagonalDown)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    'Travail sur feuille Frame
    Sheets("Frame").Activate
    Range("D49:J50,D53:J54,P48:S55").Activate
    With Selection
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
    End With
    Range("D49:J50, P48:S51").Select
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Range("P52:S55").Select
    With Selection.Borders(xlDiagonalDown)
        .LineStyle = xlContinuous
        .Weight = xlMedium
        .ColorIndex = xlAutomatic
    End With
    Sheets("FORMULAIRE").Activate
    Application.ScreenUpdating = True
End Sub
Pour les macros impressions, j'ai modifié également. Vérifie que l'impression fonctionne car je n'ai pu le faire. Exemple d'une macro modifiée:
Code:
Sub IMPRIMERSLAB()
' IMPRIMERSLAB Macro
' Macro enregistrée le 2006-08-28 par David
' Macro modifiée par Dan le 04/09/06
    Application.ScreenUpdating = False
    Sheets("Slab").Activate
    With Activesheet
        .PageSetup.PrintArea = "$B$2:$U$54"
        .PrintOut Copies:=1, Collate:=True
    End With
    ActiveSheet.PageSetup.PrintArea = ""
    Sheets("FORMULAIRE").Activate
    Application.ScreenUpdating = True
End Sub
Ici je pense que tu peux remplacer :
Code:
Sheets("Slab").Activate
With Activesheet
    .PageSetup.PrintArea = "$B$2:$U$54"
    .PrintOut Copies:=1, Collate:=True
End With
par
Code:
With Sheets("Slab")
    .PageSetup.PrintArea = "$B$2:$U$54"
    .PrintOut Copies:=1, Collate:=True
End With
Je ne l'ai pas mis dans ton fichier mais tu peux essayer.
L'instruction "ActiveSheet.PageSetup.PrintArea = "" ne sert à rien à mon avis, je l'ai donc désactivée dans tes macros.
Je ne peux placer le fichier ici car trop volumineux.

Bonne lecture et si pb n'hésite pas.
 
- 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

Discussions similaires

Retour