OVH Cloud OVH Cloud

MESSAGE D'ERREUR

1 réponse
Avatar
France
Bonjour,

Lorsque j'essaie d'ouvrir un de mes fichiers Excell , un=20
message d'erruer appara=EEt :

"Impossible de lire le fichier "

Lorsque je change l'extension en .txt par exemple, les=20
informations apparaissent (inutilisables bien =E9videmment).
J'ai essay=E9 d'enregistrer le fichier sour un autre nom,=20
sur disquette ... mais rien n'y fait.

Savez-vous si je peux r=E9cup=E9rer les donn=E9es saisies dans=20
ce fichier ou si elles sont d=E9finitivement perdues ?

Merci par avance de vos conseils,

France.

1 réponse

Avatar
Jean-François Aubert
Bonjour France,

tiré de http://www.excelabo.net/xl/plantages.htm#recupdonnées

Récupération de données dans un classeur endommagé
Je ne parviens plus à ouvrir mon classeur excel. Il contient des données
précieuses. Comment les récupérer ?
Une solution avec ADO pour récupérer les données d'une feuille entière
(code Rob Bovey, mpep). Si ça ne fonctionne pas, une solution plus
"classique" par établissement d'une liaison avec les cellules dont on veut
récupérer les valeurs (Ron de bruin, mpep).
Dans les deux cas, les données peuvent être récupérées dans un classeur fermé
(erreur avec ADO si le classeur est ouvert). Le code doit être copié dans un
module standard.

solution 1 (ADO)
'importer le contenu d'une feuille de calcul d'un classeur fermé
'(seules les données sont importées, pas les mises en forme)

Sub testQuery()
fich$ = "D:ExempleTris.xls"
Feuille$ = "Feuil1"
QueryWorksheet fich, Feuille
End Sub

Public Sub QueryWorksheet(NomFichier$, Feuille$)
'Rob Bovey, mpep
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String

''' Crée la chaîne de connexion
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & NomFichier & ";" & _
"Extended Properties=Excel 8.0;"

' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droits.
szSQL = "SELECT * FROM [" & Feuille & "$];"

Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText

''' Vérifie qu'on a bien reçu des données
If Not rsData.EOF Then
Feuil1.Range("A1").CopyFromRecordset rsData
Else
MsgBox "Aucun enregistrement renvoyé.", vbCritical
End If

''' On nettoie pour finir...
rsData.Close
Set rsData = Nothing

End Sub
'==========================
'solution 2 (liaison)
'récupération de données dans un classeur fermé
'(méthode "classique" par établissement d'une liaison temporaire)
'(c'est aussi la technique habituellement conseillée pour essayer
'de récupérer des données d'un classeur endommagé)

Sub test()
GetValuesFromAClosedWorkbook "D:", "TestADO.xls", "Feuil1", "A1:H25"
End Sub

Sub GetValuesFromAClosedWorkbook(fPath As String, _
fName As String, sName, cellRange As String)
'Ron De Bruin, mpep
'le paramètre 'cellRange' doit désigner
'*une* plage de cellules *contigües*
With ActiveSheet.Range(cellRange)
.Formula = "='" & fPath & "[" & fName & "]" _
& sName & "'!" & cellRange
.Value = .Value
End With
End Sub

Frédéric Sigonneau


--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"France" a écrit dans le message de
news:078001c34aad$c30afa20$
Bonjour,

Lorsque j'essaie d'ouvrir un de mes fichiers Excell , un
message d'erruer apparaît :

"Impossible de lire le fichier "

Lorsque je change l'extension en .txt par exemple, les
informations apparaissent (inutilisables bien évidemment).
J'ai essayé d'enregistrer le fichier sour un autre nom,
sur disquette ... mais rien n'y fait.

Savez-vous si je peux récupérer les données saisies dans
ce fichier ou si elles sont définitivement perdues ?

Merci par avance de vos conseils,

France.