SaveAS sans fermer le fichier via macro

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 !

samimi94

XLDnaute Occasionnel
Bonjour à tous,

Me revoilà pour une nouvelle question.

Je ne sais pas si cela est faisable, j'ai cherché sur le forum mais rien qui ne correspond à ce que je souhaite vraiment.

A l'ouverture d'un classeur une macro s'execute automatiquement qui importe les données d'un autre fichier sur plusieurs feuilles.
Je souhaite à la fin d'execution de cette macro que mon fichier se sauvegarde automatiquement sous un autre nom, sans les macros (ou au moins les desactiver afin qu'elles ne s'executent pas à la prochaine ouverture) et cela sans fermer le classeur sauvegardé sous ?

Merci pour votre aide et bonne journée.
 
Re : SaveAS sans fermer le fichier via macro

Bonjour,
Il faut adapter le nom de ton fichier
Ici tous les modules seront effacés sans distinction
Code:
Sub TaMacroImportation()
'...Ton code
EnrSansMacro
End Sub

Sub EnrSansMacro()

Dim Vbc As Object
ActiveWorkbook.SaveAs(ActiveWorkbook.Path & "\NouveauNom.xls") 'à adapter
    With ActiveWorkbook.VBProject
        For Each Vbc In .VBComponents 'tous les types de modules seront effacés
            Select Case Vbc.Type
            Case 1, 2, 3
                .VBComponents.Remove Vbc
            Case 100
                Vbc.CodeModule.DeleteLines 1, Vbc.CodeModule.CountOfLines
            End Select
        Next Vbc
    End With
End Sub

A+
kjin
 
Re : SaveAS sans fermer le fichier via macro

Re à tous, bonjour Kjin,

Merci pour ton aide.
J'ai adapté ton code, tout se passe bien à un détail prêt.

Je m'explique, le fichier se sauvegarde bien Sous le nom que j'ai mis dans la macro mais à la fin d'execution j'ai une erreur, lors du pas à pas il met en surbrillance :

Code:
With ActiveWorkbook.VBProject

Merci.
 
Re : SaveAS sans fermer le fichier via macro

Re,

Désolée, j'ai parlé trop vite, en fait le message d'erreur concerné la fiabilité du projet VB, du coup j'ai coché la case faire confiance et tout est parfait comme d'hab 🙄

Si je peux me permettre une dernière chose, peux-tu me dire comment je peux adapter ma macro en convertissant toutes mes colonnes en texte comme vous m'avez aidé à le faire mais sans indiquer le format personnaliser en nombre de digit mais en conservant ma colonne AF à 16 digits ?

Code:
'For i = 1 To Sheets.Count
'If Worksheets(i).Name <> "Feuil1" Then
'Worksheets(i).Range("A1").EntireRow.Insert
'Worksheets("Feuil1").Rows("1:1").Copy Worksheets(i).Rows("1:1")
'Worksheets(i).UsedRange.Columns.AutoFit
'End If
'Next
'Sheets("Feuil1").Columns.AutoFit

For i = 1 To Sheets.Count
    If Worksheets(i).Name <> "Feuil1" Then
        With Worksheets(i)
            .Range("A1").EntireRow.Insert
            Worksheets("Feuil1").Rows("1:1").Copy .Rows("1:1")
            .UsedRange.Columns.AutoFit
        End With
    End If
Next
'Sheets("Feuil1").Columns.AutoFit
For j = 1 To Sheets.Count
   With Worksheets(j).Columns(32)
        .NumberFormat = "0000000000000000"
        .AutoFit
    End With
Next

Merci.
 
- 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