Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA - Convertir fichiers xlsx en ods

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

moustic54

XLDnaute Occasionnel
Bonjour le forum

Est-il possible de convertir plus de 103 fichiers placés dans un seul répertoire en xlsx au format ods sans ouvrir un à un chaque fichier puis "enregistrer sous" ?

Cette tâche risque d'être longue et fastidieuse.

Merci à ceux qui pourront trouver une solution m'évitant cet exercice.
 
Bonjour le forum

Je lance un SOS
J'ai vraiment besoin des compétences des spécialistes d'Excel pour convertir ces fichiers Excel en ODS en recourant à une macro.

Merci à ceux qui m'entendront.
 
Bonjour le Fil
ce Code semble correspondre (perfectible) ! a adapter surement .
VB:
Option Explicit
Sub XlsxEnOds()
    Dim wb As Workbook
    Dim Chemin As String
    Dim oChemin As String
    ' Spécifiez le chemin d'accès complet du fichier Excel à convertir
    Chemin = ThisWorkbook.Path & "\fichier.xlsx"
   
    ' Ouvrir le fichier Excel
    Set wb = Workbooks.Open(Chemin)
   
    ' Définir le chemin d'accès et le nom de fichier pour la sauvegarde au format ODS
   
    oChemin = Left(Chemin, Len(Chemin) - 5) & ".ods" ' Remplacez ".xlsx" par ".ods"
   
    ' Enregistrer le fichier au format ODS
    wb.SaveAs Filename:=oChemin, FileFormat:=60
   
    ' Fermer le fichier Excel
    wb.Close False
   
    ' Afficher un message de confirmation pour le test
    MsgBox "Conversion terminée. Le fichier a été enregistré sous " & oChemin
End Sub
Bonne Journée
Jean marie
 
Bonjour

Grillé par l'autre JM 😉

@moustic54
Ne pas oublier de regarder dans les archives du forum
Ci-dessous code issu de ce fil (nous étions en 2021)
Il fallait juste inverser et voir avec l'enregistreur de macro que
format ODS = xlOpenDocumentSpreadsheet
ActiveWorkbook.SaveAs Filename:="C:\Users\STAPLE\Documents\test.ods" , FileFormat:=xlOpenDocumentSpreadsheet, CreateBackup:=False
VB:
Sub Conversion_XLSX_vers_ODS()
Dim ODS_Nom$, XLSX_Nom$, StrPath$
Dim oWorkbook As Workbook, fDialog As FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
    .Title = "Sélectionner le dossier contenant les fichiers ODS"
    .AllowMultiSelect = False
    .InitialView = msoFileDialogViewList
    If .Show <> -1 Then
        MsgBox "Convertion annulée", , "Avertissement"
        Exit Sub
    End If
    StrPath = fDialog.SelectedItems.Item(1)
    If Right(StrPath, 1) <> "\" Then StrPath = StrPath + "\"
End With
If Left(StrPath, 1) = Chr(34) Then
    StrPath = Mid(StrPath, 2, Len(StrPath) - 2)
End If
XLSX_Nom = Dir$(StrPath & "*.xlsx")
While Len(XLSX_Nom) <> 0
    Set oWorkbook = Workbooks.Open(StrPath & XLSX_Nom)
    ODS_Nom = StrPath & Left(oWorkbook.Name, InStrRev(oWorkbook.Name, ".") - 1)
    oWorkbook.SaveAs Filename:=ODS_Nom & ".ods", FileFormat:=xlOpenDocumentSpreadsheet
    oWorkbook.Close False
    XLSX_Nom = Dir$()
Wend
MsgBox "La conversion est terminée", , "XLSX vers ODS"
Exit Sub
End Sub
Testé sur O365

[EDITION]
Précision: testé sur des classeurs *.xlsx ne contenant qu'une seule feuille.
 
Dernière édition:
Bonjour ChTi160, bonjour Staple1600

Merci à vous deux pour votre aide. Je n'aurai jamais pu y parvenir sans vous.
Comment indiqué dans mon fil, je n'y connais quasiment rien en vba. Programmer de la sorte dépassait largement mes maigres connaissances.
Je vais tester aussitôt.
Bon week-end à vous deux.

 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…