Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Impossible de faire Format/Cellule dans une feuille non protégé

7 réponses
Avatar
Trèfle
Bonjour,

Dans une feuille même non protégée, lorsque je sélectionne certaines
cellules, je ne peux plus faire Format/Cellule car cela n'affiche plus la
boîte de dialogue attendue (mais je peux toujours la sélectionner et aucune
touche n'est grisée ...).
Alors qu'avant cela fonctionnait sans problème.
De même, j'ai une macro évènementielle qui bloque à l'activation de la
feuille (contrairement à ce qui se passait avant ... ) avec pour message
Erreur d'exécution 1004 "Impossible de définir la propriété LineStyle de la
classe Border sur la ligne :
.Borders(xlEdgeLeft).LineStyle = xlContinuous

Y-a-t-il une explication à cela , ou une mise à jour peut-elle expliquer
cette réaction de Excel (ça fait la même chose sur 2000, 2003 ou 2007 ...)
Ci-dessous le code qui est placé dans la feuille du VBA.

Merci à tous

****************************
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.Unprotect "alma"
Range("A2:AF14,A17:AF29,A32:AF44").Select
Range("AF44").Activate
With Selection
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
End With
ActiveSheet.Protect "alma", True, True, True
Range("A1").Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
**************************************
Private Sub Worksheet_Change(ByVal Target As Range)

Dim temoin As Boolean
Sheets("3 months list").Unprotect "alma"
If Not Intersect(Target, Range("AG1")) Is Nothing And Target.Count = 1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG1").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c - 1, 1).PasteSpecial Paste:=xlPasteFormats
If ActiveSheet.Cells(c - 1, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c - 1).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c - 1).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
If Not Intersect(Target, Range("AG16")) Is Nothing And Target.Count = 1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG16").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c + 14, 1).PasteSpecial Paste:=xlPasteFormats
If ActiveSheet.Cells(c + 14, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c + 14).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c + 14).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
If Not Intersect(Target, Range("AG31")) Is Nothing And Target.Count = 1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG31").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c + 29, 1).PasteSpecial Paste:=xlPasteFormats
If ActiveSheet.Cells(c + 29, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c + 29).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c + 29).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
Sheets("3 months list").Protect "alma", True, True, True
End Sub

7 réponses

Avatar
Transocéan
Bonjour,
Test sur une seule cellule si pas encore essayé. Dans ton programme il
semble que t'a bloqué tout changement à cause d'une dépendance.
A+
--
Faut-il travailler pour manger ?
ou
manger pour travailler ?


"Trèfle" wrote:

Bonjour,

Dans une feuille même non protégée, lorsque je sélectionne certaines
cellules, je ne peux plus faire Format/Cellule car cela n'affiche plus la
boîte de dialogue attendue (mais je peux toujours la sélectionner et aucune
touche n'est grisée ...).
Alors qu'avant cela fonctionnait sans problème.
De même, j'ai une macro évènementielle qui bloque à l'activation de la
feuille (contrairement à ce qui se passait avant ... ) avec pour message
Erreur d'exécution 1004 "Impossible de définir la propriété LineStyle de la
classe Border sur la ligne :
.Borders(xlEdgeLeft).LineStyle = xlContinuous

Y-a-t-il une explication à cela , ou une mise à jour peut-elle expliquer
cette réaction de Excel (ça fait la même chose sur 2000, 2003 ou 2007 ...)
Ci-dessous le code qui est placé dans la feuille du VBA.

Merci à tous

****************************
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.Unprotect "alma"
Range("A2:AF14,A17:AF29,A32:AF44").Select
Range("AF44").Activate
With Selection
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
End With
ActiveSheet.Protect "alma", True, True, True
Range("A1").Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
**************************************
Private Sub Worksheet_Change(ByVal Target As Range)

Dim temoin As Boolean
Sheets("3 months list").Unprotect "alma"
If Not Intersect(Target, Range("AG1")) Is Nothing And Target.Count = 1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG1").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c - 1, 1).PasteSpecial Paste:=xlPasteFormats
If ActiveSheet.Cells(c - 1, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c - 1).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c - 1).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
If Not Intersect(Target, Range("AG16")) Is Nothing And Target.Count = 1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG16").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c + 14, 1).PasteSpecial Paste:=xlPasteFormats
If ActiveSheet.Cells(c + 14, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c + 14).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c + 14).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
If Not Intersect(Target, Range("AG31")) Is Nothing And Target.Count = 1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG31").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c + 29, 1).PasteSpecial Paste:=xlPasteFormats
If ActiveSheet.Cells(c + 29, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c + 29).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c + 29).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
Sheets("3 months list").Protect "alma", True, True, True
End Sub






