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 !
1- existe t il une taille de fichier excel au dela de laquelle le fichier a du mal à se lancer ?
j'ai codé un fichier de 20Mo plus ou moins, et il met maintenant plus de 5 min à s'ouvrir ... assez pénalisant quand on sait que celui ci est destiné à un usage industriel !
2- dans un tout autre registre, (mais même fichier) je suis censé utiliser la fonction Find pour récupérer une ligne dans un autre onglet, en gros ma demarche est celle ci :
Boucle For, variable "ligne"
je prend le contenu de la celulle dans C,ligne , et je le recherche dans une autre feuille à l'aide de la fonction Find.
Je récupère le numero de la ligne, puis je compare la donnée contenue dans la celulle X avec une autre données.
seulement .... ça merde, à l'étape ou je dois récuperer la numéro de la ligne, voici mon code :
Code:
With Sheets("Suivi avenants MQ")
For ligne2 = 8 To .Range("C8").End(xlDown).Row
numContrat = .Range("C" & ligne).Value 'valeur de la case ("C" & ligne) stocké dans numContrat
Set resultatLigne = Sheets("traitementGestion").Range("C2:C" & .Range("C2").End(xlDown).Row).Find(numContrat, LookAt:=xlWhole) 'recherche numContrat de suivi des MQ, dans traitementGestion
msgbox "toto !dfg"
ligneTraitementGestion = resultatLigne.Row
le compilateur bug donc à la dernière ligne, il ne veut aparement pas du tout de mon "resultatLigne.Row" ....
des idées, pour récupérer la ligne trouver par mon "Find" ?
Bonjour
1-Tu peux essayer de faire maigrir ton fichier avec le code suivant; à lancer 2 fois de suite.
de préférence éviter tous les formatages personnalisés qui font enfler les fichiers, ainsi que les
insertions et suppressions de feuille. Si tu n'es pas obligé de stocker des formules ne garde que les valeurs.
Sub Cleaning()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim myLastRow As Long, myLastCol As Long
Dim Wks As Worksheet
Dim dummyRng As Range
'For Each Wks In ActiveWorkbook.Worksheets
Set Wks = ActiveSheet
With Wks
myLastRow = ActiveSheet.UsedRange.Rows.Count
myLastCol = ActiveSheet.UsedRange.Columns.Count
Set dummyRng = ActiveSheet.UsedRange
On Error Resume Next
myLastRow = _
Wks.Cells.Find("*", after:=.Cells(1), _
LookIn:=xlFormulas, lookat:=xlWhole, _
searchdirection:=xlPrevious, _
searchorder:=xlByRows).Row
Debug.Print myLastRow
myLastCol = _
Wks.Cells.Find("*", after:=.Cells(1), _
LookIn:=xlFormulas, lookat:=xlWhole, _
searchdirection:=xlPrevious, _
searchorder:=xlByColumns).Column
Debug.Print myLastCol
On Error GoTo 0
If myLastRow * myLastCol = 0 Then
.Columns.Delete
Else
Wks.Range(Cells(myLastRow + 1, 1), _
.Cells(Rows.Count, 1)).EntireRow.Delete
Wks.Range(.Cells(1, myLastCol + 1), _
.Cells(1, .Columns.Count)).EntireColumn.Delete
End If
End With
'Next Wks
set Wks =nothing
Application.Calculation = xlCalculationAutomatic
End Sub
2-une fonction pour trouver la ligne
Function FindRow(ByVal MatchVal As long)
Dim Lastrow As Integer, mRow As Integer, Matchrng As Range, c As Variant
With Worksheets(1)
Lastrow = .Cells(Rows.Count, "B").End(xlUp).Row
Set Matchrng = .Range("b2:B" & Lastrow) ' à adapter
Set c = Matchrng.Find(MatchVal, LookIn:=xlValues) ' à adapter
If c Is Nothing Then
MsgBox MatchVal & " not found"
FindRow = 0
Else
FindRow = c.Row
End If
End With
Set Matchrng =nothing
End Function
Cordialement
Flyonets
Merci pour vos réponses, mais malheuresement, le code d'amincissement supprime la moitié de mes colonnes, et le .ROW en moins n'est toujours pas la solution 🙁
je commence à déséspéré, 2 semaines que je bosse dessus, ça fait beaucoup ;/
Pour ce qui est du code qui permet de trouver la ligne, je ne l'ai pas encore testé, car je cherche déjà a innover à partir de mon propre code 😉
du nouveau, le temps d'ouverture du fichier excel ne vient pas la taille de celui-ci, puisque aparement j'arrive à lancer un fichier plus important (17Mo) sans aucun problème.
1- existe t il une taille de fichier excel au dela de laquelle le fichier a du mal à se lancer ?
j'ai codé un fichier de 20Mo plus ou moins, et il met maintenant plus de 5 min à s'ouvrir ... assez pénalisant quand on sait que celui ci est destiné à un usage industriel !
Je ne répondrai qu'à la première, vu que la seconde question est trop flou sans support fichier.
5 min pour ouvrir un fcihier de 17 mo, c'est beaucoup trop avec une configuration normale. Après, sans savoir ce qu'il y a dedans (formules, valeurs brutes, macros événementielles, objets), c'est quand même pas facile de trouver ue solution 😕
- 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