Microsoft 365 macro pour convertir des fichiers ods en xls

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 !

Coralie01120

XLDnaute Occasionnel
Bonjour le forum,

Je bloque sur un problème depuis un moment et je n'arrive pas à le résoudre.
J'ai plusieurs fichier en ods dont je souhaite extraire certaines infos dans un autre classeur pour faire une BDD.
Mes fichiers ods sont identiques et sont protégés par un mot de passe en feuil2. Les infos sont donc toujours dans les mêmes cellules.

A l'aide du forum j'ai une macro qui me permet de récupérer mes données... à condition que ce soient des fichiers en xls. Le fait que ma feuille soit protégée par un mdp et que les classeurs soient en ods ca ne fonctionne pas. Incompatibilité excel et ods...

Je souhaite donc convertir une très grande quantité de fichier ods en xls. Est ce faisable via une macro ?

Bonne soirée,
 
Bonsoir le fil

=>sylvanu
On se rejoint sur ce point 😉
Donc il faudrait une macro sous LibreOffice (donc pas en langage VBA) qui ouvre les fichiers *.ods et les enregistre sous (mais sans mot de passe)
NB: Tu connais les mots de passe de ces fichiers ?
Mais je ne serai pas ce bon samaritain car si je parle VBA, je suis muet en langage macro Libre Office 😉
(et mes recherches sur G..gle n'ont pas été concluantes)
 
Re

Alors pour ceux qui veulent tenter l'aventure
(j'ai trouvé ceci dans Libre Office)
Code:
' Opens a Document, checks beforehand, whether it has to be loaded
' or whether it is already on the desktop.
' If the parameter bDisposable is set to False then the returned document
' should not be disposed afterwards, because it is already opened.
Function OpenDocument(DocPath as String, Args(), Optional bDisposable as Boolean)
Dim oComponents as Object
Dim oComponent as Object
	' Search if one of the active Components is the one that you search for
	oComponents = StarDesktop.Components.CreateEnumeration
	While oComponents.HasmoreElements
		oComponent = oComponents.NextElement
		If hasUnoInterfaces(oComponent,"com.sun.star.frame.XModel") then
			If UCase(oComponent.URL) = UCase(DocPath) then
				OpenDocument() = oComponent
				If Not IsMissing(bDisposable) Then
					bDisposable = False
				End If
				Exit Function
			End If
		End If
	Wend
	If Not IsMissing(bDisposable) Then
		bDisposable = True
	End If
	OpenDocument() = StarDesktop.LoadComponentFromURL(DocPath,"_default",0,Args())
End Function

Sub UnprotectSheets(Optional oSheets as Object)
Dim i as Integer
Dim oDocSheets as Object
	If IsMissing(oSheets) Then
		oDocSheets = StarDesktop.CurrentFrame.Controller.Model.Sheets
	Else
		Set oDocSheets = oSheets
	End If

	For i = 0 To oDocSheets.Count-1
		oDocSheets(i).Unprotect("")
	Next i
End Sub
Malheureusement, ce que j'ai tenté a échoué.
 
- 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