Avatar
Trèfle
Bonjour Transocéan,

J'ai fait Edition/Liaison, qui apparaît en grisé, donc sans liaison pour le
fichier ... et ce, même sur une cellule sélectionnée toute seule

Que voulais-tu entendre par dépendance ?

Merci pour ta réponse

Trèfle

N.B. Presque toutes les cellules de la feuille contiennent des fonctions
avec indirect ...certaines ne bloquant pas, d'autres oui comme une qui a
pour formule :
=SI(INDIRECT(AG$16&"!A3")="";"";INDIRECT(AG$16&"!A3")) où AG16 contient le
nom de la feuille (par formule) ... et pourtant les réponses attendues aux
cellules à formules sont conformes !
(La feuille qui rencontre ces problèmes est en fait un récapitulatif de
plusieurs autres feuilles ...)

Qu'en penses-tu ?
Je peux te mettre un fichier en Cjoint si tu le souhaites ... ?


"Transocéan" a écrit dans le message
de news:
Bonjour,
Test sur une seule cellule si pas encore essayé. Dans ton programme il
semble que t'a bloqué tout changement à cause d'une dépendance.
A+
--
Faut-il travailler pour manger ?
ou
manger pour travailler ?


"Trèfle" wrote:

Bonjour,

Dans une feuille même non protégée, lorsque je sélectionne certaines
cellules, je ne peux plus faire Format/Cellule car cela n'affiche plus
la
boîte de dialogue attendue (mais je peux toujours la sélectionner et
aucune
touche n'est grisée ...).
Alors qu'avant cela fonctionnait sans problème.
De même, j'ai une macro évènementielle qui bloque à l'activation de la
feuille (contrairement à ce qui se passait avant ... ) avec pour message
Erreur d'exécution 1004 "Impossible de définir la propriété LineStyle de
la
classe Border sur la ligne :
.Borders(xlEdgeLeft).LineStyle = xlContinuous

Y-a-t-il une explication à cela , ou une mise à jour peut-elle expliquer
cette réaction de Excel (ça fait la même chose sur 2000, 2003 ou 2007
...)
Ci-dessous le code qui est placé dans la feuille du VBA.

Merci à tous

****************************
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.Unprotect "alma"
Range("A2:AF14,A17:AF29,A32:AF44").Select
Range("AF44").Activate
With Selection
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
End With
ActiveSheet.Protect "alma", True, True, True
Range("A1").Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
**************************************
Private Sub Worksheet_Change(ByVal Target As Range)

Dim temoin As Boolean
Sheets("3 months list").Unprotect "alma"
If Not Intersect(Target, Range("AG1")) Is Nothing And Target.Count =
1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG1").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c - 1, 1).PasteSpecial
Paste:=xlPasteFormats
If ActiveSheet.Cells(c - 1, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c - 1).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c - 1).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
If Not Intersect(Target, Range("AG16")) Is Nothing And Target.Count =
1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG16").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c + 14, 1).PasteSpecial
Paste:=xlPasteFormats
If ActiveSheet.Cells(c + 14, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c + 14).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c + 14).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
If Not Intersect(Target, Range("AG31")) Is Nothing And Target.Count =
1
And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG31").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c + 29, 1).PasteSpecial
Paste:=xlPasteFormats
If ActiveSheet.Cells(c + 29, 1).Value = "" Then
Sheets("3 months list").Unprotect "alma"
Rows(c + 29).Hidden = True
Else
Sheets("3 months list").Unprotect "alma"
Rows(c + 29).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
Sheets("3 months list").Protect "alma", True, True, True
End Sub








Avatar
Transocéan
Par exemple:
if cellule x format then rien faire else faire
ou encore
désactiver temporairement leur protection
ou encore
sont-elles toutes aux mêmes formats (non contenus)
.....
A+
--
Faut-il travailler pour manger ? ou manger pour travailler ?


