un internaute
XLDnaute Impliqué
Bonjour le forum
Dans les macros ci-dessous quelqu'un peut-il me placer au bon endroit
J'ai toujours du mal où le placer
Merci à vous
Cordialement
Dans les macros ci-dessous quelqu'un peut-il me placer au bon endroit
VB:
Application.ScreenUpdating = False
Merci à vous
Cordialement
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.Range("A1").Select
End Sub
Private Sub Workbook_Open()
Dim wSheet As Worksheet
Dim Feuille As String, AMasquer As String
Dim I As Integer
For Each wSheet In Worksheets
' wSheet.Protect UserInterfaceOnly:=True
Next wSheet
Feuille = MonthName(Month(Date)) & " " & Year(Date)
If FeuilleExiste(Feuille) = False Then Exit Sub
If UCase(Feuille) <> UCase(ActiveSheet.Name) Then
' Teste le nom en majuscule de la feuille du mois en cours avec le nom en majuscule de la feuille affichée
AMasquer = ActiveSheet.Name
With Sheets(Feuille)
.Visible = True
.Select
End With
Sheets(AMasquer).Visible = xlSheetVeryHidden
End If
For I = 1 To Sheets.Count 'Pour afficher tous les Mois
If UCase(Sheets(I).Name) <> UCase(Feuille) Then Sheets(I).Visible = xlSheetVeryHidden 'Pour afficher tous les Mois
Next I 'Pour afficher tous les Mois
Range("A1").Select ' Remet la sélection en A1 (Position normale) le 20/06/2021
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim NombreJour As Integer
Dim LaDate As Date
Dim MoisSuivant As String
Dim sDate As String, ValDate As Variant
Application.EnableEvents = False
' On recherche si la page est surveillée
If InStr(1, "JanvierFévrierMarsAvrilMaiJuinJuilletAoûtSeptembreOctobreNovembreDécembre", _
Split(Sh.Name, " ")(0), vbTextCompare) Then
' Calcul du nombre de jour dans le mois indiqué par le nom de la feuille
NombreJour = Day(DateAdd("m", 1, DateValue(Sh.Name)) - 1)
' If Target.Row - 5 > Day(Date) Then 'En commentaires ces 4 lignes pour afficher ligne données dans feuille
' Beep
' MsgBox "PAS LE BON JOUR"
' Else
' Surveille la plage du 1er au dernier jours du mois
If Not Intersect(Range("B6:C" & 5 + NombreJour, "F6:G" & 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
Range("A" & Target.Row) = IIf(Range("B" & Target.Row) = "", "", Application.Proper(Format(LaDate, "dddd dd mmmm yyyy")))
'
If Range("B" & Target.Row) = "" Then Range("C" & Target.Row) = "": Range("E" & Target.Row) = ""
'
Range("F" & Target.Row) = IIf(Range("B" & Target.Row) = "", "", LaDate)
' End If
Target.Select
End If
End If
' End If 'En commentaires cette ligne pour afficher ligne données dans feuille
Application.EnableEvents = True
End Sub
Function FeuilleExiste(Nom As String) As Boolean
On Error Resume Next
FeuilleExiste = Sheets(Nom).Name <> ""
On Error GoTo 0
End Function
Sub ret()
Application.EnableEvents = True
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = Not Cancel
Select Case Target.Address
Case "$A$3": If Not Target.Comment Is Nothing Then KilometrageDeDepart
Case "$B$2"
Columns("F:F").Hidden = Not Columns("F").Hidden
Case "$G$1"
UsfChoix.Show 0
Case Else
End Select
If Not Intersect(Range("D3"), Target) Is Nothing Then
Cancel = True
TbCoul = Array(3, 5, 5, 5)
Tb = Array("", "SP 95", "SP 98")
'X = UCase(Trim(Target)) 'Pour mettre en Majuscule
X = (Trim(Target))
If UBound(Filter(Tb, X)) >= 0 Then
Indice = Application.Match(X, Tb, 0) Mod (1 + UBound(Tb))
Target = Tb(Indice)
Couleur = TbCoul(Indice)
If Couleur = 0 Then
Couleur = Target.Offset(0, -1).Interior.ColorIndex
End If
Target.Interior.ColorIndex = Couleur
Else
Target = ""
End If
ElseIf Not Intersect(Range("D2", "D4:D5"), Target) Is Nothing Then
Cancel = True
TbCoul = Array(3, 5, 5, 5)
Tb = Array("", "Super U Labussière", "Super U Corgnac", "Leclerc Limoges")
'X = UCase(Trim(Target)) 'Pour mettre en Majuscule
X = (Trim(Target))
If UBound(Filter(Tb, X)) >= 0 Then
Indice = Application.Match(X, Tb, 0) Mod (1 + UBound(Tb))
Target = Tb(Indice)
Couleur = TbCoul(Indice)
If Couleur = 0 Then
Couleur = Target.Offset(0, -1).Interior.ColorIndex
End If
Target.Interior.ColorIndex = Couleur
Else
Target = ""
End If
End If
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim LaDate As Date, J As Long
If Target.Address <> Selection.Address Then Exit Sub
If Target.Column = 2 Then
For J = 6 To 36
If Cells(J, "B") = "" Then Cells(J, "A").ClearContents
Next J
' 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)
If UCase(MonthName(Month(LaDate))) = UCase(Split(Sh.Name, " ")(0)) Then
' Si la colonne B et la colonne C est vide on efface la date
Range("A" & Target.Row) = Application.Proper(Format(LaDate, "dddd dd mmmm yyyy"))
End If
End If
End Sub