barry white
XLDnaute Occasionnel
Bonjour,
J'ai une macro qui fait des actions en fonction du contennu d'un feuillet, je m explique
Feuille 1 : dans la colonne A j'ai des noms qui peut aller jusqu a la 21eme ligne et parfois elle peut aller jusqu a la 6eme lignes.
Ma macro se base sur cette FEUILLE/cellule pour traiter une autre feuille en fonction des ces informations.
Mais j'ai fais un peu le bourrin, c'est a dire dans mon code j'ai recoiper 21 fois la meme chose, en changant bien sur les numero de ligne a chaque fois.
Le probele quand j'ai que 6 lignes, il va encore executer 15 fois ma macro.
Donc comment faire pour que ma macro s'arrete au bon moment.
Merci à vous 🙂
mon code :
Dim rep As String
Dim Nom As String
Dim Nom1 As String
Dim init As String
Dim Extension As String
repertoire = ActiveWorkbook.Path & "\"
Nom = "MIS_CHRONO_"
Nom1 = Left(Mid(ActiveWorkbook.name, 12), Len(Mid(ActiveWorkbook.name, 12)) - 4)
init = Range("Table_Ressources_chronogramme!$F$2")
mail = Range("Table_Ressources_chronogramme!$D$2")
Extension = ".xls"
Range("E1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=Range("Table_Ressources_chronogramme!C2")
Range("A1:I492").Select
Range("E1").Activate
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Run "PERSO.XLS!MIS_Mettre_en_forme_chrono"
Rows("4:4").EntireRow.AutoFit
Application.Run "PERSO.XLS!MIS_Proteger_saisie_figer_feuille_filtrer"
Range("C2").Select
ActiveWorkbook.SaveAs Filename:= _
repertoire & Nom & Nom1 & "_" & init & Extension _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Range("G40").Select
Selection.AutoFilter
'Creation de l'objet e-mail
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olmailItem)
'Caractéristiques de l'e-mail
With olmail
.To = Range("Table_Ressources_chronogramme!$D$2")
'Affiche le nom comme objet du message
.Subject = "[ blabla]"
.Body = "bonjour "
'Pièces jointes si il y a lieu
repertoire = ActiveWorkbook.Path & "\"
Nom = "MIS_CHRONO_"
Nom1 = Left(Mid(ActiveWorkbook.name, 12), Len(Mid(ActiveWorkbook.name, 12)) - 4)
init = Range("Table_Ressources_chronogramme!$F$2")
Extension = ".xls"
.Attachments.Add _
repertoire & Nom & Nom1 & "_" & init & Extension _
End With
J'ai une macro qui fait des actions en fonction du contennu d'un feuillet, je m explique
Feuille 1 : dans la colonne A j'ai des noms qui peut aller jusqu a la 21eme ligne et parfois elle peut aller jusqu a la 6eme lignes.
Ma macro se base sur cette FEUILLE/cellule pour traiter une autre feuille en fonction des ces informations.
Mais j'ai fais un peu le bourrin, c'est a dire dans mon code j'ai recoiper 21 fois la meme chose, en changant bien sur les numero de ligne a chaque fois.
Le probele quand j'ai que 6 lignes, il va encore executer 15 fois ma macro.
Donc comment faire pour que ma macro s'arrete au bon moment.
Merci à vous 🙂
mon code :
Dim rep As String
Dim Nom As String
Dim Nom1 As String
Dim init As String
Dim Extension As String
repertoire = ActiveWorkbook.Path & "\"
Nom = "MIS_CHRONO_"
Nom1 = Left(Mid(ActiveWorkbook.name, 12), Len(Mid(ActiveWorkbook.name, 12)) - 4)
init = Range("Table_Ressources_chronogramme!$F$2")
mail = Range("Table_Ressources_chronogramme!$D$2")
Extension = ".xls"
Range("E1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=Range("Table_Ressources_chronogramme!C2")
Range("A1:I492").Select
Range("E1").Activate
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Application.Run "PERSO.XLS!MIS_Mettre_en_forme_chrono"
Rows("4:4").EntireRow.AutoFit
Application.Run "PERSO.XLS!MIS_Proteger_saisie_figer_feuille_filtrer"
Range("C2").Select
ActiveWorkbook.SaveAs Filename:= _
repertoire & Nom & Nom1 & "_" & init & Extension _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Range("G40").Select
Selection.AutoFilter
'Creation de l'objet e-mail
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olmailItem)
'Caractéristiques de l'e-mail
With olmail
.To = Range("Table_Ressources_chronogramme!$D$2")
'Affiche le nom comme objet du message
.Subject = "[ blabla]"
.Body = "bonjour "
'Pièces jointes si il y a lieu
repertoire = ActiveWorkbook.Path & "\"
Nom = "MIS_CHRONO_"
Nom1 = Left(Mid(ActiveWorkbook.name, 12), Len(Mid(ActiveWorkbook.name, 12)) - 4)
init = Range("Table_Ressources_chronogramme!$F$2")
Extension = ".xls"
.Attachments.Add _
repertoire & Nom & Nom1 & "_" & init & Extension _
End With