"Trèfle" wrote:

Bonjour Transocéan,

J'ai fait Edition/Liaison, qui apparaît en grisé, donc sans liaison pour le
fichier ... et ce, même sur une cellule sélectionnée toute seule

Que voulais-tu entendre par dépendance ?

Merci pour ta réponse

Trèfle

N.B. Presque toutes les cellules de la feuille contiennent des fonctions
avec indirect ...certaines ne bloquant pas, d'autres oui comme une qui a
pour formule :
=SI(INDIRECT(AG$16&"!A3")="";"";INDIRECT(AG$16&"!A3")) où AG16 contient le
nom de la feuille (par formule) ... et pourtant les réponses attendues aux
cellules à formules sont conformes !
(La feuille qui rencontre ces problèmes est en fait un récapitulatif de
plusieurs autres feuilles ...)

Qu'en penses-tu ?
Je peux te mettre un fichier en Cjoint si tu le souhaites ... ?


"Transocéan" a écrit dans le message
de news:
> Bonjour,
> Test sur une seule cellule si pas encore essayé. Dans ton programme il
> semble que t'a bloqué tout changement à cause d'une dépendance.
> A+
> --
> Faut-il travailler pour manger ?
> ou
> manger pour travailler ?
>
>
> "Trèfle" wrote:
>
>> Bonjour,
>>
>> Dans une feuille même non protégée, lorsque je sélectionne certaines
>> cellules, je ne peux plus faire Format/Cellule car cela n'affiche plus
>> la
>> boîte de dialogue attendue (mais je peux toujours la sélectionner et
>> aucune
>> touche n'est grisée ...).
>> Alors qu'avant cela fonctionnait sans problème.
>> De même, j'ai une macro évènementielle qui bloque à l'activation de la
>> feuille (contrairement à ce qui se passait avant ... ) avec pour message
>> Erreur d'exécution 1004 "Impossible de définir la propriété LineStyle de
>> la
>> classe Border sur la ligne :
>> .Borders(xlEdgeLeft).LineStyle = xlContinuous
>>
>> Y-a-t-il une explication à cela , ou une mise à jour peut-elle expliquer
>> cette réaction de Excel (ça fait la même chose sur 2000, 2003 ou 2007
>> ...)
>> Ci-dessous le code qui est placé dans la feuille du VBA.
>>
>> Merci à tous
>>
>> ****************************
>> Private Sub Worksheet_Activate()
>> Application.ScreenUpdating = False
>> Application.EnableEvents = False
>> ActiveSheet.Unprotect "alma"
>> Range("A2:AF14,A17:AF29,A32:AF44").Select
>> Range("AF44").Activate
>> With Selection
>> .Borders(xlEdgeLeft).LineStyle = xlContinuous
>> .Borders(xlEdgeTop).LineStyle = xlContinuous
>> .Borders(xlEdgeBottom).LineStyle = xlContinuous
>> .Borders(xlEdgeRight).LineStyle = xlContinuous
>> End With
>> ActiveSheet.Protect "alma", True, True, True
>> Range("A1").Select
>> Application.EnableEvents = True
>> Application.ScreenUpdating = True
>> End Sub
>> **************************************
>> Private Sub Worksheet_Change(ByVal Target As Range)
>>
>> Dim temoin As Boolean
>> Sheets("3 months list").Unprotect "alma"
>> If Not Intersect(Target, Range("AG1")) Is Nothing And Target.Count =
>> 1
>> And Not temoin Then
>> Application.ScreenUpdating = False ' it doesn't show all the
>> changements...
>> temoin = True
>> For c = 3 To 15
>> Sheets(Range("AG1").Value).Cells(c, 1).Copy
>> ActiveSheet.Cells(c - 1, 1).PasteSpecial
>> Paste:=xlPasteFormats
>> If ActiveSheet.Cells(c - 1, 1).Value = "" Then
>> Sheets("3 months list").Unprotect "alma"
>> Rows(c - 1).Hidden = True
>> Else
>> Sheets("3 months list").Unprotect "alma"
>> Rows(c - 1).Hidden = False
>> End If
>> Next c
>> temoin = False
>> Application.ScreenUpdating = True
>> End If
>> If Not Intersect(Target, Range("AG16")) Is Nothing And Target.Count =
>> 1
>> And Not temoin Then
>> Application.ScreenUpdating = False ' it doesn't show all the
>> changements...
>> temoin = True
>> For c = 3 To 15
>> Sheets(Range("AG16").Value).Cells(c, 1).Copy
>> ActiveSheet.Cells(c + 14, 1).PasteSpecial
>> Paste:=xlPasteFormats
>> If ActiveSheet.Cells(c + 14, 1).Value = "" Then
>> Sheets("3 months list").Unprotect "alma"
>> Rows(c + 14).Hidden = True
>> Else
>> Sheets("3 months list").Unprotect "alma"
>> Rows(c + 14).Hidden = False
>> End If
>> Next c
>> temoin = False
>> Application.ScreenUpdating = True
>> End If
>> If Not Intersect(Target, Range("AG31")) Is Nothing And Target.Count =
>> 1
>> And Not temoin Then
>> Application.ScreenUpdating = False ' it doesn't show all the
>> changements...
>> temoin = True
>> For c = 3 To 15
>> Sheets(Range("AG31").Value).Cells(c, 1).Copy
>> ActiveSheet.Cells(c + 29, 1).PasteSpecial
>> Paste:=xlPasteFormats
>> If ActiveSheet.Cells(c + 29, 1).Value = "" Then
>> Sheets("3 months list").Unprotect "alma"
>> Rows(c + 29).Hidden = True
>> Else
>> Sheets("3 months list").Unprotect "alma"
>> Rows(c + 29).Hidden = False
>> End If
>> Next c
>> temoin = False
>> Application.ScreenUpdating = True
>> End If
>> Sheets("3 months list").Protect "alma", True, True, True
>> End Sub
>>
>>
>>
>>





Avatar
Trèfle
Bonjour,

Je n'ai aucune procédure de type If ...then ...
Pour la protection temporaire, je l'ai désactivée, mais rien n'y fait.
Toutes les cellules ne sont pas du même format, mais celles qui posent
problème sont uniquement dans la colonne A !

Je crois en fait que j'ai un fichier corrompu :
J'ai supprimé toutes les autres feuilles, tous les mots de passe (feuille,
Vba), j'ai décoché la protection pour toutes les cellules de la feuille,
remplacé toutes les formules par leurs valeurs, supprimé toutes les
programmations de feuilles, modules et Usf ..
j'ai même copié la feuille à problème dans une nouvelle feuille du même
fichier, et j'ai enfin supprimé toutes les colonnes autres que la colonne
A...
Et cela ne fonctionne toujours pas : dès que je sélectionne une cellule
contenant un nom de la colonne A pour faire Format/Cellule qui n'affiche
rien !

