Limite de ligne à ma Macro

Hello,

Alors voilà, jusqu'aujourd'hui ma Macro ci-dessous fonctionnait parfaitement, et puis du jour au lendemain, PLUS RIEN !

Je me suis rendu compte que pour jusqu'à la ligne 2000 ça fonctionne, et dès la 2001, pouf, ça ne fonctionne plus. Quelqu'un sait me dire dans mon code, ce qui me limite à "x" lignes s'il vous plaît ? Merci d'avance

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' envoi un mail automatique avec le contenu de l'anomalie
' Consignes de migration: rajouter un statut "Non Diffusé" dans la dernière colonne du tableau
' Donner accès à Excel 2010
' Intégrer la liste de diffusion
' Contrôle de statut " Non Diffusé

Dim ol As Object, monItem As Object
    Dim i
Dim j
Dim k
Dim cont
Dim Genre
Dim Référence
Dim commentaire
Dim da
Dim Motif
Dim Fournisseur
Dim Signature

i = 2
j = 2
te = 0
k = 2

' On récupère la ou les lignes concernées par un éventuel envoi
For i = 2 To 2000

    If Worksheets("Reste_à_quai").Range("O" & i).Value = "Non diffusé" Then
    Worksheets("Reste_à_quai").Range("T" & j).Value = i
    j = j + 1
    End If

Next i

' On envoie les mails concernés

While Worksheets("Reste_à_quai").Range("T" & k).Value <> ""
    cont = CInt(Worksheets("Reste_à_quai").Range("T" & k).Value)
    'On récupère les données
    Genre = Worksheets("Reste_à_quai").Range("D" & cont).Value
    Référence = Worksheets("Reste_à_quai").Range("G" & cont).Value
    Signature = Worksheets("Reste_à_quai").Range("BW505").Value
    commentaire = Worksheets("Reste_à_quai").Range("N" & cont).Value
    da = Worksheets("Reste_à_quai").Range("C" & cont).Value
    Motif = Worksheets("Reste_à_quai").Range("M" & cont).Value
    Fournisseur = Worksheets("Reste_à_quai").Range("E" & cont).Value
    modèle = Worksheets("Reste_à_quai").Range("AD" & cont).Value
    couleur = Worksheets("Reste_à_quai").Range("AE" & cont).Value
    quantité = Worksheets("Reste_à_quai").Range("AH" & cont).Value
    ligne = Worksheets("Reste_à_quai").Range("BV" & cont).Value
    taille = Worksheets("Reste_à_quai").Range("AG" & cont).Value
    SKU = Worksheets("Reste_à_quai").Range("AI" & cont).Value

    'On envoit le mail en question
    Set ol = CreateObject("outlook.application")
    Set monItem = ol.CreateItem(olMailItem)
    'monItem.To = " blabla@blabla.com "
        If Genre = "H" Then
    monItem.To = " blabla@blabla.com "
    Else
        If Genre = "F" Then
    monItem.To = " blabla@blabla.com "
    Else

    End If
    End If
    monItem.CC = " blabla@blabla.com "
    monItem.Subject = "Anomalie  " & Fournisseur
    monItem.Body = "Bonjour," & Chr(13) & Chr(13) & "Nous ne pouvons pas réceptionner une livraison du fournisseur " & Fournisseur & " en date du " & da & "." & Chr(13) & Chr(13) & "Modèle : " & modèle & " " & couleur & " Taille : " & taille & Chr(13) & Chr(13) & "SKU : " & SKU & Chr(13) & Chr(13) & "Pour une quantité de " & quantité & " pièces." & Chr(13) & Chr(13) & "N° d'ASN si disponible (n° de PO à défaut) : " & Référence & Chr(13) & Chr(13) & "Numéro de ligne dans le suivi des restes à quais : " & ligne & Chr(13) & Chr(13) & "Cause de blocage : " & Motif & Chr(13) & Chr(13) & "Commentaires : " & commentaire & Chr(13) & Chr(13) & "Cordialement," & Chr(13) & Chr(13) & Chr(13) & Signature
    monItem.Send
    Set ol = Nothing
    k = k + 1

    'On change le statut de l'anomalie
    Worksheets("Reste_à_quai").Range("O" & cont).Value = "Diffusé"
Wend

Worksheets("Reste_à_quai").Range("T2:T40").ClearContents

End Sub

Bonjour,

Sans doute là remplacez le 2000 par une valeur supérieure

For i = 2 To 2000

Tout simplement ... on y voit plus clair à force de l'avoir tout le temps sous les yeux

Bonjour SoCRack, bonjour le forum,

1. le type de la majorité de tes Variables n'est pas défini donc prend le type Variant par défaut

2. tu boucles de 2 à 2000... Donc il est normal qu'à 2001 ça s'arrête non ?!...

Rechercher des sujets similaires à "limite ligne macro"