...et sans enlever le as double
On 14 oct, 15:26, Sunburn wrote:
> en enlevant uniquement le "as double", il me met une erreur : "erreu r
> d'éxecution 1004 : impossible de définir la propriété columnwid th de la
> classe range"
> "lSteph" a écrit :
> > Quel est le message erreur exact
> > On 14 oct, 15:01, Sunburn wrote:
> > > Oui, ça bug toujours chez moi....
> > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > Yann
> > > "lSteph" a écrit :
> > > > ...oupsss Ca doit venir d'autre chose car
> > > > en fait malgré l'erreur qui apparait sur le type j'ai test é
> > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > et être géré correctement au moins dans ceci:
> > > > Sub relarg()
> > > > Dim largeur As Long
> > > > largeur = [a1].ColumnWidth
> > > > Columns(1).ColumnWidth = largeur + 4
> > > > End Sub
> > > > '...à suivre
> > > > --
> > > > lSteph
> > > > (tout confus :((
> > > > On 14 oct, 11:58, lSteph wrote:
> > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > enlève le As Double
> > > > > On 14 oct, 11:16, Sunburn w rote:
> > > > > > Bonjour,
> > > > > > merci, mais je modifie quoi et où en fait ? car là comme ça, j'ai un peu de
> > > > > > mal.
> > > > > > Merci, Yann
> > > > > > "lSteph" a écrit :
> > > > > > > dim largeur
> > > > > > > ou
> > > > > > > dim largeur as variant
> > > > > > > columnwidth est une propriété dont le type est en va riant
> > > > > > > @+
> > > > > > > On 14 oct, 10:27, Sunburn m> wrote:
> > > > > > > > Bonjour,
> > > > > > > > j'ai une macro qui me redimensionne la hauteur des lignes de
> > > > > > > > certaines cellules, de façon automatique, et je voudrai s verouiller toutes
> > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse acc éder qu'aux cellules
> > > > > > > > non verouillées.
> > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + verouil lage), mais ça bug
> > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > automatiquement.
> > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > Yann.
> > > > > > > > voilà ma macro pour la hauteur automatique des lignes
> > > > > > > > ---------------
> > > > > > > > 'hauteur des lignes automatique
> > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVa l Target As Range)
> > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Sin gle, AncLarg As Single
> > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > LARGEUR = LARGEUR + Target.ColumnWidth
> > > > > > > > Next I
> > > > > > > > Application.EnableEvents = False
> > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns.Coun t).Address).Offset(1)
> > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > c.ColumnWidth = LARGEUR '(*****************)
> > > > > > > > c.WrapText = True
> > > > > > > > c.Value = Target.Value
> > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > Var = c.Address
> > > > > > > > c.Clear
> > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > End With
> > > > > > > > Recalcul
> > > > > > > > Application.EnableEvents = True
> > > > > > > > End Sub
> > > > > > > > ------------
> > > > > > > > et ma macro de verouillage :
> > > > > > > > -----------
> > > > > > > > ' Protection automatique de toutes les feuilles d'un clas seur
> > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > Dim Nombre As Integer
> > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > Application.ScreenUpdating = False
> > > > > > > > For I = 1 To Nombre
> > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > AllowFormattingRows = True
> > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça ser t à rien
> > > > > > > > Next I
> > > > > > > > End Sub
> > > > > > > > ---------------
...et sans enlever le as double
On 14 oct, 15:26, Sunburn <Sunb...@discussions.microsoft.com> wrote:
> en enlevant uniquement le "as double", il me met une erreur : "erreu r
> d'éxecution 1004 : impossible de définir la propriété columnwid th de la
> classe range"
> "lSteph" a écrit :
> > Quel est le message erreur exact
> > On 14 oct, 15:01, Sunburn <Sunb...@discussions.microsoft.com> wrote:
> > > Oui, ça bug toujours chez moi....
> > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > Yann
> > > "lSteph" a écrit :
> > > > ...oupsss Ca doit venir d'autre chose car
> > > > en fait malgré l'erreur qui apparait sur le type j'ai test é
> > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > et être géré correctement au moins dans ceci:
> > > > Sub relarg()
> > > > Dim largeur As Long
> > > > largeur = [a1].ColumnWidth
> > > > Columns(1).ColumnWidth = largeur + 4
> > > > End Sub
> > > > '...à suivre
> > > > --
> > > > lSteph
> > > > (tout confus :((
> > > > On 14 oct, 11:58, lSteph <gmLSt...@gmail.com> wrote:
> > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > enlève le As Double
> > > > > On 14 oct, 11:16, Sunburn <Sunb...@discussions.microsoft.com> w rote:
> > > > > > Bonjour,
> > > > > > merci, mais je modifie quoi et où en fait ? car là comme ça, j'ai un peu de
> > > > > > mal.
> > > > > > Merci, Yann
> > > > > > "lSteph" a écrit :
> > > > > > > dim largeur
> > > > > > > ou
> > > > > > > dim largeur as variant
> > > > > > > columnwidth est une propriété dont le type est en va riant
> > > > > > > @+
> > > > > > > On 14 oct, 10:27, Sunburn <Sunb...@discussions.microsoft.co m> wrote:
> > > > > > > > Bonjour,
> > > > > > > > j'ai une macro qui me redimensionne la hauteur des lignes de
> > > > > > > > certaines cellules, de façon automatique, et je voudrai s verouiller toutes
> > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse acc éder qu'aux cellules
> > > > > > > > non verouillées.
> > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + verouil lage), mais ça bug
> > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > automatiquement.
> > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > Yann.
> > > > > > > > voilà ma macro pour la hauteur automatique des lignes
> > > > > > > > ---------------
> > > > > > > > 'hauteur des lignes automatique
> > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVa l Target As Range)
> > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Sin gle, AncLarg As Single
> > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > LARGEUR = LARGEUR + Target.ColumnWidth
> > > > > > > > Next I
> > > > > > > > Application.EnableEvents = False
> > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns.Coun t).Address).Offset(1)
> > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > c.ColumnWidth = LARGEUR '(*****************)
> > > > > > > > c.WrapText = True
> > > > > > > > c.Value = Target.Value
> > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > Var = c.Address
> > > > > > > > c.Clear
> > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > End With
> > > > > > > > Recalcul
> > > > > > > > Application.EnableEvents = True
> > > > > > > > End Sub
> > > > > > > > ------------
> > > > > > > > et ma macro de verouillage :
> > > > > > > > -----------
> > > > > > > > ' Protection automatique de toutes les feuilles d'un clas seur
> > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > Dim Nombre As Integer
> > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > Application.ScreenUpdating = False
> > > > > > > > For I = 1 To Nombre
> > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > AllowFormattingRows = True
> > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça ser t à rien
> > > > > > > > Next I
> > > > > > > > End Sub
> > > > > > > > ---------------
...et sans enlever le as double
On 14 oct, 15:26, Sunburn wrote:
> en enlevant uniquement le "as double", il me met une erreur : "erreu r
> d'éxecution 1004 : impossible de définir la propriété columnwid th de la
> classe range"
> "lSteph" a écrit :
> > Quel est le message erreur exact
> > On 14 oct, 15:01, Sunburn wrote:
> > > Oui, ça bug toujours chez moi....
> > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > Yann
> > > "lSteph" a écrit :
> > > > ...oupsss Ca doit venir d'autre chose car
> > > > en fait malgré l'erreur qui apparait sur le type j'ai test é
> > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > et être géré correctement au moins dans ceci:
> > > > Sub relarg()
> > > > Dim largeur As Long
> > > > largeur = [a1].ColumnWidth
> > > > Columns(1).ColumnWidth = largeur + 4
> > > > End Sub
> > > > '...à suivre
> > > > --
> > > > lSteph
> > > > (tout confus :((
> > > > On 14 oct, 11:58, lSteph wrote:
> > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > enlève le As Double
> > > > > On 14 oct, 11:16, Sunburn w rote:
> > > > > > Bonjour,
> > > > > > merci, mais je modifie quoi et où en fait ? car là comme ça, j'ai un peu de
> > > > > > mal.
> > > > > > Merci, Yann
> > > > > > "lSteph" a écrit :
> > > > > > > dim largeur
> > > > > > > ou
> > > > > > > dim largeur as variant
> > > > > > > columnwidth est une propriété dont le type est en va riant
> > > > > > > @+
> > > > > > > On 14 oct, 10:27, Sunburn m> wrote:
> > > > > > > > Bonjour,
> > > > > > > > j'ai une macro qui me redimensionne la hauteur des lignes de
> > > > > > > > certaines cellules, de façon automatique, et je voudrai s verouiller toutes
> > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse acc éder qu'aux cellules
> > > > > > > > non verouillées.
> > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + verouil lage), mais ça bug
> > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > automatiquement.
> > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > Yann.
> > > > > > > > voilà ma macro pour la hauteur automatique des lignes
> > > > > > > > ---------------
> > > > > > > > 'hauteur des lignes automatique
> > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVa l Target As Range)
> > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Sin gle, AncLarg As Single
> > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > LARGEUR = LARGEUR + Target.ColumnWidth
> > > > > > > > Next I
> > > > > > > > Application.EnableEvents = False
> > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns.Coun t).Address).Offset(1)
> > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > c.ColumnWidth = LARGEUR '(*****************)
> > > > > > > > c.WrapText = True
> > > > > > > > c.Value = Target.Value
> > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > Var = c.Address
> > > > > > > > c.Clear
> > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > End With
> > > > > > > > Recalcul
> > > > > > > > Application.EnableEvents = True
> > > > > > > > End Sub
> > > > > > > > ------------
> > > > > > > > et ma macro de verouillage :
> > > > > > > > -----------
> > > > > > > > ' Protection automatique de toutes les feuilles d'un clas seur
> > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > Dim Nombre As Integer
> > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > Application.ScreenUpdating = False
> > > > > > > > For I = 1 To Nombre
> > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > AllowFormattingRows = True
> > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça ser t à rien
> > > > > > > > Next I
> > > > > > > > End Sub
> > > > > > > > ---------------
Bonjour,
j'ai une macro qui me redimensionne la hauteur des lignes de
certaines cellules, de façon automatique, et je voudrais verouiller toutes
mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
non verouillées.
Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça
bug
aux (****) quand je saisi du texte dans les cellules qui se
redimensionnent
automatiquement.
Merci si vous pouvez m'aider..
Yann.
voilà ma macro pour la hauteur automatique des lignes
---------------
'hauteur des lignes automatique
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As
Range)
Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
For I = 1 To Target.MergeArea.Columns.Count
LARGEUR = LARGEUR + Target.ColumnWidth
Next I
Application.EnableEvents = False
With ActiveSheet.UsedRange
Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
AncLarg = c.ColumnWidth
c.ColumnWidth = LARGEUR '(*****************)
c.WrapText = True
c.Value = Target.Value
Target.EntireRow.RowHeight = c.Height
Var = c.Address
c.Clear
c.ColumnWidth = AncLarg
End With
Recalcul
Application.EnableEvents = True
End Sub
------------
et ma macro de verouillage :
-----------
' Protection automatique de toutes les feuilles d'un classeur
Sub PROTEGERFEUILLES()
Dim Nombre As Integer
Nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For I = 1 To Nombre
Worksheets(I).Protect , DrawingObjects:=True
ActiveSheet.EnableSelection = xlUnlockedCells
AllowFormattingRows = True
AllowFormattingColumns = True 'rajouté, mais ça sert à rien
Next I
End Sub
---------------
Bonjour,
j'ai une macro qui me redimensionne la hauteur des lignes de
certaines cellules, de façon automatique, et je voudrais verouiller toutes
mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
non verouillées.
Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça
bug
aux (****) quand je saisi du texte dans les cellules qui se
redimensionnent
automatiquement.
Merci si vous pouvez m'aider..
Yann.
voilà ma macro pour la hauteur automatique des lignes
---------------
'hauteur des lignes automatique
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As
Range)
Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
For I = 1 To Target.MergeArea.Columns.Count
LARGEUR = LARGEUR + Target.ColumnWidth
Next I
Application.EnableEvents = False
With ActiveSheet.UsedRange
Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
AncLarg = c.ColumnWidth
c.ColumnWidth = LARGEUR '(*****************)
c.WrapText = True
c.Value = Target.Value
Target.EntireRow.RowHeight = c.Height
Var = c.Address
c.Clear
c.ColumnWidth = AncLarg
End With
Recalcul
Application.EnableEvents = True
End Sub
------------
et ma macro de verouillage :
-----------
' Protection automatique de toutes les feuilles d'un classeur
Sub PROTEGERFEUILLES()
Dim Nombre As Integer
Nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For I = 1 To Nombre
Worksheets(I).Protect , DrawingObjects:=True
ActiveSheet.EnableSelection = xlUnlockedCells
AllowFormattingRows = True
AllowFormattingColumns = True 'rajouté, mais ça sert à rien
Next I
End Sub
---------------
Bonjour,
j'ai une macro qui me redimensionne la hauteur des lignes de
certaines cellules, de façon automatique, et je voudrais verouiller toutes
mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
non verouillées.
Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça
bug
aux (****) quand je saisi du texte dans les cellules qui se
redimensionnent
automatiquement.
Merci si vous pouvez m'aider..
Yann.
voilà ma macro pour la hauteur automatique des lignes
---------------
'hauteur des lignes automatique
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As
Range)
Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
For I = 1 To Target.MergeArea.Columns.Count
LARGEUR = LARGEUR + Target.ColumnWidth
Next I
Application.EnableEvents = False
With ActiveSheet.UsedRange
Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
AncLarg = c.ColumnWidth
c.ColumnWidth = LARGEUR '(*****************)
c.WrapText = True
c.Value = Target.Value
Target.EntireRow.RowHeight = c.Height
Var = c.Address
c.Clear
c.ColumnWidth = AncLarg
End With
Recalcul
Application.EnableEvents = True
End Sub
------------
et ma macro de verouillage :
-----------
' Protection automatique de toutes les feuilles d'un classeur
Sub PROTEGERFEUILLES()
Dim Nombre As Integer
Nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For I = 1 To Nombre
Worksheets(I).Protect , DrawingObjects:=True
ActiveSheet.EnableSelection = xlUnlockedCells
AllowFormattingRows = True
AllowFormattingColumns = True 'rajouté, mais ça sert à rien
Next I
End Sub
---------------
Bonjour, Sunburn.
Tu demandes à la macro de modifier la largeur d'une colonne sur une feuille
protégée avec Worksheets(I).Protect.
Oserai-je deux suggestions ?
1° - En utilisant UserInterfaceOnly dans ta protection (Argument de type
Variant facultatif. Cet argument a la valeur True pour protéger l'interface
utilisateur, mais pas les macros. Si cet argument n'est pas spécifié, la
protection s'applique à la fois aux macros et à l'interface utilisateur.)
2° - En déprotégeant ta feuille en début de ta Private Sub
Workbook_SheetChange, et en la reprotégeant à la fin.
Dis nous.
--
Bien ,
Patrick BASTARD
patrick.bastardchezdbmail.com
"Sunburn" a écrit dans le message de
news:
> Bonjour,
> j'ai une macro qui me redimensionne la hauteur des lignes de
> certaines cellules, de façon automatique, et je voudrais verouiller toutes
> mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> non verouillées.
> Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça
> bug
> aux (****) quand je saisi du texte dans les cellules qui se
> redimensionnent
> automatiquement.
>
> Merci si vous pouvez m'aider..
> Yann.
>
> voilà ma macro pour la hauteur automatique des lignes
> ---------------
> 'hauteur des lignes automatique
> Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As
> Range)
> Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> For I = 1 To Target.MergeArea.Columns.Count
> LARGEUR = LARGEUR + Target.ColumnWidth
> Next I
> Application.EnableEvents = False
> With ActiveSheet.UsedRange
> Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
> AncLarg = c.ColumnWidth
> c.ColumnWidth = LARGEUR '(*****************)
> c.WrapText = True
> c.Value = Target.Value
> Target.EntireRow.RowHeight = c.Height
> Var = c.Address
> c.Clear
> c.ColumnWidth = AncLarg
> End With
> Recalcul
> Application.EnableEvents = True
> End Sub
> ------------
> et ma macro de verouillage :
> -----------
> ' Protection automatique de toutes les feuilles d'un classeur
> Sub PROTEGERFEUILLES()
> Dim Nombre As Integer
> Nombre = ActiveWorkbook.Sheets.Count
> Application.ScreenUpdating = False
> For I = 1 To Nombre
> Worksheets(I).Protect , DrawingObjects:=True
> ActiveSheet.EnableSelection = xlUnlockedCells
> AllowFormattingRows = True
> AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> Next I
> End Sub
> ---------------
>
>
Bonjour, Sunburn.
Tu demandes à la macro de modifier la largeur d'une colonne sur une feuille
protégée avec Worksheets(I).Protect.
Oserai-je deux suggestions ?
1° - En utilisant UserInterfaceOnly dans ta protection (Argument de type
Variant facultatif. Cet argument a la valeur True pour protéger l'interface
utilisateur, mais pas les macros. Si cet argument n'est pas spécifié, la
protection s'applique à la fois aux macros et à l'interface utilisateur.)
2° - En déprotégeant ta feuille en début de ta Private Sub
Workbook_SheetChange, et en la reprotégeant à la fin.
Dis nous.
--
Bien amicordi@lement,
Patrick BASTARD
patrick.bastardchezdbmail.com
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news:D2EA114A-27FE-43E3-B6BF-E92DCD9123EE@microsoft.com...
> Bonjour,
> j'ai une macro qui me redimensionne la hauteur des lignes de
> certaines cellules, de façon automatique, et je voudrais verouiller toutes
> mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> non verouillées.
> Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça
> bug
> aux (****) quand je saisi du texte dans les cellules qui se
> redimensionnent
> automatiquement.
>
> Merci si vous pouvez m'aider..
> Yann.
>
> voilà ma macro pour la hauteur automatique des lignes
> ---------------
> 'hauteur des lignes automatique
> Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As
> Range)
> Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> For I = 1 To Target.MergeArea.Columns.Count
> LARGEUR = LARGEUR + Target.ColumnWidth
> Next I
> Application.EnableEvents = False
> With ActiveSheet.UsedRange
> Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
> AncLarg = c.ColumnWidth
> c.ColumnWidth = LARGEUR '(*****************)
> c.WrapText = True
> c.Value = Target.Value
> Target.EntireRow.RowHeight = c.Height
> Var = c.Address
> c.Clear
> c.ColumnWidth = AncLarg
> End With
> Recalcul
> Application.EnableEvents = True
> End Sub
> ------------
> et ma macro de verouillage :
> -----------
> ' Protection automatique de toutes les feuilles d'un classeur
> Sub PROTEGERFEUILLES()
> Dim Nombre As Integer
> Nombre = ActiveWorkbook.Sheets.Count
> Application.ScreenUpdating = False
> For I = 1 To Nombre
> Worksheets(I).Protect , DrawingObjects:=True
> ActiveSheet.EnableSelection = xlUnlockedCells
> AllowFormattingRows = True
> AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> Next I
> End Sub
> ---------------
>
>
Bonjour, Sunburn.
Tu demandes à la macro de modifier la largeur d'une colonne sur une feuille
protégée avec Worksheets(I).Protect.
Oserai-je deux suggestions ?
1° - En utilisant UserInterfaceOnly dans ta protection (Argument de type
Variant facultatif. Cet argument a la valeur True pour protéger l'interface
utilisateur, mais pas les macros. Si cet argument n'est pas spécifié, la
protection s'applique à la fois aux macros et à l'interface utilisateur.)
2° - En déprotégeant ta feuille en début de ta Private Sub
Workbook_SheetChange, et en la reprotégeant à la fin.
Dis nous.
--
Bien ,
Patrick BASTARD
patrick.bastardchezdbmail.com
"Sunburn" a écrit dans le message de
news:
> Bonjour,
> j'ai une macro qui me redimensionne la hauteur des lignes de
> certaines cellules, de façon automatique, et je voudrais verouiller toutes
> mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> non verouillées.
> Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça
> bug
> aux (****) quand je saisi du texte dans les cellules qui se
> redimensionnent
> automatiquement.
>
> Merci si vous pouvez m'aider..
> Yann.
>
> voilà ma macro pour la hauteur automatique des lignes
> ---------------
> 'hauteur des lignes automatique
> Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As
> Range)
> Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> For I = 1 To Target.MergeArea.Columns.Count
> LARGEUR = LARGEUR + Target.ColumnWidth
> Next I
> Application.EnableEvents = False
> With ActiveSheet.UsedRange
> Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
> AncLarg = c.ColumnWidth
> c.ColumnWidth = LARGEUR '(*****************)
> c.WrapText = True
> c.Value = Target.Value
> Target.EntireRow.RowHeight = c.Height
> Var = c.Address
> c.Clear
> c.ColumnWidth = AncLarg
> End With
> Recalcul
> Application.EnableEvents = True
> End Sub
> ------------
> et ma macro de verouillage :
> -----------
> ' Protection automatique de toutes les feuilles d'un classeur
> Sub PROTEGERFEUILLES()
> Dim Nombre As Integer
> Nombre = ActiveWorkbook.Sheets.Count
> Application.ScreenUpdating = False
> For I = 1 To Nombre
> Worksheets(I).Protect , DrawingObjects:=True
> ActiveSheet.EnableSelection = xlUnlockedCells
> AllowFormattingRows = True
> AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> Next I
> End Sub
> ---------------
>
>
....si la macro ne fait rien et aucun message erreur c'est peut-être
que tu es sur plusieurs cellules ou fusionnées (beurk)
et ca se passe ici:
If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
On 14 oct, 15:38, lSteph wrote:
> ...et sans enlever le as double
>
> On 14 oct, 15:26, Sunburn wrote:
>
> > en enlevant uniquement le "as double", il me met une erreur : "erreur
> > d'éxecution 1004 : impossible de définir la propriété columnwidth de la
> > classe range"
>
> > "lSteph" a écrit :
>
> > > Quel est le message erreur exact
>
> > > On 14 oct, 15:01, Sunburn wrote:
> > > > Oui, ça bug toujours chez moi....
> > > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > > Yann
>
> > > > "lSteph" a écrit :
>
> > > > > ...oupsss Ca doit venir d'autre chose car
> > > > > en fait malgré l'erreur qui apparait sur le type j'ai testé
> > > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > > et être géré correctement au moins dans ceci:
>
> > > > > Sub relarg()
> > > > > Dim largeur As Long
> > > > > largeur = [a1].ColumnWidth
> > > > > Columns(1).ColumnWidth = largeur + 4
> > > > > End Sub
>
> > > > > '...à suivre
>
> > > > > --
> > > > > lSteph
> > > > > (tout confus :((
>
> > > > > On 14 oct, 11:58, lSteph wrote:
> > > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > > enlève le As Double
>
> > > > > > On 14 oct, 11:16, Sunburn wrote:
>
> > > > > > > Bonjour,
> > > > > > > merci, mais je modifie quoi et où en fait ? car là comme ça, j'ai un peu de
> > > > > > > mal.
> > > > > > > Merci, Yann
>
> > > > > > > "lSteph" a écrit :
>
> > > > > > > > dim largeur
> > > > > > > > ou
> > > > > > > > dim largeur as variant
>
> > > > > > > > columnwidth est une propriété dont le type est en variant
>
> > > > > > > > @+
>
> > > > > > > > On 14 oct, 10:27, Sunburn wrote:
> > > > > > > > > Bonjour,
> > > > > > > > > j'ai une macro qui me redimensionne la hauteur des lignes de
> > > > > > > > > certaines cellules, de façon automatique, et je voudrais verouiller toutes
> > > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> > > > > > > > > non verouillées.
> > > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça bug
> > > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > > automatiquement.
>
> > > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > > Yann.
>
> > > > > > > > > voilà ma macro pour la hauteur automatique des lignes
> > > > > > > > > ---------------
> > > > > > > > > 'hauteur des lignes automatique
> > > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
> > > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> > > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > > LARGEUR = LARGEUR + Target.ColumnWidth
> > > > > > > > > Next I
> > > > > > > > > Application.EnableEvents = False
> > > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
> > > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > > c.ColumnWidth = LARGEUR '(*****************)
> > > > > > > > > c.WrapText = True
> > > > > > > > > c.Value = Target.Value
> > > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > > Var = c.Address
> > > > > > > > > c.Clear
> > > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > > End With
> > > > > > > > > Recalcul
> > > > > > > > > Application.EnableEvents = True
> > > > > > > > > End Sub
> > > > > > > > > ------------
> > > > > > > > > et ma macro de verouillage :
> > > > > > > > > -----------
> > > > > > > > > ' Protection automatique de toutes les feuilles d'un classeur
> > > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > > Dim Nombre As Integer
> > > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > > Application.ScreenUpdating = False
> > > > > > > > > For I = 1 To Nombre
> > > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > > AllowFormattingRows = True
> > > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> > > > > > > > > Next I
> > > > > > > > > End Sub
> > > > > > > > > ---------------
....si la macro ne fait rien et aucun message erreur c'est peut-être
que tu es sur plusieurs cellules ou fusionnées (beurk)
et ca se passe ici:
If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
On 14 oct, 15:38, lSteph <gmLSt...@gmail.com> wrote:
> ...et sans enlever le as double
>
> On 14 oct, 15:26, Sunburn <Sunb...@discussions.microsoft.com> wrote:
>
> > en enlevant uniquement le "as double", il me met une erreur : "erreur
> > d'éxecution 1004 : impossible de définir la propriété columnwidth de la
> > classe range"
>
> > "lSteph" a écrit :
>
> > > Quel est le message erreur exact
>
> > > On 14 oct, 15:01, Sunburn <Sunb...@discussions.microsoft.com> wrote:
> > > > Oui, ça bug toujours chez moi....
> > > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > > Yann
>
> > > > "lSteph" a écrit :
>
> > > > > ...oupsss Ca doit venir d'autre chose car
> > > > > en fait malgré l'erreur qui apparait sur le type j'ai testé
> > > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > > et être géré correctement au moins dans ceci:
>
> > > > > Sub relarg()
> > > > > Dim largeur As Long
> > > > > largeur = [a1].ColumnWidth
> > > > > Columns(1).ColumnWidth = largeur + 4
> > > > > End Sub
>
> > > > > '...à suivre
>
> > > > > --
> > > > > lSteph
> > > > > (tout confus :((
>
> > > > > On 14 oct, 11:58, lSteph <gmLSt...@gmail.com> wrote:
> > > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > > enlève le As Double
>
> > > > > > On 14 oct, 11:16, Sunburn <Sunb...@discussions.microsoft.com> wrote:
>
> > > > > > > Bonjour,
> > > > > > > merci, mais je modifie quoi et où en fait ? car là comme ça, j'ai un peu de
> > > > > > > mal.
> > > > > > > Merci, Yann
>
> > > > > > > "lSteph" a écrit :
>
> > > > > > > > dim largeur
> > > > > > > > ou
> > > > > > > > dim largeur as variant
>
> > > > > > > > columnwidth est une propriété dont le type est en variant
>
> > > > > > > > @+
>
> > > > > > > > On 14 oct, 10:27, Sunburn <Sunb...@discussions.microsoft.com> wrote:
> > > > > > > > > Bonjour,
> > > > > > > > > j'ai une macro qui me redimensionne la hauteur des lignes de
> > > > > > > > > certaines cellules, de façon automatique, et je voudrais verouiller toutes
> > > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> > > > > > > > > non verouillées.
> > > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça bug
> > > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > > automatiquement.
>
> > > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > > Yann.
>
> > > > > > > > > voilà ma macro pour la hauteur automatique des lignes
> > > > > > > > > ---------------
> > > > > > > > > 'hauteur des lignes automatique
> > > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
> > > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> > > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > > LARGEUR = LARGEUR + Target.ColumnWidth
> > > > > > > > > Next I
> > > > > > > > > Application.EnableEvents = False
> > > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
> > > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > > c.ColumnWidth = LARGEUR '(*****************)
> > > > > > > > > c.WrapText = True
> > > > > > > > > c.Value = Target.Value
> > > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > > Var = c.Address
> > > > > > > > > c.Clear
> > > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > > End With
> > > > > > > > > Recalcul
> > > > > > > > > Application.EnableEvents = True
> > > > > > > > > End Sub
> > > > > > > > > ------------
> > > > > > > > > et ma macro de verouillage :
> > > > > > > > > -----------
> > > > > > > > > ' Protection automatique de toutes les feuilles d'un classeur
> > > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > > Dim Nombre As Integer
> > > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > > Application.ScreenUpdating = False
> > > > > > > > > For I = 1 To Nombre
> > > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > > AllowFormattingRows = True
> > > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> > > > > > > > > Next I
> > > > > > > > > End Sub
> > > > > > > > > ---------------
....si la macro ne fait rien et aucun message erreur c'est peut-être
que tu es sur plusieurs cellules ou fusionnées (beurk)
et ca se passe ici:
If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
On 14 oct, 15:38, lSteph wrote:
> ...et sans enlever le as double
>
> On 14 oct, 15:26, Sunburn wrote:
>
> > en enlevant uniquement le "as double", il me met une erreur : "erreur
> > d'éxecution 1004 : impossible de définir la propriété columnwidth de la
> > classe range"
>
> > "lSteph" a écrit :
>
> > > Quel est le message erreur exact
>
> > > On 14 oct, 15:01, Sunburn wrote:
> > > > Oui, ça bug toujours chez moi....
> > > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > > Yann
>
> > > > "lSteph" a écrit :
>
> > > > > ...oupsss Ca doit venir d'autre chose car
> > > > > en fait malgré l'erreur qui apparait sur le type j'ai testé
> > > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > > et être géré correctement au moins dans ceci:
>
> > > > > Sub relarg()
> > > > > Dim largeur As Long
> > > > > largeur = [a1].ColumnWidth
> > > > > Columns(1).ColumnWidth = largeur + 4
> > > > > End Sub
>
> > > > > '...à suivre
>
> > > > > --
> > > > > lSteph
> > > > > (tout confus :((
>
> > > > > On 14 oct, 11:58, lSteph wrote:
> > > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > > enlève le As Double
>
> > > > > > On 14 oct, 11:16, Sunburn wrote:
>
> > > > > > > Bonjour,
> > > > > > > merci, mais je modifie quoi et où en fait ? car là comme ça, j'ai un peu de
> > > > > > > mal.
> > > > > > > Merci, Yann
>
> > > > > > > "lSteph" a écrit :
>
> > > > > > > > dim largeur
> > > > > > > > ou
> > > > > > > > dim largeur as variant
>
> > > > > > > > columnwidth est une propriété dont le type est en variant
>
> > > > > > > > @+
>
> > > > > > > > On 14 oct, 10:27, Sunburn wrote:
> > > > > > > > > Bonjour,
> > > > > > > > > j'ai une macro qui me redimensionne la hauteur des lignes de
> > > > > > > > > certaines cellules, de façon automatique, et je voudrais verouiller toutes
> > > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> > > > > > > > > non verouillées.
> > > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + verouillage), mais ça bug
> > > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > > automatiquement.
>
> > > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > > Yann.
>
> > > > > > > > > voilà ma macro pour la hauteur automatique des lignes
> > > > > > > > > ---------------
> > > > > > > > > 'hauteur des lignes automatique
> > > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
> > > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> > > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > > LARGEUR = LARGEUR + Target.ColumnWidth
> > > > > > > > > Next I
> > > > > > > > > Application.EnableEvents = False
> > > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
> > > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > > c.ColumnWidth = LARGEUR '(*****************)
> > > > > > > > > c.WrapText = True
> > > > > > > > > c.Value = Target.Value
> > > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > > Var = c.Address
> > > > > > > > > c.Clear
> > > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > > End With
> > > > > > > > > Recalcul
> > > > > > > > > Application.EnableEvents = True
> > > > > > > > > End Sub
> > > > > > > > > ------------
> > > > > > > > > et ma macro de verouillage :
> > > > > > > > > -----------
> > > > > > > > > ' Protection automatique de toutes les feuilles d'un classeur
> > > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > > Dim Nombre As Integer
> > > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > > Application.ScreenUpdating = False
> > > > > > > > > For I = 1 To Nombre
> > > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > > AllowFormattingRows = True
> > > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> > > > > > > > > Next I
> > > > > > > > > End Sub
> > > > > > > > > ---------------
Avec la solution de patrick, ça a l'air de fonctionner, donc je vais op ter
pour celà.
Je te remercie.
Yann
"lSteph" a écrit :
> ....si la macro ne fait rien et aucun message erreur c'est peut-être
> que tu es sur plusieurs cellules ou fusionnées (beurk)
> et ca se passe ici:
> If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> On 14 oct, 15:38, lSteph wrote:
> > ...et sans enlever le as double
> > On 14 oct, 15:26, Sunburn wrote:
> > > en enlevant uniquement le "as double", il me met une erreur : "e rreur
> > > d'éxecution 1004 : impossible de définir la propriété colum nwidth de la
> > > classe range"
> > > "lSteph" a écrit :
> > > > Quel est le message erreur exact
> > > > On 14 oct, 15:01, Sunburn wro te:
> > > > > Oui, ça bug toujours chez moi....
> > > > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > > > Yann
> > > > > "lSteph" a écrit :
> > > > > > ...oupsss Ca doit venir d'autre chose car
> > > > > > en fait malgré l'erreur qui apparait sur le type j'ai te sté
> > > > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > > > et être géré correctement au moins dans ceci:
> > > > > > Sub relarg()
> > > > > > Dim largeur As Long
> > > > > > largeur = [a1].ColumnWidth
> > > > > > Columns(1).ColumnWidth = largeur + 4
> > > > > > End Sub
> > > > > > '...à suivre
> > > > > > --
> > > > > > lSteph
> > > > > > (tout confus :((
> > > > > > On 14 oct, 11:58, lSteph wrote:
> > > > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > > > enlève le As Double
> > > > > > > On 14 oct, 11:16, Sunburn m> wrote:
> > > > > > > > Bonjour,
> > > > > > > > merci, mais je modifie quoi et où en fait ? car là co mme ça, j'ai un peu de
> > > > > > > > mal.
> > > > > > > > Merci, Yann
> > > > > > > > "lSteph" a écrit :
> > > > > > > > > dim largeur
> > > > > > > > > ou
> > > > > > > > > dim largeur as variant
> > > > > > > > > columnwidth est une propriété dont le type est e n variant
> > > > > > > > > @+
> > > > > > > > > On 14 oct, 10:27, Sunburn t.com> wrote:
> > > > > > > > > > Bonjour,
> > > > > > > > > > j'ai une macro qui me redimensionne la hauteur des li gnes de
> > > > > > > > > > certaines cellules, de façon automatique, et je vou drais verouiller toutes
> > > > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> > > > > > > > > > non verouillées.
> > > > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + ver ouillage), mais ça bug
> > > > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > > > automatiquement.
> > > > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > > > Yann.
> > > > > > > > > > voilà ma macro pour la hauteur automatique des lign es
> > > > > > > > > > ---------------
> > > > > > > > > > 'hauteur des lignes automatique
> > > > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
> > > > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> > > > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > > > LARGEUR = LARGEUR + Target.ColumnWi dth
> > > > > > > > > > Next I
> > > > > > > > > > Application.EnableEvents = False
> > > > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns. Count).Address).Offset(1)
> > > > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > > > c.ColumnWidth = LARGEUR '(************** ***)
> > > > > > > > > > c.WrapText = True
> > > > > > > > > > c.Value = Target.Value
> > > > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > > > Var = c.Address
> > > > > > > > > > c.Clear
> > > > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > > > End With
> > > > > > > > > > Recalcul
> > > > > > > > > > Application.EnableEvents = True
> > > > > > > > > > End Sub
> > > > > > > > > > ------------
> > > > > > > > > > et ma macro de verouillage :
> > > > > > > > > > -----------
> > > > > > > > > > ' Protection automatique de toutes les feuilles d'un classeur
> > > > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > > > Dim Nombre As Integer
> > > > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > > > Application.ScreenUpdating = False
> > > > > > > > > > For I = 1 To Nombre
> > > > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > > > AllowFormattingRows = True
> > > > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> > > > > > > > > > Next I
> > > > > > > > > > End Sub
> > > > > > > > > > ---------------
Avec la solution de patrick, ça a l'air de fonctionner, donc je vais op ter
pour celà.
Je te remercie.
Yann
"lSteph" a écrit :
> ....si la macro ne fait rien et aucun message erreur c'est peut-être
> que tu es sur plusieurs cellules ou fusionnées (beurk)
> et ca se passe ici:
> If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> On 14 oct, 15:38, lSteph <gmLSt...@gmail.com> wrote:
> > ...et sans enlever le as double
> > On 14 oct, 15:26, Sunburn <Sunb...@discussions.microsoft.com> wrote:
> > > en enlevant uniquement le "as double", il me met une erreur : "e rreur
> > > d'éxecution 1004 : impossible de définir la propriété colum nwidth de la
> > > classe range"
> > > "lSteph" a écrit :
> > > > Quel est le message erreur exact
> > > > On 14 oct, 15:01, Sunburn <Sunb...@discussions.microsoft.com> wro te:
> > > > > Oui, ça bug toujours chez moi....
> > > > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > > > Yann
> > > > > "lSteph" a écrit :
> > > > > > ...oupsss Ca doit venir d'autre chose car
> > > > > > en fait malgré l'erreur qui apparait sur le type j'ai te sté
> > > > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > > > et être géré correctement au moins dans ceci:
> > > > > > Sub relarg()
> > > > > > Dim largeur As Long
> > > > > > largeur = [a1].ColumnWidth
> > > > > > Columns(1).ColumnWidth = largeur + 4
> > > > > > End Sub
> > > > > > '...à suivre
> > > > > > --
> > > > > > lSteph
> > > > > > (tout confus :((
> > > > > > On 14 oct, 11:58, lSteph <gmLSt...@gmail.com> wrote:
> > > > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > > > enlève le As Double
> > > > > > > On 14 oct, 11:16, Sunburn <Sunb...@discussions.microsoft.co m> wrote:
> > > > > > > > Bonjour,
> > > > > > > > merci, mais je modifie quoi et où en fait ? car là co mme ça, j'ai un peu de
> > > > > > > > mal.
> > > > > > > > Merci, Yann
> > > > > > > > "lSteph" a écrit :
> > > > > > > > > dim largeur
> > > > > > > > > ou
> > > > > > > > > dim largeur as variant
> > > > > > > > > columnwidth est une propriété dont le type est e n variant
> > > > > > > > > @+
> > > > > > > > > On 14 oct, 10:27, Sunburn <Sunb...@discussions.microsof t.com> wrote:
> > > > > > > > > > Bonjour,
> > > > > > > > > > j'ai une macro qui me redimensionne la hauteur des li gnes de
> > > > > > > > > > certaines cellules, de façon automatique, et je vou drais verouiller toutes
> > > > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> > > > > > > > > > non verouillées.
> > > > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + ver ouillage), mais ça bug
> > > > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > > > automatiquement.
> > > > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > > > Yann.
> > > > > > > > > > voilà ma macro pour la hauteur automatique des lign es
> > > > > > > > > > ---------------
> > > > > > > > > > 'hauteur des lignes automatique
> > > > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
> > > > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> > > > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > > > LARGEUR = LARGEUR + Target.ColumnWi dth
> > > > > > > > > > Next I
> > > > > > > > > > Application.EnableEvents = False
> > > > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns. Count).Address).Offset(1)
> > > > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > > > c.ColumnWidth = LARGEUR '(************** ***)
> > > > > > > > > > c.WrapText = True
> > > > > > > > > > c.Value = Target.Value
> > > > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > > > Var = c.Address
> > > > > > > > > > c.Clear
> > > > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > > > End With
> > > > > > > > > > Recalcul
> > > > > > > > > > Application.EnableEvents = True
> > > > > > > > > > End Sub
> > > > > > > > > > ------------
> > > > > > > > > > et ma macro de verouillage :
> > > > > > > > > > -----------
> > > > > > > > > > ' Protection automatique de toutes les feuilles d'un classeur
> > > > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > > > Dim Nombre As Integer
> > > > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > > > Application.ScreenUpdating = False
> > > > > > > > > > For I = 1 To Nombre
> > > > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > > > AllowFormattingRows = True
> > > > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> > > > > > > > > > Next I
> > > > > > > > > > End Sub
> > > > > > > > > > ---------------
Avec la solution de patrick, ça a l'air de fonctionner, donc je vais op ter
pour celà.
Je te remercie.
Yann
"lSteph" a écrit :
> ....si la macro ne fait rien et aucun message erreur c'est peut-être
> que tu es sur plusieurs cellules ou fusionnées (beurk)
> et ca se passe ici:
> If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> On 14 oct, 15:38, lSteph wrote:
> > ...et sans enlever le as double
> > On 14 oct, 15:26, Sunburn wrote:
> > > en enlevant uniquement le "as double", il me met une erreur : "e rreur
> > > d'éxecution 1004 : impossible de définir la propriété colum nwidth de la
> > > classe range"
> > > "lSteph" a écrit :
> > > > Quel est le message erreur exact
> > > > On 14 oct, 15:01, Sunburn wro te:
> > > > > Oui, ça bug toujours chez moi....
> > > > > C'est compliqué cette histoire... mais ne soit pas confus .. :-))
> > > > > Yann
> > > > > "lSteph" a écrit :
> > > > > > ...oupsss Ca doit venir d'autre chose car
> > > > > > en fait malgré l'erreur qui apparait sur le type j'ai te sté
> > > > > > l'emploi de as long ne semble pas provoquer d'erreur
> > > > > > et être géré correctement au moins dans ceci:
> > > > > > Sub relarg()
> > > > > > Dim largeur As Long
> > > > > > largeur = [a1].ColumnWidth
> > > > > > Columns(1).ColumnWidth = largeur + 4
> > > > > > End Sub
> > > > > > '...à suivre
> > > > > > --
> > > > > > lSteph
> > > > > > (tout confus :((
> > > > > > On 14 oct, 11:58, lSteph wrote:
> > > > > > > dans la ligne ou tu as Dim LARGEUR As Double
> > > > > > > enlève le As Double
> > > > > > > On 14 oct, 11:16, Sunburn m> wrote:
> > > > > > > > Bonjour,
> > > > > > > > merci, mais je modifie quoi et où en fait ? car là co mme ça, j'ai un peu de
> > > > > > > > mal.
> > > > > > > > Merci, Yann
> > > > > > > > "lSteph" a écrit :
> > > > > > > > > dim largeur
> > > > > > > > > ou
> > > > > > > > > dim largeur as variant
> > > > > > > > > columnwidth est une propriété dont le type est e n variant
> > > > > > > > > @+
> > > > > > > > > On 14 oct, 10:27, Sunburn t.com> wrote:
> > > > > > > > > > Bonjour,
> > > > > > > > > > j'ai une macro qui me redimensionne la hauteur des li gnes de
> > > > > > > > > > certaines cellules, de façon automatique, et je vou drais verouiller toutes
> > > > > > > > > > mes feuilles, de façon que l'utilisateur ne puisse accéder qu'aux cellules
> > > > > > > > > > non verouillées.
> > > > > > > > > > Donc j'ai ces divers macros (hauteur des lignes + ver ouillage), mais ça bug
> > > > > > > > > > aux (****) quand je saisi du texte dans les cellules qui se redimensionnent
> > > > > > > > > > automatiquement.
> > > > > > > > > > Merci si vous pouvez m'aider..
> > > > > > > > > > Yann.
> > > > > > > > > > voilà ma macro pour la hauteur automatique des lign es
> > > > > > > > > > ---------------
> > > > > > > > > > 'hauteur des lignes automatique
> > > > > > > > > > Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
> > > > > > > > > > Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
> > > > > > > > > > If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
> > > > > > > > > > For I = 1 To Target.MergeArea.Columns.Count
> > > > > > > > > > LARGEUR = LARGEUR + Target.ColumnWi dth
> > > > > > > > > > Next I
> > > > > > > > > > Application.EnableEvents = False
> > > > > > > > > > With ActiveSheet.UsedRange
> > > > > > > > > > Set c = Range(.Cells(.Rows.Count, .Columns. Count).Address).Offset(1)
> > > > > > > > > > AncLarg = c.ColumnWidth
> > > > > > > > > > c.ColumnWidth = LARGEUR '(************** ***)
> > > > > > > > > > c.WrapText = True
> > > > > > > > > > c.Value = Target.Value
> > > > > > > > > > Target.EntireRow.RowHeight = c.Height
> > > > > > > > > > Var = c.Address
> > > > > > > > > > c.Clear
> > > > > > > > > > c.ColumnWidth = AncLarg
> > > > > > > > > > End With
> > > > > > > > > > Recalcul
> > > > > > > > > > Application.EnableEvents = True
> > > > > > > > > > End Sub
> > > > > > > > > > ------------
> > > > > > > > > > et ma macro de verouillage :
> > > > > > > > > > -----------
> > > > > > > > > > ' Protection automatique de toutes les feuilles d'un classeur
> > > > > > > > > > Sub PROTEGERFEUILLES()
> > > > > > > > > > Dim Nombre As Integer
> > > > > > > > > > Nombre = ActiveWorkbook.Sheets.Count
> > > > > > > > > > Application.ScreenUpdating = False
> > > > > > > > > > For I = 1 To Nombre
> > > > > > > > > > Worksheets(I).Protect , DrawingObjects:=True
> > > > > > > > > > ActiveSheet.EnableSelection = xlUnlockedCells
> > > > > > > > > > AllowFormattingRows = True
> > > > > > > > > > AllowFormattingColumns = True 'rajouté, mais ça sert à rien
> > > > > > > > > > Next I
> > > > > > > > > > End Sub
> > > > > > > > > > ---------------