je te mets ce qu'il me reste du fichier en Cjoint, si tu veut le voir ... !
Je crois qu'il me faut repartir sur un fichier neuf ...
http://cjoint.com/?dmkV2y17Bm

Merci pour ton aide

Trèfle
Avatar
MichDenis
Pour solutionner ton problème :

Sélectionne la colonne A:D tu appelles la commande
format / cellule / onglet Bordure / et tu cliques
sur l'icône qui affiche "pas de bordure" , tu fermes les fenêtres
et ta plage revient à la normale.



"Trèfle" a écrit dans le message de groupe de discussion :

Bonjour,

Je n'ai aucune procédure de type If ...then ...
Pour la protection temporaire, je l'ai désactivée, mais rien n'y fait.
Toutes les cellules ne sont pas du même format, mais celles qui posent
problème sont uniquement dans la colonne A !

Je crois en fait que j'ai un fichier corrompu :
J'ai supprimé toutes les autres feuilles, tous les mots de passe (feuille,
Vba), j'ai décoché la protection pour toutes les cellules de la feuille,
remplacé toutes les formules par leurs valeurs, supprimé toutes les
programmations de feuilles, modules et Usf ..
j'ai même copié la feuille à problème dans une nouvelle feuille du même
fichier, et j'ai enfin supprimé toutes les colonnes autres que la colonne
A...
Et cela ne fonctionne toujours pas : dès que je sélectionne une cellule
contenant un nom de la colonne A pour faire Format/Cellule qui n'affiche
rien !

