MACRO A REPETER SUR LIGNES INFERIEURES

Bonjour à tous. Votre forum m'aide très souvent merciiii
aujourd'hui, j'ai créé une macro qui créé une alerte outlook en prenant en compte la date et l'heure de mon rappel mis dans une cellule et en reprenant le nom de mon prospect à suivre.
ca marche pour ma première ligne. Seulement, je voulais répéter cette macro sur toutes les lignes en dessous.
Dans ma macro, j'ai "figé" les 2 cellules ou je dois chercher l'info : N5 pour date et A5 pour nom prospect. Je voudrai par défaut que pour la ligne suivante N5 devienne N6 et A5 devienne A6 etc... Euh... Suis je assez clair ? voici ma macro.

Sub AjoutTache()
Dim OlApp As Object
Dim NS As Object, ObjTask As Object
Set OlApp = CreateObject("Outlook.Application")
Set NS = OlApp.GetNamespace("MAPI")
Set ObjTask = OlApp.CreateItem(olTaskItem)
With ObjTask
.Subject = [A5]
'.Body = "texte"
.ReminderTime = [N5]
.ReminderSet = True
.Display 'mettre en commentaire après mise au point
End With
ObjTask.Save
End Sub

Merci pour toute aide
Christophe B

4 réponses

  1. Salut,

    Y'a combien de ligne en dessous ?
    Si on fait une boucle il faut un facteur d'arrêt.

    Soit 20 lignes et on s'arrête,
    Soit tant que la ligne du dessous n'est pas vide.
    Est-ce que, quand A20 imaginons est vide alors ta création s'arrête là.
    Soit de A5 à A19, on crée et comme A20 est vide alors on sort de la boucle.
    0
    1. Bonjour, merci de ta réponse.
      après ma 1ere ligne, en ai encore 19 autre puis plus rien.
      Comment faire une boucle ?
      0
      1. J'ai essayer quelque chose mais comme je peux pas tester le code, je sais pas ce que ça va donner mais le principe est là :

        Sub AjoutTache()
        
            Dim OlApp As Object
            Dim NS As Object, ObjTask As Object
            Dim i As Integer
            
            Set OlApp = CreateObject("Outlook.Application")
            Set NS = OlApp.GetNamespace("MAPI")
            Set ObjTask = OlApp.CreateItem(olTaskItem)
            
            For i = 5 To 24
                With ObjTask
                .Subject = Range("A" & i&)
                '.Body = "texte"
                .ReminderTime = Range("N" & i&)
                .ReminderSet = True
                .Display 'mettre en commentaire après mise au point
                End With
                ObjTask.Save
            Next
            
        End Sub


        Ou si le premier code ne fonctionne pas

        Sub AjoutTache()
        
            Dim OlApp As Object
            Dim NS As Object, ObjTask As Object
            Dim i As Integer
            
            Set OlApp = CreateObject("Outlook.Application")
            Set NS = OlApp.GetNamespace("MAPI")
            Set ObjTask = OlApp.CreateItem(olTaskItem)
            
            For i = 5 To 24
                With ObjTask
                .Subject = [A&i]
                '.Body = "texte"
                .ReminderTime = [N&i]
                .ReminderSet = True
                .Display 'mettre en commentaire après mise au point
                End With
                ObjTask.Save
            Next
            
        End Sub
        


        Ici, la boucle For va être répété 20 fois avant de s'arrêter.
        Et la cellule sera donc en premier lieu A5 -> Range("A" & i&)
        Puis au second passage alors comme i est incrémenter la cellule sera alors A6, de même pour N.
        Et ainsi de suite jusqu'à 25

        1f u c4n r34d th1s u r34lly n33d t0 g37 l41d !
        0
        1. merci je regarde cela et te dit. Merci pour ton aide.
          0