Macro Enregistrer Sous en supprimant les liaisons

Résolu
JenSou798312 Messages postés 57 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterais pouvoir faire une macro me permettant d'enregistrer sous le document en ne conservant que les valeurs (en supprimant les liaisons).
Voici le code que j'ai travaillé…

Sub Enregistrer()
Dim Chemin As String
Dim nomfichier As String

Chemin = ThisWorkbook.Path
'Changer pour "C:\Documents and Settings\te\My Documents\" (par exemple si on veut un autre chemin que le répertoire en cours)
nomfichier = Chemin & "CRID_" & ActiveSheet.Range("Y34") & "_" & Range("F31") & ".xlsx"

ActiveSheets.Values
Cells.Copy
Cells.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Cells.Validation.Delete
ActiveWorkbook.SaveAs Filename:=nomfichier

End Sub

3 réponses

Résumé de la discussion

Création d'une macro Excel visant à enregistrer sous valeurs uniquement et à supprimer les liaisons, avec des difficultés observées sur Mac et des ajustements nécessaires côté chemin et mise à jour des liaisons. Des réponses indiquent partir du fichier CRID, obtenir un fichier xlsx sans liaison et sans mise à jour sur Mac, et adapter les chemins et la source pour Windows. Note utile: la réussite dépend de l’OS et des tests; la solution passe par changer la source d’origine par le fichier créé, puis enregistrer les feuilles CRID en .xlsx et éviter fermeture du fichier source.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. JenSou798312 Messages postés 57 Statut Membre
     
    Re bonjour,
    J'ai travaillé sur mon code mais j'ai toujours des erreurs.
    Est ce que ce code serait plus approprié?

    Sub test()
    Dim Sh As Worksheet
    Dim NomFichier As String

    'Le nom du nouveau fichier
    NomFichier = "CRID_" & ActiveSheet.Range("Y34") & "_" & Range("F31") & " .xlsx"

    With ThisWorkbook
    For Each Sh In ThisWorkbook.Worksheets
    With Sh
    With .UsedRange
    .Value = .Value
    End With
    End With
    Next
    End With
    ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & NomFichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End Sub

    J'ai quand même toujours une erreur d'enregistrement.
    merci pour votre aide
    0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    J'ai quand même toujours une erreur d'enregistrement.
    ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "" & NomFichier

    Manque un antislash "\" dans ""

    et
    J'ai travaillé sur mon code mais j'ai toujours des erreurs.
    Petite explication svp
    0
  3. JenSou798312
     
    Merci pour votre réponse
    J'ai essayé de mettre "\" mais ça ne fonctionne pas.
    Je suis sous Mac... est ce que ça peut être lié?

    Pour les autres soucis, soit ça enregistre (pas dans le bon fichier) en .xlsx mais j'ai tjs ma macro et les liaisons du coup je ne peux pas l'ouvrir, soit ca ne fait rien du tout.
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Je suis sous Mac... est ce que ça peut être lié?
      C'est ce que nous attendions comme info.
      Le separateur de repertoire ou fichier sur mac est ":" pas "\".

      mais j'ai tjs ma macro et les liaisons
      Les liasions avec quoi?
      0
    2. JenSou798312 Messages postés 57 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour,
      Mes liaisons se font entre deux fichiers .xlsm :
      - "Fiche CRID.xlsm" (là où est ma fameuse macro impossible à exécuter)
      - "PROGRAMME DPCI 2017.xlsm.
      0
    3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > JenSou798312 Messages postés 57 Statut Membre
       
      Re,
      Vous pouvez mettre a dispo sans donnees confidentielles le fichier que vous voulez enregistrer sans les liaisons, sera plus facile de vous aider

      Pour transmettre un fichier,
      Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
      il faut passer par un site de pièce jointe tel que cjoint.com

      Allez sur ce site : https://www.cjoint.com/
      Clic sur parcourir,
      Cherche ton fichier,
      clic sur ouvrir,
      Clic sur "Créer le lien cjoint",
      Copier le lien,
      Revenir ici le coller dans une réponse...

      ou
      'mon partage
      https://mon-partage.fr/
      0
    4. JenSou798312 Messages postés 57 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      J'ai modifié mon code:

      Sub SaveAs()
      'Macro par Jennifer
      Dim Chemin As String
      Dim Nomfichier As String
      Dim VBComp As Object
      Dim VBComps As Object

      'Nom nouveau fichier
      Nomfichier = "CRID_" & ActiveSheet.Range("Y34") & "_" & Range("F31") & ".xlsx"
      'Chemin nouveau fichier
      Chemin = "HDD:Utilisateurs:Jennifer:Bureau"

      Set VBComps = ActiveWorkbook.VBProject.VBComponents

      For Each VBComp In VBComps
      Select Case VBComp.Type
      Case 100
      With VBComp.CodeModule
      .DeleteLines 1, .CountOfLines
      End With
      Case Else
      VBComps.Remove VBComp
      End Select
      Next VBComp

      ActiveWorkbook.SaveAs Filename:=Chemin & Nomfichier
      End Sub

      Mais ça ne fonctionne toujours pas… Je désespère…

      Message d'erreur: Erreur d'exécution « 1004 »:

      Vous ne disposez pas d'autorisation pour enregistrer les fichiers dans cet emplacement.Vérifiez que vous disposez d'un accès en écriture à cet emplacement ou sélectionnez un autre emplacement
      0
    5. JenSou798312 Messages postés 57 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Le fichier à copier sans macro et sans liaison: https://www.cjoint.com/c/GFbhmsNPgnZ
      Le fichier Source http://www.cjoint.com/c/GFbhrQPjwiZ
      0