je te mets ce qu'il me reste du fichier en Cjoint, si tu veut le voir ... !
Je crois qu'il me faut repartir sur un fichier neuf ...
http://cjoint.com/?dmkV2y17Bm

Merci pour ton aide

Trèfle
Avatar
gmlsteph
Bonjour,

http://cjoint.com/?dmlTJRKQCX

--
lSteph
(attention ne connaissant le but je n'ai pas examiné les soucis du
change en dehors de virer les protect unprotect inutiles)

Voilà comment j'ai procèdé:

Oter la protection de la feuille

On protège une fois pour toute l'interface et laisse agir les macros
le 4ème param de protect est userinterfaceonly
on le met à true Cela se fait obligatoirement dans workbook_open du
thisworkbook
C'est pourquoi on enregistre une première fois le classeur avec
feuille non protègé l'ouverture s'en chargera.

''''' dans Thisworkbook


Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
sh.Protect "alma", True, True, True, True
Next
End Sub


'''''dans Feuil1

Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Application.EnableEvents = False


With Range("A2:AF14,A17:AF29,A32:AF44")
.Borders.LineStyle = xlContinuous

End With


Range("A1").Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'**************************************
Private Sub Worksheet_Change(ByVal Target As Range)


Dim temoin As Boolean
If Not Intersect(Target, Range("AG1")) Is Nothing And Target.Count
= 1 And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG1").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c - 1, 1).PasteSpecial
Paste:=xlPasteFormats
If ActiveSheet.Cells(c - 1, 1).Value = "" Then

Rows(c - 1).Hidden = True
Else

Rows(c - 1).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
If Not Intersect(Target, Range("AG16")) _
Is Nothing And Target.Count = 1 And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all the
changements...
temoin = True
For c = 3 To 15
Sheets(Range("AG16").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c + 14, 1).PasteSpecial
Paste:=xlPasteFormats
If ActiveSheet.Cells(c + 14, 1).Value = "" Then

Rows(c + 14).Hidden = True
Else

Rows(c + 14).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If
If Not Intersect(Target, Range("AG31")) _
Is Nothing And Target.Count = 1 And Not temoin Then
Application.ScreenUpdating = False ' it doesn't show all
thechangements...
temoin = True
For c = 3 To 15
Sheets(Range("AG31").Value).Cells(c, 1).Copy
ActiveSheet.Cells(c + 29, 1).PasteSpecial
Paste:=xlPasteFormats
If ActiveSheet.Cells(c + 29, 1).Value = "" Then

Rows(c + 29).Hidden = True
Else

Rows(c + 29).Hidden = False
End If
Next c
temoin = False
Application.ScreenUpdating = True
End If

End Sub






On 9 mar, 19:33, "Trèfle" wrote:
Bonjour,

