Import export tout en gardant les noms de cellules

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 !

GeoTrouvePas

XLDnaute Impliqué
Bonsoir tout le monde,

Depuis ce matin, je m'évertue à essayer une manip pourtant simple mais qui me pose encore des soucis.

J'ai besoin de copier des 4 feuilles de mon classeur dans un nouveau fichier afin de garder "une photographie" d'une situation à un instant T. Pour cette partie là, pas de soucis.

Si mon utilisateur veut retourner à ce fameux instant T, il peut faire une restauration :
Les 4 feuilles en question sont supprimées et les 4 feuilles qui ont été exporter ci dessus, viennent les remplacer.

Pour ces manip, je n'ai pas de soucis.

Ce qui me pose vraiment problème, c'est que tout ça fait un peu "déconner" les noms que j'avais donné aux cellules.

je n'ai pourtant pas trouvé d'arguments ou de fonction spéciales qui permettent de paramétrer les gestion des noms de cellules lors de l'import, export.

Auriez vous une idée pour solutionner ça ?

Je vous remercie par avance pour l'aide apportée.

Bonne soirée à tout le monde.
 
Re : Import export tout en gardant les noms de cellules

Bonsoir et merci pour ta "pré" réponse 🙂

Voici le code que j'utilise pour exporter mes feuilles et les réimporter :

Code:
Function SauvegarderParametres() As Boolean
    Dim ClasseurDestination As Workbook
    Dim FeuilleACopier As Worksheet
    Chemin_Sauvegarde = "C:\Sauvegarde\"
    
On Error GoTo GestionErreur
    
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False

    Set ClasseurDestination = Workbooks.Add(xlWBATWorksheet)
    
    Set FeuilleACopier = ThisWorkbook.Worksheets("Param1")
    FeuilleACopier.Copy After:=ClasseurDestination.Sheets(Sheets.Count)
    
    Set FeuilleACopier = ThisWorkbook.Sheets("Profils")
    FeuilleACopier.Copy After:=ClasseurDestination.Sheets(Sheets.Count)
    
    Set FeuilleACopier = ThisWorkbook.Sheets("Tables locales")
    FeuilleACopier.Copy After:=ClasseurDestination.Sheets(Sheets.Count)
    
    For i = 2 To ClasseurDestination.Sheets.Count
        With ClasseurDestination.Sheets(i)
            .Visible = False
            .Protect UserInterfaceOnly:=True, Password:="azerty", DrawingObjects:=True, Contents:=True, Scenarios:=True
            .EnableSelection = xlUnlockedCells
        End With
    Next
    
    ClasseurDestination.Protect Password:="azerty", Structure:=True, Windows:=False
    ClasseurDestination.SaveAs Filename:=Chemin_Sauvegarde & "Sauvegarde du " & Format(Now(), "ddmmyyyy") & " à " & Format(Now(), "hhmmss")
    ClasseurDestination.Close
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

    SauvegarderParametres = True
    Exit Function

GestionErreur:
    SauvegarderParametres = False

End Function


Sub ImporterSauvegarde(Fichier As String)

    Dim ClasseurSource As Workbook
    Dim FeuilleACopier As Worksheet
    Dim InstanceSauvegarde As Excel.Application
    
    Application.DisplayAlerts = False

    If FichierExistant(Fichier) = False Then
        MsgBox "Le fichier de sauvegarde est inaccessible", vbCritical
        Exit Sub
    Else
        Set InstanceSauvegarde = CreateObject("Excel.Application")
        InstanceSauvegarde.Visible = True
        Set ClasseurSource = InstanceSauvegarde.Workbooks.Open(Fichier)
        
        ClasseurSource.Unprotect Password:="azerty"
        ThisWorkbook.Unprotect Password:="azerty"
        ThisWorkbook.Sheets(Array("Param1", "Profils", "Tables locales")).Delete
    
        Set FeuilleACopier = ClasseurSource.Worksheets("Param1")
        FeuilleACopier.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
        Set FeuilleACopier = ClasseurSource.Worksheets("Profils")
        FeuilleACopier.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
        Set FeuilleACopier = ClasseurSource.Worksheets("Tables locales")
        FeuilleACopier.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    End If
        
    ThisWorkbook.Protect Password:="azerty", Structure:=True, Windows:=False
    
    ClasseurSource.Close False
    InstanceSauvegarde.Quit
    
    Application.DisplayAlerts = True

End Sub

C'est peut être difficilement compréhensible comme ça. Je vais essayer de faire un petit fichier de démo.
 
Re : Import export tout en gardant les noms de cellules

Re,

J'ai essayé ton code comme ça vite fait, je n'ai pas de problème avec les noms
Peut-être une option dans Excel !?

A+
 
Re : Import export tout en gardant les noms de cellules

Merci pour le test

J'ai ces options de cochées :
- "Mis à jour des références hors programme"
- "Enregistrer les valeurs des liaisons externes"

Tu crois que ça peut venir de là ?

De mon côté j'obtiens une erreur sur le ".copy " lors de l'importation. La méthode copy a échoué.
Pourtant j'ai bien déprotégé les deux classeurs.
 
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

Discussions similaires

Réponses
7
Affichages
922
Réponses
1
Affichages
1 K
Retour