[Déplacé VB6 --> VBA] Problème macro, formules ou ordi ?
scoobytor
Messages postés3Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention 3 septembre 2009
-
3 sept. 2009 à 01:49
scoobytor
Messages postés3Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention 3 septembre 2009
-
3 sept. 2009 à 11:37
Bonjour,
Je ne sais plus quoi faire.
J'ai créé un fichier Excel pour gérer les patients du cabinet d'une amie Ostéo.
Pour faire le suivi, j'ai créé une userfom avec une multipage à 6 onglets et différentes macros pour créer, rechercher, modifier ou supprimer les patients.
Il y a également le suivi de ses honoraires et un tableau statistiques utilisant surtout la fonction NB.SI.ENS().
Toutes les macros fonctionnent (essai en mode pas à pas détaillé, à part ou depuis la userform), hors lorsque j'utilise la userform, le fichier plante, jamais sur la même macro et à des moments différents.
Pour info j'utlise Excel 2007, son pc à 3 Go de ram, le classeur contient 14 onglets, dont 1 base de 6000 lignes sur 152 colonnes, 1 base de 10000 lignes sur 84 colonnes et 1 base de 10000 lignes sur 59 colonnes et le fichier fait 2453 ko (et environ 150 heures de boulot).
Est-on limité au nombre de calculs, de macros ou d'opérations à partir d'une userform, ou sans refermer celle-ci.
Merci d'avance pour votre réponse ou suggestion.
P.S: Je peux vous envoyer une copie du fichier si besoin.
J'ai déjà essayer de résoudre en supprimant les macros une à une , en les réécrivants une à une, de supprimer les onglets du classeur un à un.
Lorsqu'il plante, je fais CTRL+ALT+SUPPR et fin de tâches, il remarche à nouveau et plante.
A voir également:
[Déplacé VB6 --> VBA] Problème macro, formules ou ordi ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 3 sept. 2009 à 09:41
Salut
Voir quelques manips dans <ce lien> Quand "ça plante", il se passe quoi ? Message d'erreur ?
Que fait le programme au moment du plantage ? des macros sont en cours ou bien simplmenent en cours d'affichage ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 3 sept. 2009 à 10:45
DoEvents redonne la main au système.
Si tu fais une boucle (ça m'étonne que tu n'en fasses pas), genre For-Next ou Do-Loop, le programme prend toutes les ressources qui lui sont nécessaire pour travailler. Pendant ce temps, qui peut être long si la boucle compte de gros chiffres comme tes 10000 lignes x 150 colonnes, même le clavier peut ne plus répondre : le système n'a pas le temps de gérer ses périfiériques.
En utilisant un DoEvents de temps en temps, cela permet de "sortir" du programme pour laisser travailler le système ou les autres programmes en cours.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Vous n’avez pas trouvé la réponse que vous recherchez ?
scoobytor
Messages postés3Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention 3 septembre 2009 3 sept. 2009 à 11:37
Pour gérer les patients je me sers d'une ligne saisie associé à la userform, une ligne recherche (par la formule recherchev()) et une ligne modification.
Ensuite c'est dans la 1ère colonne que se fait le test par une formule SI de savoir si la ligne correspond au patient.
Ensuite je viens coller les valeurs de la ligne 1, 2 ou 3 sur la ligne du patient.
Donc je n'ai pas de boucle dans mes macros.
Je suis en train d'essayer l'option retrait du calcul automatique.