Optimisation boucle vba
Résolu/Fermé
barry_mohamed
Messages postés
4
Date d'inscription
vendredi 7 août 2015
Statut
Membre
Dernière intervention
9 août 2015
-
Modifié par NHenry le 7/08/2015 à 19:40
barry_mohamed Messages postés 4 Date d'inscription vendredi 7 août 2015 Statut Membre Dernière intervention 9 août 2015 - 9 août 2015 à 19:52
barry_mohamed Messages postés 4 Date d'inscription vendredi 7 août 2015 Statut Membre Dernière intervention 9 août 2015 - 9 août 2015 à 19:52
A voir également:
- Optimisation boucle vba
- Optimisation pc - Accueil - Utilitaires
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Optimisation windows 10 - Guide
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
7 réponses
NHenry
Messages postés
15163
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 novembre 2024
345
7 août 2015 à 20:16
7 août 2015 à 20:16
Avec Excel, je ne pense pas que tu puisse aller plus loin, 95565 lignes, c'est une base de données, pas un tableau de calcul.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 8/08/2015 à 09:33
Modifié par michel_m le 8/08/2015 à 09:33
Bonjour
En complément de ton code, envoie ton classeur ou un extrait ( 1000 à 2000 lignes) avec les explications de ce que tu veux faire car avant de comprendre tes codes, bonjour...
Déjà, il n'y a pas de déclarations de variables...
Call remonte_sco_abc
Call remonte_sco_passage
Call remonte_reg_abc
Call remonte_reg_passage
?????
pas vu ces procédures
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci proposé (clic droit) dans le message de réponse
Dans l'attente
Michel
En complément de ton code, envoie ton classeur ou un extrait ( 1000 à 2000 lignes) avec les explications de ce que tu veux faire car avant de comprendre tes codes, bonjour...
Déjà, il n'y a pas de déclarations de variables...
Call remonte_sco_abc
Call remonte_sco_passage
Call remonte_reg_abc
Call remonte_reg_passage
?????
pas vu ces procédures
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci proposé (clic droit) dans le message de réponse
Dans l'attente
Michel
barry_mohamed
Messages postés
4
Date d'inscription
vendredi 7 août 2015
Statut
Membre
Dernière intervention
9 août 2015
8 août 2015 à 19:13
8 août 2015 à 19:13
Bonjour tout le monde,
Merci pour vos différentes réponses.
Call remonte_sco_abc
Call remonte_sco_passage
Call remonte_reg_abc
Call remonte_reg_passage
sont juste des filtres automatiques pour remonter les données afin de limiter le nombre d'itération. C'est pourquoi je n'ai pas mis le code car ils s'exécutent très rapidement.
Sinon pour le reste je mets les données à disposition voir onglet explications pour comprendre l'attente.
https://www.cjoint.com/c/EHiriAvtSrH
En vous remerciant d'avance pour vos réponses
Merci pour vos différentes réponses.
Call remonte_sco_abc
Call remonte_sco_passage
Call remonte_reg_abc
Call remonte_reg_passage
sont juste des filtres automatiques pour remonter les données afin de limiter le nombre d'itération. C'est pourquoi je n'ai pas mis le code car ils s'exécutent très rapidement.
Sinon pour le reste je mets les données à disposition voir onglet explications pour comprendre l'attente.
https://www.cjoint.com/c/EHiriAvtSrH
En vous remerciant d'avance pour vos réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 9/08/2015 à 09:04
Modifié par f894009 le 9/08/2015 à 09:04
Bonjour a vous tous,
2 minutes pour ne rien trouver, c'est genant !!!
Il n'y a aucune correspondance valide entre les cellules de la colonne U de abc et la colonne P de passage dans ce que vous avez mis a dispo !!!!!!!!!!
Z'etes sur des 95000 lignes, car votre fichier est un xls de 65000 lignes
A+
2 minutes pour ne rien trouver, c'est genant !!!
Il n'y a aucune correspondance valide entre les cellules de la colonne U de abc et la colonne P de passage dans ce que vous avez mis a dispo !!!!!!!!!!
Z'etes sur des 95000 lignes, car votre fichier est un xls de 65000 lignes
A+
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par jordane45 le 9/08/2015 à 16:21
Modifié par jordane45 le 9/08/2015 à 16:21
bonjour,
effectivement, aucune correspondance comme le dit F89 que je salue en ce dimanche ....
ci dessous le code suivant tes explications en feuille "explications":
Pour chaque contenu de la colonne U de la feuille abc, je recherche si j'ai une correspondance dans la feuille passage (colonne P)
si je trouve une correspondance je marque "trouvee" dans la colonne W de la feuill abc
à aménager en fonction du CLASSEUR REEL et DES COLONNES REELLES
:-((
Durée pour remplir colonne W: 0,12 secondes
mais vu le manque de sérieux dans la demande, j'arr^te ici le suivi de la discussion
EDIT : Ajout du langage dans les balises de code.
Michel
effectivement, aucune correspondance comme le dit F89 que je salue en ce dimanche ....
ci dessous le code suivant tes explications en feuille "explications":
Pour chaque contenu de la colonne U de la feuille abc, je recherche si j'ai une correspondance dans la feuille passage (colonne P)
si je trouve une correspondance je marque "trouvee" dans la colonne W de la feuill abc
à aménager en fonction du CLASSEUR REEL et DES COLONNES REELLES
:-((
Durée pour remplir colonne W: 0,12 secondes
Option Explicit '------------------------------------------------- Sub trouver() Dim Derlig As Long, T_colu As Variant, T_colw As Variant Dim D_pass As Object, T_colp As Variant, Cptr As Long Dim idx As Long Dim start As Single '-------initialisations Application.ScreenUpdating = False start = Timer 'mémorisation données en RAM With Sheets("passage") Derlig = .Columns("P").Find(what:="*", searchdirection:=xlPrevious).Row T_colp = Application.Transpose(.Range("P3:P" & Derlig)) 'création d'un objet dictionnaire: liste des uniques en colonne p Set D_pass = CreateObject("scripting.dictionary") For Cptr = 1 To UBound(T_colp) If Not D_pass.exists(T_colp(Cptr)) Then D_pass.Add T_colp(Cptr), "" Next End With With Sheets("abc") Derlig = .Columns("U").Find(what:="*", searchdirection:=xlPrevious).Row T_colu = Application.Transpose(.Range("U3:U" & Derlig)) T_colw = Application.Transpose(.Range("W3:W" & Derlig)) End With '------- affectation T_colw si correspondance d_pass & col u For idx = 1 To UBound(T_colu) If D_pass.exists(T_colu(idx)) Then T_colw(idx) = "trouvée" Next 'restitution With Sheets("abc") .Range("U3:U" & Derlig) = Application.Transpose(T_colw) .Activate End With Application.ScreenUpdating = True MsgBox (" durée d'exécution: " & Timer - start & " sec.") End Sub
mais vu le manque de sérieux dans la demande, j'arr^te ici le suivi de la discussion
EDIT : Ajout du langage dans les balises de code.
Michel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
barry_mohamed
Messages postés
4
Date d'inscription
vendredi 7 août 2015
Statut
Membre
Dernière intervention
9 août 2015
9 août 2015 à 13:44
9 août 2015 à 13:44
Merci à tous .
Effectivement il y avait bien une erreur qui s'était glisée et qui faisait qu'on ne trouvait aucune correspondance. Je viens de corriger. Je remets donc le nouveau lien.
https://www.cjoint.com/c/EHjlKdQuJxY
Merci en tout Michel, mais c'est dommage que vous ne veuilliez plus me suivre. En effet, c'est juste une inattention de ma part j'y ai bossé toute la semaine et je commençait à fatiguer. Sinon je suis rigoureux en temps normal. Mais merci en tout cas
Effectivement il y avait bien une erreur qui s'était glisée et qui faisait qu'on ne trouvait aucune correspondance. Je viens de corriger. Je remets donc le nouveau lien.
https://www.cjoint.com/c/EHjlKdQuJxY
Merci en tout Michel, mais c'est dommage que vous ne veuilliez plus me suivre. En effet, c'est juste une inattention de ma part j'y ai bossé toute la semaine et je commençait à fatiguer. Sinon je suis rigoureux en temps normal. Mais merci en tout cas
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
9 août 2015 à 15:15
9 août 2015 à 15:15
Il faut bien te rendre compte que ce que tu demandes n'est pas forcément facile et que personne ne veut passer parfois plusieurs heures à essayer de résoudre un problème bénévolement pour se voir dire après coup " je commencais à fatiguer"...
c'est toi qui m'a fatigué
de toutes façons tu as le principe en utilisant dictionary; donc, fatigue toi encore un peu
c'est toi qui m'a fatigué
de toutes façons tu as le principe en utilisant dictionary; donc, fatigue toi encore un peu
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
9 août 2015 à 16:52
9 août 2015 à 16:52
Re,
Salut Michel_m
barry_mohamed: petite question vu que vous n'avez mis que des lignes avec LIGNE REG dans l'onglet passage, quelle est la difference reel entre les LIGNE REG et SCOLAIRE, si il y en a une, au niveau du "nom" dans la colonne P de passage
Salut Michel_m
barry_mohamed: petite question vu que vous n'avez mis que des lignes avec LIGNE REG dans l'onglet passage, quelle est la difference reel entre les LIGNE REG et SCOLAIRE, si il y en a une, au niveau du "nom" dans la colonne P de passage
barry_mohamed
Messages postés
4
Date d'inscription
vendredi 7 août 2015
Statut
Membre
Dernière intervention
9 août 2015
9 août 2015 à 19:52
9 août 2015 à 19:52
Bonsoir à tous le monde
En adaptant le code de Michel ça a focntionner.
Je remercie tout le monde pour votre apport.
En adaptant le code de Michel ça a focntionner.
Je remercie tout le monde pour votre apport.