Plantage lors de l'exécution de mon code - VB/VBA/VBS - Programmation
Marsh Posté le 04-10-2013 à 12:13:56
Par hasard ton "Maligne" irais pas au dela de 32000 et quelques lignes?
Sinon, quel est le message d'erreur et sur quelle ligne l’exécution s'arrête?
Marsh Posté le 04-10-2013 à 12:34:02
Ca me rappelle un vieux problème que j'avais eu autrefois.
J'avais pensé aussi que cela venait de la mémoire qui n'était pas libérée.
Mais en réalité le plantage était dû à certaines cellules particulières.
Elles étaient nulles, mais pas vides.
Donc, il faudrait essayer de remplacer
Loop Until Sheets("Contrôle" ).Range("A" & Maligne).Value = "" |
par
Loop Until Nz(Sheets("Contrôle" ).Range("A" & Maligne)) = "" |
Marsh Posté le 04-10-2013 à 13:59:23
Merci olivhill ... je vais essayer ça.
Sinon, pour te répondre Arl Guhr, dans mon cas, "Maligne" ne dépasse pas 32000 lignes. D'ailleurs, la dernière ligne est 3931.
Et je n'ai aucun message d'erreur. Y a juste Excel qui ne répond plus au bout d'un moment. et en moyenne, c'est au bout de 250 lignes que ça plante.
Mais si j'utilise le pas à pas (F8) ... là ça marche et ça ne plante pas ...
Marsh Posté le 04-10-2013 à 14:05:52
olivthill a écrit : Ca me rappelle un vieux problème que j'avais eu autrefois.
|
Je viens d'essayer de remplacer ma ligne de code par la tienne ... Je ne peux pas compiler le projet
Ça me met :
Erreur de compilation: |
C'est sur le "Nz" qui surligne l'erreur ...
Euh ... Je précise, je suis un peu beaucoup débutante en VBA. Et c'est mon 1er code pour lequel je transforme les formules en Excel en code (d'habitude, j'utilise l'enregistreur pour avoir ma formule retranscrite)
Marsh Posté le 04-10-2013 à 15:50:42
Bonjour,
La boucle de ta fonction recherche1 s'arrête comment si elle ne trouve pas la valeur?
Marsh Posté le 04-10-2013 à 16:38:47
breizhbugs a écrit : Bonjour, |
En fait, elle trouvera obligatoirement la valeur car il s'agit d'un copié-collé entre les 2 onglets : la colonne B de l'onglet "PB" est copié sur la colonne A de l'onglet "contrôle"
Mais il est vrai que je n'ai pas fait de sortie dans le cas où ma recherche1 ne trouve pas la valeur (puisque dans mon fichier, ce n'est pas possible ...)
Marsh Posté le 04-10-2013 à 20:32:04
Bonjour,
afin d'optimiser la recherche,voir l'aide de la fonction Find et son exemple, y a pas photo !
Sinon la variable MyArray est totalement inutile dans ce code …
Marsh Posté le 04-10-2013 à 23:58:31
michele_ a écrit :
|
Désolé, j'ai confondu Excel et Access. Toutes mes excuses.
Marsh Posté le 08-10-2013 à 11:33:33
Merci, je vais creuser pour utiliser la fonction Find
Pas de soucis olivthill
Marsh Posté le 04-10-2013 à 10:26:05
Bonjour,
J'ai créé une macro qui plante quand je la lance au bout d'un certain nombre de lignes.
En effet, ma boucle plante au bout d'environ 250 lignes
Voici mon code :
Si vous avez une idée de comment je peux vider la mémoire au fur et à mesure que ma boucle passe ... ce serait génial
D'ailleurs, le code fonctionne parfaitement quand je suis sur peu de lignes ....
Merci