Ouvrir un fichier dans une boucle
Bonjour à tous,
Après multiples tentatives, je reviens sur ce forum.
J’ai créé une macro qui me permets de comparer deux fichiers Excel et de noter « Ok » dans la colonne 3 du fichier 2 lorsque les noms correspondent entre eux.
Jusque-là tout fonctionne.
Je souhaiterais maintenant ajouter une variable : une colonne catégorie avec 2 choix possibles « lait » ou « chocolat ». La macro devra envoyer un mail à toutes les personnes qui ont choisi « lait » et noter à l’inverse « pas de catégorie » si c’est l’autre choix.
L’endroit où ça bloque c’est à l’ouverture du fichier 2 juste après la boucle IF***"lait", je pense ne pas utiliser les bons termes dans mon code.
Dernière info, dans le fichier 1 il y a 4 colonnes avec : noms, mails, prénoms et catégorie
Dans le fichier 2 il y a 2 colonnes avec : noms et quantité (que l’on n’utilise pas)
Etant ici pour apprendre, tout conseil est le bienvenu :)
Sub categorie()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim nom(1 To 2000) As String
Dim Mail(1 To 2000) As String
Dim Prénom(1 To 2000) As String
Dim catégorie(1 To 2000) As String
Dim i As Integer
Dim FL As Range
Dim DateDuJour As Date
Windows("1").Activate
Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Application.ScreenUpdating = False
Set FL = Worksheets("Destinataires").[a1]
DateDuJour = Worksheets("Destinataires").Range("F1").Value
For i = 2 To 2000
nom(i - 1) = FL.Cells(i, 1)
Mail(i - 1) = FL.Cells(i, 2)
Prénom(i - 1) = FL.Cells(i, 3)
catégorie(i - 1) = FL.Cells(i, 4)
If FL.Cells(i, 1) = "" And FL.Cells(i, 4) <> "lait" Then
Exit For
End If
If FL.Cells(i, 4) = "lait" Then
Windows("2.xlsx").Activate
Worksheets("cl").Activate
FL.Cells(i, 3).Value = "ok"
Worksheets("cl").Activate
FL.Cells(i, 3).Select
ActiveCell.Font.Color = 1
ActiveCell.Interior.ColorIndex = 10
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = Mail
.Subject = "catégorie lait ou chocolat"
.HTMLBody = "*****"
.Display
End With
End If
Set OutMail = Nothing
If nom(j) = "" Then
FL.Cells(i, 3).Value = "Pas de categorie"
FL.Cells(i, 3).Activate
ActiveCell.Font.Color = 1
ActiveCell.Interior.ColorIndex = 3
End If
Next i
End SubMerci d’avance !
Cordialement
Bonjour
Tu devrais joindre tes 2 fichiers.
Bye !