Boucle while erreur de capacité

Fermé
anna - 23 mars 2015 à 15:23
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 mars 2015 à 16:23
Bonjour,

j'ai crée une boucle while qui recherche un numéro de NIDT (pris dans le fichier "detailV&R") dans une colonne d'un autre fichier ( fichier "fichier melody 2014") quand elle l'a trouvé elle récupère et note des informations si rapportant dans un autre fichier (partie non retranscrite). Le pb c'est que lorsque le numéro NIDT recherché n'existe pas dans la colonne la macro bug et dit "erreur de capacité" malgré le fait que j'ai mis un "on error goto".
Pouvez vous m'aider à résoudre ce pb?

Merci

Anna

Voici la macro:

Sub NIDT()

début:

Dim NIDT As String
Dim m, N As Integer
Dim DernLigne As Long
Dim myRange As Range

'On récupere le numéro de la dernière ligne du fichier "Détail_V&R test"

Windows("Détail_V&R test.xls").Activate
DernLigne = Range("A" & Rows.Count).End(xlUp).Row

For m = 2 To DernLigne
Windows("macro.xls").Activate
If Cells(m, 8) = "" Then


Windows("Détail_V&R test.xls").Activate
NIDT = Cells(m, 8).Value

Windows("fichier melody 2014.xls").Activate
While Cells(N, 3) <> NIDT
'TANT QUE la ligne n'est pas egale au n° NIDT
N = N + 1'Le numéro est augmenté de 1 à chaque boucle
On Error GoTo suite
Wend

suite:
MsgBox "je n'ai pas traité ce fichier" & NIDT
GoTo début

End Sub

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 mars 2015 à 16:23
Bonjour,
Normal car tu n'as pas mis de "butée" (dernière ligne) à la colonne "C" donc tu boucles jusqu'à dépasser la capacité
ce que j'aurais écris (impossible à tester)
Windows("fichier melody 2014.xls").Activate

If Application.CountIf(Columns("C"), NIDT) = 0 Then
MsgBox "blabla"
GoTo suite
Else
N = Columns("C").Find(NIDT, Cells(1, "C"), xlValues).Row
End If

0