Procédure trop grande

Fermé
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020 - Modifié le 15 avril 2019 à 10:57
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020 - 16 avril 2019 à 11:17
Bonjour,

jai mis un code qui est très long , du coup a l'excution de cet dernier jai un message d'erreur "procedure trop grande"

je ne sais pas comment y proceder sachant que le code est une repetition identique avec une petite modification au niveau de range

le code que jai mis est disponible dans ce lien dans le module 1
https://www.cjoint.com/c/IDpi0azs1es

merci d'avance

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 15 avril 2019 à 17:29
Bonjour,

Votre code est une curiosite.

Y a pas d'activate mais y a ceci:
If ActiveCell.Activate And .Range("A" & i).Value = ActiveSheet.Range("A1").Value Then
If ActiveCell.Row = 2 And ActiveCell.Column = 2 And x = 1 Then

En laissant seulement 'tab1 pas d'erreur mais pas de resultat non plus!!!!!!!!!!!!!!!!!!!!!!!!!!!

De plus les
 if then elseif
sont un peu bizarre, pas les memes tests

ex:
If ActiveCell.Row = 2 And ActiveCell.Column = 2 And x = 1 Then
ElseIf ActiveCell = 3 And ActiveCell.Column = 2 And x = 2 Then


Code pourrait etre reduit, mais faudrait savoir ce que vous chercher comme resultat
0
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020
16 avril 2019 à 09:15
Bonjour

pour le activistes je ne les ai pas mis dans le fichier (vous trouver le fichier au complet dans le lien desous)

voici un code que jai mis et que ca fonctionne super bien , si c nest pas le code est tres long

pour le fonctionnement de la macro:

au double clique sur b2 on vas pas recuperer 2 ligne, mais on va recuperer toute les lignes dont leurs range a1 = range(a1) du tableau et dont le premier chifre de leurs cellule range("ao") = 1

si on clique sur b3 c le mm principe mais on va recuperer tt les lignes dont le premier chifre de la cellule (ao )= 2
pour b4 mm chose mais on recupere tt les lignes odnt le premier chifre de la cellule (AO) =3
b5 on recupere te les lignes dont le premier chifre dans la cellule (AO) =4

si on clique sur c2 on recupere tt les ligne dont leur range("a1") = range("a1") de la feuille de visualisation et dont le DEUXIEM chiffre de la cellule (A1)=1
..
.
.


et pour le 2 eme tableau c le mm principe sauf que mainteant le code compare les range(a1) par raport a range("a7") de la feuille de synthese

ainsi de suit pour les autres tableaux


voici le lien de document

https://www.cjoint.com/c/IDqhpsslNx3

merci d(avance
0
salut, probablement pas une bonne chose:

"sachant que le code est une repetition identique..."
Si vous devez répéter les choses c'est que vous les faites mal. L'informatique et la programmation c'est fait pour simplifier à l'humain là vous faites l'inverse.
Cela se peut en automatisant les processus(ou autres structures de programmation comme la POO) et adaptant les cas.
Répéter rend le code difficile à comprendre pour l'humain, redondant et bien sûr lourd et compliqué à interpréter par l'ordinateur car il doit faire plusieurs fois les mêmes tâches ce qui forcément se ressentira.
Quant au liens laissez tomber, mettez le code directement. Effectivement si le code est très long pour une chose simple c'est probablement votre façon de travailler qui ne va pas.
Ce n'est pas pratique pour vous aider de devoir cliquer sur un lien, pas une question d'activiste(je préfère qu'immobiliste perso) mais si vous demandez un service c'est du respect de mettre les formes auprès de vos interlocuteurs:
https://www.commentcamarche.net/infos/25845-charte-d-utilisation-de-commentcamarche-net/
0
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020
Modifié le 16 avril 2019 à 11:18
bonjour Duncho

merci pour votre reponse
le code fonctionne tres bien mais ca reste un tres grand code(visuellement) et jai demande si c possible de le reduire

pour quoi jai mis le lien, c parceque a chque fois il demandent le fichier au complet c plus facile de travailler directement sur le fichier , c pour ca je nai pas mis le code qui est tres tres grand ( PS jaurai aime mettre que le code , par ceque des fois les fichier sont confidentiel )
pour le respest je nai manque en cas moment le respect a personne , jai bien dit "merci d'avance " et j'etais tres respectueux envres ts le monde

merci quand mm pour ces conseilles
0