MACRO A REPETER SUR LIGNES INFERIEURES

CHRISTOF26 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
CHRISTOF26 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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



A voir également:

4 réponses

ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
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
CHRISTOF26 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, merci de ta réponse.
après ma 1ere ligne, en ai encore 19 autre puis plus rien.
Comment faire une boucle ?
0
ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
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
CHRISTOF26 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
merci je regarde cela et te dit. Merci pour ton aide.
0