Autres {RÉSOLU] Problème macro

un internaute

XLDnaute Impliqué
Bonjour le forum
Dans le bout de macro ci-dessous dans la colonne H il faudrait qu s'affiche 0 le dimanche comme le samedi

VB:
        ' Surveille la plage du 1er au dernier jours du mois
        'If Not Intersect(Range("B6:C" & 5 + NombreJour, "F6:F" & 5 + NombreJour), Target) Is Nothing Then
        If Not Intersect(Range("B6:C" & 5 + NombreJour), Target) Is Nothing Then
          ' Reconstruit la date de fonction du nom de la feuille et du numéro de ligne sélectionnée
          Ladate = DateSerial(Split(Sh.Name, " ")(1), Month(DateValue(Sh.Name)), Target.Row - 5)
          ' Si la colonne B et la colonne C est vide on efface la date
          Select Case Range("B" & Target.Row)
            Case "Repos", "Congés"
              Range("C" & Target.Row) = Range("B" & Target.Row)
          End Select
          If Range("B" & Target.Row) = "Congés" Or Range("B" & Target.Row) = "Repos" Then Range("C" & Target.Row) = Range("B" & Target.Row)
          Range("A" & Target.Row) = IIf(Range("B" & Target.Row) & Range("C" & Target.Row) = "", "", Application.Proper(Format(Ladate, "dddd dd mmmm yyyy")))
          Range("I" & Target.Row) = IIf(Range("A" & Target.Row) & Range("B" & Target.Row) & Range("C" & Target.Row) = "", "", Ladate)
          Range("H" & Target.Row) = IIf(Not (IsNumeric(Range("B" & Target.Row))), 0, 1)
          If Range("B" & Target.Row) = "" Then
            Range("H" & Target.Row) = ""
          ElseIf Weekday(CDate(Range("I" & Target.Row)), 2) = 6 Then
            Range("H" & Target.Row) = 0
          End If
          ' si la ligne modifiée est la dernière du mois et que la colonne est la C
          If Target.Row = NombreJour + 5 And Target.Column = 3 Then       ' Colonne C
            ' On construit le nom de la feuille du mois suivant
            MoisSuivant = MonthName(Month(DateAdd("m", 1, DateValue(Sh.Name)))) & " " & Year(DateAdd("m", 1, DateValue(Sh.Name)))
            ' On va vérifier si la feuille existe
            If FeuilleExiste(MoisSuivant) = False Then   'Exit Function
            ' La feuille existe
            With Sheets(MoisSuivant)
              'On la rend visible
              .Visible = xlSheetVisible
              ' On masque celle que l'on vient de finir
              ActiveSheet.Visible = xlSheetHidden
              ' et on la sélectionne
              .Select
            End With
          End If
        End If
      End If
    End If
  End If                                           
  End If
 
  Application.EnableEvents = True
'End Function
End Sub

Je pense que ça se passe dans les lignes de la macro ci-dessous


Code:
          If Range("B" & Target.Row) = "Congés" Or Range("B" & Target.Row) = "Repos" Then Range("C" & Target.Row) = Range("B" & Target.Row)
          Range("A" & Target.Row) = IIf(Range("B" & Target.Row) & Range("C" & Target.Row) = "", "", Application.Proper(Format(Ladate, "dddd dd mmmm yyyy")))
          Range("I" & Target.Row) = IIf(Range("A" & Target.Row) & Range("B" & Target.Row) & Range("C" & Target.Row) = "", "", Ladate)
          Range("H" & Target.Row) = IIf(Not (IsNumeric(Range("B" & Target.Row))), 0, 1)
          If Range("B" & Target.Row) = "" Then
            Range("H" & Target.Row) = ""
          ElseIf Weekday(CDate(Range("I" & Target.Row)), 2) = 6 Then
            Range("H" & Target.Row) = 0
          End If

Merci pour vos éventuels retours

Cordialement
 

Discussions similaires

Réponses
1
Affichages
227

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh