Bonjour à tous,
J'aurais besoin de votre aide afin de modifier une macro.
Voici mon problème :
Actuellement la macro cherche dans "Planning", une durée et un lieu (2conditions) afin de remplir "Frais" selon un barème contenu dans un 3ème onglet. (Planning et Frais se présentent exactement de la même manière avec en A des dates et en 1 des noms)
Seulement j'aimerais la modifier afin qu'elle ne tienne plus compte que du lieu (sachant que dans Planning on n'affiche plus la durée) mais en revanche qu'elle détecte si ce lieu apparait consécutivement plusieurs fois ou pas (sur une période de 5 jours) et selon qu'elle affecte la bonne valeur. En fait je ne sais pas comment lui faire prendre en compte cette notion de consécutif.
Pour éclaircir mes propos cette macro rempli un planning avec des montants en fonction d'un autre planning où sont présents des lieux.
Actuellement j'ai ce code :
Sub Frais()
Dim Cel As Range
Dim Cel1 As Range
Dim Lieu As String
Dim Duree As String
Dim Lg As Long
Dim Cl As Integer
Dim Plg As Range
Dim WsG As Worksheet
Dim WsF As Worksheet
Application.ScreenUpdating = False
Set WsF = Sheets("Frais")
With Sheets("Planning")
Lg = .Range("A" & Rows.Count).End(xlUp).Row
Cl = .Cells(1, Columns.Count).End(xlToLeft).Column
On Error Resume Next
Set Plg = .Range(.Range("B2"), .Cells(Lg, Cl)).SpecialCells(xlCellTypeConstants, 23)
On Error GoTo 0
End With
If Plg Is Nothing Then
MsgBox "Pas d'info dans la page Planning"
Exit Sub
End If
For Each Cel In Plg
Lieu = Split(Cel, "/")(1)
Duree = Split(Cel, "/")(0)
Set Cel1 = Range("H1:Q1").Find(what:=Duree, LookIn:=xlValues, lookat:=xlWhole)
If Not Cel1 Is Nothing Then
Cl = Cel1.Column
Set Cel1 = Range("F2:F17").Find(what:=Lieu, LookIn:=xlValues, lookat:=xlWhole)
If Not Cel1 Is Nothing Then
Lg = Cel1.Row
Cells(Lg, Cl).Select
WsF.Range(Cel.Address) = ActiveCell
Else
MsgBox "Lieu " & Lieu & " non trouvé"
End If
Else
MsgBox "Durée " & Duree & " non trouvée"
End If
Next Cel
End Sub
J'espère avoir été assez clair et que vous pourrez m'apporter une solution.
Merci d'avance pour votre aide car je n'ai vraiment pas le niveau pour effectuer cette modif' !