Oui je les ai créés... Mais j'en utilise que quelques uns... Avec le tempsRe
@anthoYS
Pourquoi t'excuser ???
Pour ma part, j'ai simplement déroulé le mode opératoire que j'utiliserai si j'avais le même problème avec un classeur Excel endommagé sur mon PC.
Pourquoi tu avais 219 onglets ?
C'est toi qui les a créé au fil du temps ?
Oui, je travaille sur clé usb (et je fais des sauvegardes sur le cloud à savoir sur MEGA.nz et maintenant OneDrive essentiellement) mais j'ai fait pareil avec le classeur sur le disque dur ... La taille du fichier csv est folle!Re
@anthoYS
Tu travailles sur une clé USB ou sur ton disque dur ?
Relis plusieurs de mes messages attentivement.
(il me semble avoir conseillé de plutôt travailler sur le disque dur)
Tu verras qu'il s'agit de reconstruire ton classeur étape par étape1
1) On exporte le projet VBA
2) On récupère les données dans des fichiers CSV
A cette étape, on est déjà content, car on a pas tout perdu.
Ensuite, si on peut toujours ouvrir la copie classeur "problématique", il reste à lister les formules utilisées, les plages nommées etc.
Bref cela prends du temps.
Oui pour le conseil de travailler sur le disque dur seulement le fichier était devenu fonctionnel donc j'en ai fait une copie à nouveau sur la clé usb puis après j'ai pris ce "mauvais" plis...Oui, je travaille sur clé usb (et je fais des sauvegardes sur le cloud à savoir sur MEGA.nz et maintenant OneDrive essentiellement) mais j'ai fait pareil avec le classeur sur le disque dur ... La taille du fichier csv est folle!
Sub Lister_Formules()
Dim sht As Worksheet, myRng As Range, newRng As Range, c As Range
Application.ScreenUpdating = False
Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "FORMULES"
Sheets("FORMULES").Range("A1:C1") = Array("Nom feuille", "Adresse Cellules", "Formule")
For Each sht In ActiveWorkbook.Worksheets
If sht.Name <> "FORMULES" Then
Set myRng = sht.UsedRange
On Error Resume Next
Set newRng = myRng.SpecialCells(xlCellTypeFormulas)
For Each c In newRng
With Sheets("FORMULES")
.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = sht.Name
.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = VBA.Replace(c.Address, "$", "")
.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Value = Mid(c.FormulaLocal, 2, (Len(c.FormulaLocal)))
End With
Next c
End If
Next sht
Sheets("FORMULES").Cells(1).CurrentRegion.Borders.Value = 1
Sheets("FORMULES").Cells(1).CurrentRegion.Columns.AutoFit
End Sub
Sub Lister_NOMS_CLASSEUR()
Dim ws As Worksheet
Set ws = Worksheets.Add: ws.Cells(1).ListNames
End Sub
Sub IMPORTER_CSV()
Dim FilesToOpen, x%
Application.ScreenUpdating = False
FilesToOpen = _
Application.GetOpenFilename(FileFilter:="Fichier CSV (*.csv), *.csv", MultiSelect:=True, Title:="Importation Fchiers CSV")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "Aucune sélection"
GoTo ExitHandler
End If
x = x + 1
While x <= UBound(FilesToOpen)
With Workbooks.Open(Filename:=FilesToOpen(x), Local:=True)
.Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
.Close False
End With
x = x + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
End Sub