Dans une feuille même non protégée, lorsque je sélectionne certai nes
cellules,  je ne peux plus faire Format/Cellule car cela n'affiche plus la
boîte de dialogue attendue (mais je peux toujours la sélectionner et aucune
touche n'est grisée ...).
Alors qu'avant cela fonctionnait sans problème.
De même, j'ai une macro évènementielle qui bloque à l'activation de la
feuille (contrairement à ce qui se passait avant ... ) avec pour messag e
Erreur d'exécution 1004 "Impossible de définir la propriété LineS tyle de la
classe Border sur la ligne :
        .Borders(xlEdgeLeft).LineStyle = xlContinuous

Y-a-t-il une explication à cela , ou une mise à jour peut-elle expliq uer
cette réaction de Excel (ça fait la même chose sur 2000, 2003 ou 20 07 ...)
Ci-dessous le code qui est placé dans la feuille du VBA.

Merci à tous

****************************
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    ActiveSheet.Unprotect "alma"
    Range("A2:AF14,A17:AF29,A32:AF44").Select
    Range("AF44").Activate
    With Selection
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
    End With
    ActiveSheet.Protect "alma", True, True, True
    Range("A1").Select
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
**************************************
Private Sub Worksheet_Change(ByVal Target As Range)

Dim temoin As Boolean
    Sheets("3 months list").Unprotect "alma"
    If Not Intersect(Target, Range("AG1")) Is Nothing And Target.Coun t = 1
And Not temoin Then
        Application.ScreenUpdating = False ' it doesn't show al l the
changements...
        temoin = True
        For c = 3 To 15
            Sheets(Range("AG1").Value).Cells(c, 1).Copy
            ActiveSheet.Cells(c - 1, 1).PasteSpecial Paste: =xlPasteFormats
            If ActiveSheet.Cells(c - 1, 1).Value = "" Then
                Sheets("3 months list").Unprotect "alma"
                Rows(c - 1).Hidden = True
            Else
                Sheets("3 months list").Unprotect "alma"
                Rows(c - 1).Hidden = False
            End If
        Next c
        temoin = False
        Application.ScreenUpdating = True
    End If
    If Not Intersect(Target, Range("AG16")) Is Nothing And Target.Cou nt = 1
And Not temoin Then
        Application.ScreenUpdating = False ' it doesn't show al l the
changements...
        temoin = True
        For c = 3 To 15
            Sheets(Range("AG16").Value).Cells(c, 1).Copy
            ActiveSheet.Cells(c + 14, 1).PasteSpecial Paste: =xlPasteFormats
            If ActiveSheet.Cells(c + 14, 1).Value = "" Then
                Sheets("3 months list").Unprotect "alma"
                Rows(c + 14).Hidden = True
            Else
                Sheets("3 months list").Unprotect "alma"
                Rows(c + 14).Hidden = False
            End If
        Next c
        temoin = False
        Application.ScreenUpdating = True
    End If
    If Not Intersect(Target, Range("AG31")) Is Nothing And Target.Cou nt = 1
And Not temoin Then
        Application.ScreenUpdating = False ' it doesn't show al l the
changements...
        temoin = True
        For c = 3 To 15
            Sheets(Range("AG31").Value).Cells(c, 1).Copy
            ActiveSheet.Cells(c + 29, 1).PasteSpecial Paste: =xlPasteFormats
            If ActiveSheet.Cells(c + 29, 1).Value = "" Then
                Sheets("3 months list").Unprotect "alma"
                Rows(c + 29).Hidden = True
            Else
                Sheets("3 months list").Unprotect "alma"
                Rows(c + 29).Hidden = False
            End If
        Next c
        temoin = False
        Application.ScreenUpdating = True
    End If
    Sheets("3 months list").Protect "alma", True, True, True
End Sub


Avatar
Trèfle
Bonjour Michdenis,

Effectivement, en procédant comme tu me l'as indiqué, tout est redevenu
normal, et seulement en quelques clic !....

Merci beaucoup pour ton aide
et merci aussi à Lsteph pour sa réponse.

Trèfle

"MichDenis" a écrit dans le message de news:
%
Pour solutionner ton problème :

Sélectionne la colonne A:D tu appelles la commande
format / cellule / onglet Bordure / et tu cliques
sur l'icône qui affiche "pas de bordure" , tu fermes les fenêtres
et ta plage revient à la normale.



"Trèfle" a écrit dans le message de groupe de
discussion :

Bonjour,

Je n'ai aucune procédure de type If ...then ...
Pour la protection temporaire, je l'ai désactivée, mais rien n'y fait.
Toutes les cellules ne sont pas du même format, mais celles qui posent
problème sont uniquement dans la colonne A !

Je crois en fait que j'ai un fichier corrompu :
J'ai supprimé toutes les autres feuilles, tous les mots de passe (feuille,
Vba), j'ai décoché la protection pour toutes les cellules de la feuille,
remplacé toutes les formules par leurs valeurs, supprimé toutes les
programmations de feuilles, modules et Usf ..
j'ai même copié la feuille à problème dans une nouvelle feuille du même
fichier, et j'ai enfin supprimé toutes les colonnes autres que la colonne
A...
Et cela ne fonctionne toujours pas : dès que je sélectionne une cellule
contenant un nom de la colonne A pour faire Format/Cellule qui n'affiche
rien !

je te mets ce qu'il me reste du fichier en Cjoint, si tu veut le voir ...
!
Je crois qu'il me faut repartir sur un fichier neuf ...
http://cjoint.com/?dmkV2y17Bm

Merci pour ton aide

Trèfle