Comment optimiser mon code,
Fermé
muiigisha
Messages postés
61
Date d'inscription
lundi 25 septembre 2017
Statut
Membre
Dernière intervention
6 décembre 2017
-
10 nov. 2017 à 10:51
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 - 6 déc. 2017 à 12:03
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 - 6 déc. 2017 à 12:03
A voir également:
- Comment optimiser mon code,
- Optimiser son pc - Accueil - Utilitaires
- Code asci - Guide
- Optimiser windows 10 - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
3 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
10 nov. 2017 à 11:17
10 nov. 2017 à 11:17
Bonjour,
Vous deletez deux fois les memes colonnes
IL serait peut-etre plus judicieux de copier les colonnes dont vous avez besoin dans un autre fichier et faire vos suppressions de ligne et remplacement de texte dans ce fichier
Suppression ligne: si moins de lignes a supprimer qu'a conserver, code a optimiser faut voir
Vous deletez deux fois les memes colonnes
Range("N1:N80227,Q1:Q80227,R1:R80227,
IL serait peut-etre plus judicieux de copier les colonnes dont vous avez besoin dans un autre fichier et faire vos suppressions de ligne et remplacement de texte dans ce fichier
Suppression ligne: si moins de lignes a supprimer qu'a conserver, code a optimiser faut voir
muiigisha
Messages postés
61
Date d'inscription
lundi 25 septembre 2017
Statut
Membre
Dernière intervention
6 décembre 2017
6 déc. 2017 à 10:52
6 déc. 2017 à 10:52
Bonjour,
merci pour l'aide apportée la derniere fois celà m'a beaucoup édifié même si finalement je n'ai pas utilisé exactement ce que vous m'avez envoyé mais ça été un guide en tout cas.
Je reviens avec un autre problème d'optimisation; j'ai ce code suivant:
j'ai mis (je crois) ce qu'il fallait pour aller au plus vite mais seulement il met à peu près 5 mins pour ne parcourir que 700 lignes environ et pourtant j'ai devant moi un fichier de 25000 lignes.
Aidez moi svp.
Merci d'avance
merci pour l'aide apportée la derniere fois celà m'a beaucoup édifié même si finalement je n'ai pas utilisé exactement ce que vous m'avez envoyé mais ça été un guide en tout cas.
Je reviens avec un autre problème d'optimisation; j'ai ce code suivant:
Option Base 1
Sub test()
Dim main() As Variant, parameter() As Variant
Dim paraDte, mainDte, mostrecentDte As Date
Dim tabIDrows() As Integer
Dim id As Integer
ReDim tabIDrows(15)
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Sheet1").Activate
Application.ScreenUpdating = False
main = Range("B2:E5000").Value
parameter = Range("B2:E5000").Value
For cmpt1 = LBound(main, 1) To UBound(main, 1)
ReDim tabIDrows(15)
id = 1
For cmpt2 = LBound(parameter, 1) To UBound(parameter, 1)
'If Sheets("Sheet1").Range("B" & cmpt1 + 1 & ":D" & cmpt1 + 1).Value =
'Sheets("Sheet1").Range("B" & cmpt2 + 1 & ":D" & cmpt2 + 1).Value Then 'main("B" & cmpt1 & ":D" & cmpt1).Value = parameter("B" & cmpt2 & ":E" & cmpt2).Value Then
If main(cmpt1, 1) = parameter(cmpt2, 1) And main(cmpt1, 2) = parameter(cmpt2, 2) And main(cmpt1, 3) = parameter(cmpt2, 3) Then
If Range("E" & cmpt2 + 1).Value <> "" Then
paraDte = Range("E" & cmpt2 + 1)
mainDte = Range("E" & cmpt1 + 1)
tabIDrows(id) = cmpt2 + 1
id = id + 1
If paraDte > mainDte Then
mostrecentDte = paraDte
Else
mostrecentDte = mainDte
End If
End If
Else
Range("F" & cmpt1 + 1).Value = Range("E" & cmpt1 + 1).Value
End If
Next cmpt2
id = 1
While tabIDrows(id) <> 0
Range("F" & tabIDrows(id)) = mostrecentDte
id = id + 1
Wend
Next cmpt1
'Range("F" & cmpt2) = mostrecentDte
End Sub
j'ai mis (je crois) ce qu'il fallait pour aller au plus vite mais seulement il met à peu près 5 mins pour ne parcourir que 700 lignes environ et pourtant j'ai devant moi un fichier de 25000 lignes.
Aidez moi svp.
Merci d'avance
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
6 déc. 2017 à 12:03
6 déc. 2017 à 12:03
Bonjour,
Vous pouvez mettre un fichier avec des donnees representatives car pas simple de simuler avec vos tests
Vous pouvez mettre un fichier avec des donnees representatives car pas simple de simuler avec vos tests
10 nov. 2017 à 11:38
la suppression en fait n'est pas faite 2 fois parce qu'en supprimant les colonnes se maettent automatiquement en ordre et je ne peux pas supprimer tout d'un coup parce que VBA ne supporte pas et m'affiche une erreur.
La copie n'est pas plus longue que la suppression? parce que même pas à pas c'est quelques tierces plus long que la suppresion.
Il ya plus de ligne à supprimer qu'à conserver
10 nov. 2017 à 16:17
10 nov. 2017 à 17:12
Si vos fichiers csv ne sont pas confidentiels, pouvez-vous en mettre un a dispo et definir en detail ce que vous voulez en fin de traitement???
Pour le fichier a la limite, passez par la messagerie privee
Modifié le 13 nov. 2017 à 11:34
malheureusement mes fichiers sont confidentiels, même ceux en csv :(
c'est quoi la messagerie privée?
13 nov. 2017 à 11:35
https://www.commentcamarche.net/infos/25867-messagerie-privee-mp/