Je vous sollicites pas mal ces temps ci...
J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates.
Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont
la date en B est <= Date du jour +5
j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire.
Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Domi,
Les procédures soumises ont pour effet de protéger toutes les lignes de la feuille 1 dont la teneur de la colonne B1:B100 a une date supérieur à aujourdhui() +5
Attention dans le +5 , la date de la journée en cours est incluse. Si tu veux obtenir 5 jours excluant la journée en cours tu dois additionner 6 jours dans la procédure.
La procédure prend pour acquis que toutes les informations contenues dans la colonne B1:B100 sont des dates. La procédure ne possède pas aucune mesure de contrôle. Devrait-elle en avoir ?
La procédure va s'exécuter qu'une fois à l'ouverture du classeur... Il ne faut pas oublier d'adapter le nom de la feuille dans la procédure pour celle de ton application.
Dans le thisworkbook de ton classeur : Copie ceci :
'-------------------- Private Sub Workbook_Open() ProtegeLigne End Sub '--------------------
Dans un module standard
'--------------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5) Sel = xlUnlockedCells With Worksheets("Feuil1") 'à déterminer Nom Feuille .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = Rg(2).NumberFormat Rg.NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With End Sub '---------------------------------------
Salutations!
"Domi" a écrit dans le message de news: Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
Bonjour Domi,
Les procédures soumises ont pour effet de protéger toutes les lignes de la feuille 1 dont la teneur de la colonne B1:B100 a
une date supérieur à aujourdhui() +5
Attention dans le +5 , la date de la journée en cours est incluse. Si tu veux obtenir 5 jours excluant la journée en cours tu
dois additionner 6 jours dans la procédure.
La procédure prend pour acquis que toutes les informations contenues dans la colonne B1:B100 sont des dates. La procédure ne
possède pas aucune mesure de contrôle. Devrait-elle en avoir ?
La procédure va s'exécuter qu'une fois à l'ouverture du classeur... Il ne faut pas oublier d'adapter le nom de la feuille
dans la procédure pour celle de ton application.
Dans le thisworkbook de ton classeur : Copie ceci :
'--------------------
Private Sub Workbook_Open()
ProtegeLigne
End Sub
'--------------------
Dans un module standard
'---------------------------------------
Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection
Dim Critère As Long
Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5)
Sel = xlUnlockedCells
With Worksheets("Feuil1") 'à déterminer Nom Feuille
.Unprotect "Toto"
Set Rg = .Range("B1:B100")
With Rg
.EntireRow.Locked = False
LeFormat = Rg(2).NumberFormat
Rg.NumberFormat = "General"
.AutoFilter Field:=1, Criteria1:=">" & Critère
.SpecialCells(xlCellTypeVisible).EntireRow.Locked = True
.AutoFilter
.NumberFormat = LeFormat
End With
.Protect "Toto", , , , True
.EnableSelection = Sel
End With
End Sub
'---------------------------------------
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de news:eIpIPojRDHA.2196@TK2MSFTNGP11.phx.gbl...
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci...
J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates.
Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont
la date en B est <= Date du jour +5
j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire.
Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Les procédures soumises ont pour effet de protéger toutes les lignes de la feuille 1 dont la teneur de la colonne B1:B100 a une date supérieur à aujourdhui() +5
Attention dans le +5 , la date de la journée en cours est incluse. Si tu veux obtenir 5 jours excluant la journée en cours tu dois additionner 6 jours dans la procédure.
La procédure prend pour acquis que toutes les informations contenues dans la colonne B1:B100 sont des dates. La procédure ne possède pas aucune mesure de contrôle. Devrait-elle en avoir ?
La procédure va s'exécuter qu'une fois à l'ouverture du classeur... Il ne faut pas oublier d'adapter le nom de la feuille dans la procédure pour celle de ton application.
Dans le thisworkbook de ton classeur : Copie ceci :
'-------------------- Private Sub Workbook_Open() ProtegeLigne End Sub '--------------------
Dans un module standard
'--------------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5) Sel = xlUnlockedCells With Worksheets("Feuil1") 'à déterminer Nom Feuille .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = Rg(2).NumberFormat Rg.NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With End Sub '---------------------------------------
Salutations!
"Domi" a écrit dans le message de news: Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
garnote
Je vous le dis, moi, ce sont des magiciens, ces gars-là !!!
Serge
'-------------------- Private Sub Workbook_Open() ProtegeLigne End Sub '--------------------
Dans un module standard
'--------------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5) Sel = xlUnlockedCells With Worksheets("Feuil1") 'à déterminer Nom Feuille .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = Rg(2).NumberFormat Rg.NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With End Sub '---------------------------------------
Salutations!
"Domi" a écrit dans le message de news:
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont
la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
Je vous le dis, moi, ce sont des magiciens, ces gars-là !!!
Serge
'--------------------
Private Sub Workbook_Open()
ProtegeLigne
End Sub
'--------------------
Dans un module standard
'---------------------------------------
Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection
Dim Critère As Long
Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5)
Sel = xlUnlockedCells
With Worksheets("Feuil1") 'à déterminer Nom Feuille
.Unprotect "Toto"
Set Rg = .Range("B1:B100")
With Rg
.EntireRow.Locked = False
LeFormat = Rg(2).NumberFormat
Rg.NumberFormat = "General"
.AutoFilter Field:=1, Criteria1:=">" & Critère
.SpecialCells(xlCellTypeVisible).EntireRow.Locked = True
.AutoFilter
.NumberFormat = LeFormat
End With
.Protect "Toto", , , , True
.EnableSelection = Sel
End With
End Sub
'---------------------------------------
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de
news:eIpIPojRDHA.2196@TK2MSFTNGP11.phx.gbl...
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci...
J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates.
Je voudrais par macro protéger en écriture toutes les lignes (Entières)
dont
la date en B est <= Date du jour +5
j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire.
Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Je vous le dis, moi, ce sont des magiciens, ces gars-là !!!
Serge
'-------------------- Private Sub Workbook_Open() ProtegeLigne End Sub '--------------------
Dans un module standard
'--------------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5) Sel = xlUnlockedCells With Worksheets("Feuil1") 'à déterminer Nom Feuille .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = Rg(2).NumberFormat Rg.NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With End Sub '---------------------------------------
Salutations!
"Domi" a écrit dans le message de news:
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont
la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
michdenis
Légère correction apportée :
'--------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String Application.ScreenUpdating = False Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 6) Sel = xlUnlockedCells With Worksheets("Feuil1") .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = .Item(2).NumberFormat .NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With Set Rg = Nothing End Sub '---------------------------------
Salutations!
"michdenis" a écrit dans le message de news: Bonjour Domi,
Les procédures soumises ont pour effet de protéger toutes les lignes de la feuille 1 dont la teneur de la colonne B1:B100 a une date supérieur à aujourdhui() +5
Attention dans le +5 , la date de la journée en cours est incluse. Si tu veux obtenir 5 jours excluant la journée en cours tu dois additionner 6 jours dans la procédure.
La procédure prend pour acquis que toutes les informations contenues dans la colonne B1:B100 sont des dates. La procédure ne possède pas aucune mesure de contrôle. Devrait-elle en avoir ?
La procédure va s'exécuter qu'une fois à l'ouverture du classeur... Il ne faut pas oublier d'adapter le nom de la feuille dans la procédure pour celle de ton application.
Dans le thisworkbook de ton classeur : Copie ceci :
'-------------------- Private Sub Workbook_Open() ProtegeLigne End Sub '--------------------
Dans un module standard
'--------------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5) Sel = xlUnlockedCells With Worksheets("Feuil1") 'à déterminer Nom Feuille .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = Rg(2).NumberFormat Rg.NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With End Sub '---------------------------------------
Salutations!
"Domi" a écrit dans le message de news: Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
Légère correction apportée :
'---------------------------------
Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection
Dim Critère As Long
Dim Rg As Range, LeFormat As String
Application.ScreenUpdating = False
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 6)
Sel = xlUnlockedCells
With Worksheets("Feuil1")
.Unprotect "Toto"
Set Rg = .Range("B1:B100")
With Rg
.EntireRow.Locked = False
LeFormat = .Item(2).NumberFormat
.NumberFormat = "General"
.AutoFilter Field:=1, Criteria1:=">" & Critère
.SpecialCells(xlCellTypeVisible).EntireRow.Locked = True
.AutoFilter
.NumberFormat = LeFormat
End With
.Protect "Toto", , , , True
.EnableSelection = Sel
End With
Set Rg = Nothing
End Sub
'---------------------------------
Salutations!
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:enkZCtkRDHA.3192@tk2msftngp13.phx.gbl...
Bonjour Domi,
Les procédures soumises ont pour effet de protéger toutes les lignes de la feuille 1 dont la teneur de la colonne B1:B100 a
une date supérieur à aujourdhui() +5
Attention dans le +5 , la date de la journée en cours est incluse. Si tu veux obtenir 5 jours excluant la journée en cours tu
dois additionner 6 jours dans la procédure.
La procédure prend pour acquis que toutes les informations contenues dans la colonne B1:B100 sont des dates. La procédure ne
possède pas aucune mesure de contrôle. Devrait-elle en avoir ?
La procédure va s'exécuter qu'une fois à l'ouverture du classeur... Il ne faut pas oublier d'adapter le nom de la feuille
dans la procédure pour celle de ton application.
Dans le thisworkbook de ton classeur : Copie ceci :
'--------------------
Private Sub Workbook_Open()
ProtegeLigne
End Sub
'--------------------
Dans un module standard
'---------------------------------------
Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection
Dim Critère As Long
Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5)
Sel = xlUnlockedCells
With Worksheets("Feuil1") 'à déterminer Nom Feuille
.Unprotect "Toto"
Set Rg = .Range("B1:B100")
With Rg
.EntireRow.Locked = False
LeFormat = Rg(2).NumberFormat
Rg.NumberFormat = "General"
.AutoFilter Field:=1, Criteria1:=">" & Critère
.SpecialCells(xlCellTypeVisible).EntireRow.Locked = True
.AutoFilter
.NumberFormat = LeFormat
End With
.Protect "Toto", , , , True
.EnableSelection = Sel
End With
End Sub
'---------------------------------------
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de news:eIpIPojRDHA.2196@TK2MSFTNGP11.phx.gbl...
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci...
J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates.
Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont
la date en B est <= Date du jour +5
j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire.
Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
'--------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String Application.ScreenUpdating = False Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 6) Sel = xlUnlockedCells With Worksheets("Feuil1") .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = .Item(2).NumberFormat .NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With Set Rg = Nothing End Sub '---------------------------------
Salutations!
"michdenis" a écrit dans le message de news: Bonjour Domi,
Les procédures soumises ont pour effet de protéger toutes les lignes de la feuille 1 dont la teneur de la colonne B1:B100 a une date supérieur à aujourdhui() +5
Attention dans le +5 , la date de la journée en cours est incluse. Si tu veux obtenir 5 jours excluant la journée en cours tu dois additionner 6 jours dans la procédure.
La procédure prend pour acquis que toutes les informations contenues dans la colonne B1:B100 sont des dates. La procédure ne possède pas aucune mesure de contrôle. Devrait-elle en avoir ?
La procédure va s'exécuter qu'une fois à l'ouverture du classeur... Il ne faut pas oublier d'adapter le nom de la feuille dans la procédure pour celle de ton application.
Dans le thisworkbook de ton classeur : Copie ceci :
'-------------------- Private Sub Workbook_Open() ProtegeLigne End Sub '--------------------
Dans un module standard
'--------------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5) Sel = xlUnlockedCells With Worksheets("Feuil1") 'à déterminer Nom Feuille .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = Rg(2).NumberFormat Rg.NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With End Sub '---------------------------------------
Salutations!
"Domi" a écrit dans le message de news: Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
michdenis
Et bien merci garnote....
C'est quand même plus terre à terre que certaines formules mathématiques !!!
;-))
Salutations!
"garnote" a écrit dans le message de news:DAZOa.26212$ Je vous le dis, moi, ce sont des magiciens, ces gars-là !!!
Serge
'-------------------- Private Sub Workbook_Open() ProtegeLigne End Sub '--------------------
Dans un module standard
'--------------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5) Sel = xlUnlockedCells With Worksheets("Feuil1") 'à déterminer Nom Feuille .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = Rg(2).NumberFormat Rg.NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With End Sub '---------------------------------------
Salutations!
"Domi" a écrit dans le message de news:
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont
la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
Et bien merci garnote....
C'est quand même plus terre à terre que certaines formules mathématiques !!!
;-))
Salutations!
"garnote" <laogarno@globetrotter.net> a écrit dans le message de news:DAZOa.26212$q42.25781@charlie.risq.qc.ca...
Je vous le dis, moi, ce sont des magiciens, ces gars-là !!!
Serge
'--------------------
Private Sub Workbook_Open()
ProtegeLigne
End Sub
'--------------------
Dans un module standard
'---------------------------------------
Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection
Dim Critère As Long
Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5)
Sel = xlUnlockedCells
With Worksheets("Feuil1") 'à déterminer Nom Feuille
.Unprotect "Toto"
Set Rg = .Range("B1:B100")
With Rg
.EntireRow.Locked = False
LeFormat = Rg(2).NumberFormat
Rg.NumberFormat = "General"
.AutoFilter Field:=1, Criteria1:=">" & Critère
.SpecialCells(xlCellTypeVisible).EntireRow.Locked = True
.AutoFilter
.NumberFormat = LeFormat
End With
.Protect "Toto", , , , True
.EnableSelection = Sel
End With
End Sub
'---------------------------------------
Salutations!
"Domi" <scrat83@free.fr> a écrit dans le message de
news:eIpIPojRDHA.2196@TK2MSFTNGP11.phx.gbl...
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci...
J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates.
Je voudrais par macro protéger en écriture toutes les lignes (Entières)
dont
la date en B est <= Date du jour +5
j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire.
Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
C'est quand même plus terre à terre que certaines formules mathématiques !!!
;-))
Salutations!
"garnote" a écrit dans le message de news:DAZOa.26212$ Je vous le dis, moi, ce sont des magiciens, ces gars-là !!!
Serge
'-------------------- Private Sub Workbook_Open() ProtegeLigne End Sub '--------------------
Dans un module standard
'--------------------------------------- Sub ProtegeLigne()
Dim Sel As Excel.XlEnableSelection Dim Critère As Long Dim Rg As Range, LeFormat As String
Critère = DateSerial(Year(Date), Month(Date), Day(Date) + 5) Sel = xlUnlockedCells With Worksheets("Feuil1") 'à déterminer Nom Feuille .Unprotect "Toto" Set Rg = .Range("B1:B100") With Rg .EntireRow.Locked = False LeFormat = Rg(2).NumberFormat Rg.NumberFormat = "General" .AutoFilter Field:=1, Criteria1:=">" & Critère .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter .NumberFormat = LeFormat End With .Protect "Toto", , , , True .EnableSelection = Sel End With End Sub '---------------------------------------
Salutations!
"Domi" a écrit dans le message de news:
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont
la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
AV
Une variante
Dans le ThisWorkbook Private Sub Workbook_Open() ProtegeLigne End Sub
Dans un module ordinaire Sub ProtectDat() Application.ScreenUpdating = False With Sheets("Feuil1") .Unprotect With .[B9:B1000] .EntireRow.Locked = False .AutoFilter Field:=1, Criteria1:="<=" & Date * 1 - 5 .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter End With .Protect End With End Sub
PS comme tu parles de la plage B10:B100, j'ai supposé une étiquette de col en B9
AV
"Domi" a écrit dans le message news:
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Merci Domi
Une variante
Dans le ThisWorkbook
Private Sub Workbook_Open()
ProtegeLigne
End Sub
Dans un module ordinaire
Sub ProtectDat()
Application.ScreenUpdating = False
With Sheets("Feuil1")
.Unprotect
With .[B9:B1000]
.EntireRow.Locked = False
.AutoFilter Field:=1, Criteria1:="<=" & Date * 1 - 5
.SpecialCells(xlCellTypeVisible).EntireRow.Locked = True
.AutoFilter
End With
.Protect
End With
End Sub
PS comme tu parles de la plage B10:B100, j'ai supposé une étiquette de col en B9
AV
"Domi" <scrat83@free.fr> a écrit dans le message news:
eIpIPojRDHA.2196@TK2MSFTNGP11.phx.gbl...
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci...
J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates.
Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont
la date en B est <= Date du jour +5
j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire.
Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?
Dans le ThisWorkbook Private Sub Workbook_Open() ProtegeLigne End Sub
Dans un module ordinaire Sub ProtectDat() Application.ScreenUpdating = False With Sheets("Feuil1") .Unprotect With .[B9:B1000] .EntireRow.Locked = False .AutoFilter Field:=1, Criteria1:="<=" & Date * 1 - 5 .SpecialCells(xlCellTypeVisible).EntireRow.Locked = True .AutoFilter End With .Protect End With End Sub
PS comme tu parles de la plage B10:B100, j'ai supposé une étiquette de col en B9
AV
"Domi" a écrit dans le message news:
Bonsoir à tous,
Je vous sollicites pas mal ces temps ci... J'ai sur la feuille TEST un tableau avec en B10:B1000 des dates. Je voudrais par macro protéger en écriture toutes les lignes (Entières) dont la date en B est <= Date du jour +5 j'exécuterai ensuite cette macro à chaque ouverture, là je sais faire. Quelqu'un pourrait-il m'indiquer la syntaxe à utiliser ?