Limite de ligne à ma Macro
S
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 Subr
Bonjour,
Sans doute là remplacez le 2000 par une valeur supérieure
For i = 2 To 2000
S
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 ?!...