ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Ave Stéphane,
Là j'ai besoin de tes lumières.
Si j'utilise cette instruction :
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Si c'est le cas, comment se fait-il que je ne peux
pas pas sélectionner une forme automatique par macro ?
Petite remarque :
Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
les noms des paramètres de la méthode sont écrits exclusivement en français,
ce qui n'est guère pratique quand on veut les utiliser dans une macro !
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes an ciens
documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()
Dim i%, j%, k%, l%, m%, n%
Dim c%, col%, lig%, p%
With Application
.ScreenUpdating = False: .DisplayFullScreen = True
End With
Sheets.Add
With ActiveWindow
.DisplayGridlines = False: .DisplayHeadings = False
End With
With Cells
.ColumnWidth = 2: .RowHeight = 4
End With
Rows(4).RowHeight = 12
For i = 21 To 105 Step 14
Rows(i).RowHeight = 10
Next i
For i = 5 To 31 Step 4
Columns(i).ColumnWidth = 4
Next i
For i = 0 To 1: For j = 0 To 1
For k = 0 To 1: For l = 0 To 1
For m = 0 To 1: For n = 0 To 1
c = c + 1
col = (4 * c - 1) Mod 32
lig = 14 * Application.RoundUp(c / 8, 0) - 5
Cells(lig, col).Interior.ColorIndex = i
Cells(lig + 2, col).Interior.ColorIndex = j
Cells(lig + 4, col).Interior.ColorIndex = k
Cells(lig + 6, col).Interior.ColorIndex = l
Cells(lig + 8, col).Interior.ColorIndex = m
Cells(lig + 10, col).Interior.ColorIndex = n
For p = 0 To 10 Step 2
Cells(lig + p, col - 1).Interior.ColorIndex = 1
Cells(lig + p, col + 1).Interior.ColorIndex = 1
Next p
Next: Next: Next: Next: Next: Next
End Sub
A+
Serge
"LSteph" a écrit dans le message de news:
Bonjour,
Pour la protection j'ai vu que c'était gèré avant après, je n'ai
volontairement donc donné d'indication (à adapter) que sur la questio n
posée sur les lignes
et dont tu as bien relevé le souci ..donc cela peut se règler selon
les 5 petites lignes indiquées.
Mais puisque cette question est abordée on peut rendre plus pratique
l'usage des macros en sévitant déprotection reprotection au sein de
chacune
il suffit d'envisager la protection dans le Workbook_open
en mettant userinterfaceonly à true
exemple ici pour toutes les feuilles:
'dans le thisworkbook du classeur
Private Sub Workbook_open()
Dim sh as worksheet
For each sh in thisworkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub
'pour tester fermer et rouvrir le classeur
'lSteph
On 10 juil, 10:21, Gloops wrote:
> Bonjour,
> Comme ça au premier coup d'il, la seule erreur que je voie est que la
> protection est retirée deux fois, une fois au début et une fois à la
> fin. Pas moyen d'essayer avec une pause juste avant pour vérifier o ù se
> produit l'erreur ?
> A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> note discrètement LSteph, puisque si on traite chaque cellule de la
> plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne est
> traitée cent quatre fois. Au bout d'une fois ou deux, si la correctio n
> n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> ____________________________________________
> alain Lebayle a écrit, le 10/07/2009 09:06 :
> > Bonjour,
> > J'ai cette procédure qui fait planter le programme.
> > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > Merci
> > Alain
> > Sub Les_lignes()
> > Application.ScreenUpdating = False
> > Sheets("Travail").Unprotect Password:="toto"
> > Set plage = Range("A3:AD2000")
> > For Each C In plage
> > C.EntireRow.AutoFit
> > If C.RowHeight > 42.75 Then
> > Else
> > C.RowHeight = 42.75
> > End If
> > Next
> > Sheets("Travail").Unprotect Password:="toto"
> > Application.ScreenUpdating = True
> > End Sub- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Ave Stéphane,
Là j'ai besoin de tes lumières.
Si j'utilise cette instruction :
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Si c'est le cas, comment se fait-il que je ne peux
pas pas sélectionner une forme automatique par macro ?
Petite remarque :
Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
les noms des paramètres de la méthode sont écrits exclusivement en français,
ce qui n'est guère pratique quand on veut les utiliser dans une macro !
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes an ciens
documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()
Dim i%, j%, k%, l%, m%, n%
Dim c%, col%, lig%, p%
With Application
.ScreenUpdating = False: .DisplayFullScreen = True
End With
Sheets.Add
With ActiveWindow
.DisplayGridlines = False: .DisplayHeadings = False
End With
With Cells
.ColumnWidth = 2: .RowHeight = 4
End With
Rows(4).RowHeight = 12
For i = 21 To 105 Step 14
Rows(i).RowHeight = 10
Next i
For i = 5 To 31 Step 4
Columns(i).ColumnWidth = 4
Next i
For i = 0 To 1: For j = 0 To 1
For k = 0 To 1: For l = 0 To 1
For m = 0 To 1: For n = 0 To 1
c = c + 1
col = (4 * c - 1) Mod 32
lig = 14 * Application.RoundUp(c / 8, 0) - 5
Cells(lig, col).Interior.ColorIndex = i
Cells(lig + 2, col).Interior.ColorIndex = j
Cells(lig + 4, col).Interior.ColorIndex = k
Cells(lig + 6, col).Interior.ColorIndex = l
Cells(lig + 8, col).Interior.ColorIndex = m
Cells(lig + 10, col).Interior.ColorIndex = n
For p = 0 To 10 Step 2
Cells(lig + p, col - 1).Interior.ColorIndex = 1
Cells(lig + p, col + 1).Interior.ColorIndex = 1
Next p
Next: Next: Next: Next: Next: Next
End Sub
A+
Serge
"LSteph" <gmlst...@gmail.com> a écrit dans le message de news:
552b71c9-60b5-42b7-93a0-f3d518720...@a36g2000yqc.googlegroups.com...
Bonjour,
Pour la protection j'ai vu que c'était gèré avant après, je n'ai
volontairement donc donné d'indication (à adapter) que sur la questio n
posée sur les lignes
et dont tu as bien relevé le souci ..donc cela peut se règler selon
les 5 petites lignes indiquées.
Mais puisque cette question est abordée on peut rendre plus pratique
l'usage des macros en sévitant déprotection reprotection au sein de
chacune
il suffit d'envisager la protection dans le Workbook_open
en mettant userinterfaceonly à true
exemple ici pour toutes les feuilles:
'dans le thisworkbook du classeur
Private Sub Workbook_open()
Dim sh as worksheet
For each sh in thisworkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub
'pour tester fermer et rouvrir le classeur
'lSteph
On 10 juil, 10:21, Gloops <glo...@invalid.zailes.org> wrote:
> Bonjour,
> Comme ça au premier coup d'il, la seule erreur que je voie est que la
> protection est retirée deux fois, une fois au début et une fois à la
> fin. Pas moyen d'essayer avec une pause juste avant pour vérifier o ù se
> produit l'erreur ?
> A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> note discrètement LSteph, puisque si on traite chaque cellule de la
> plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne est
> traitée cent quatre fois. Au bout d'une fois ou deux, si la correctio n
> n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> ____________________________________________
> alain Lebayle a écrit, le 10/07/2009 09:06 :
> > Bonjour,
> > J'ai cette procédure qui fait planter le programme.
> > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > Merci
> > Alain
> > Sub Les_lignes()
> > Application.ScreenUpdating = False
> > Sheets("Travail").Unprotect Password:="toto"
> > Set plage = Range("A3:AD2000")
> > For Each C In plage
> > C.EntireRow.AutoFit
> > If C.RowHeight > 42.75 Then
> > Else
> > C.RowHeight = 42.75
> > End If
> > Next
> > Sheets("Travail").Unprotect Password:="toto"
> > Application.ScreenUpdating = True
> > End Sub- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Ave Stéphane,
Là j'ai besoin de tes lumières.
Si j'utilise cette instruction :
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Si c'est le cas, comment se fait-il que je ne peux
pas pas sélectionner une forme automatique par macro ?
Petite remarque :
Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
les noms des paramètres de la méthode sont écrits exclusivement en français,
ce qui n'est guère pratique quand on veut les utiliser dans une macro !
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes an ciens
documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()
Dim i%, j%, k%, l%, m%, n%
Dim c%, col%, lig%, p%
With Application
.ScreenUpdating = False: .DisplayFullScreen = True
End With
Sheets.Add
With ActiveWindow
.DisplayGridlines = False: .DisplayHeadings = False
End With
With Cells
.ColumnWidth = 2: .RowHeight = 4
End With
Rows(4).RowHeight = 12
For i = 21 To 105 Step 14
Rows(i).RowHeight = 10
Next i
For i = 5 To 31 Step 4
Columns(i).ColumnWidth = 4
Next i
For i = 0 To 1: For j = 0 To 1
For k = 0 To 1: For l = 0 To 1
For m = 0 To 1: For n = 0 To 1
c = c + 1
col = (4 * c - 1) Mod 32
lig = 14 * Application.RoundUp(c / 8, 0) - 5
Cells(lig, col).Interior.ColorIndex = i
Cells(lig + 2, col).Interior.ColorIndex = j
Cells(lig + 4, col).Interior.ColorIndex = k
Cells(lig + 6, col).Interior.ColorIndex = l
Cells(lig + 8, col).Interior.ColorIndex = m
Cells(lig + 10, col).Interior.ColorIndex = n
For p = 0 To 10 Step 2
Cells(lig + p, col - 1).Interior.ColorIndex = 1
Cells(lig + p, col + 1).Interior.ColorIndex = 1
Next p
Next: Next: Next: Next: Next: Next
End Sub
A+
Serge
"LSteph" a écrit dans le message de news:
Bonjour,
Pour la protection j'ai vu que c'était gèré avant après, je n'ai
volontairement donc donné d'indication (à adapter) que sur la questio n
posée sur les lignes
et dont tu as bien relevé le souci ..donc cela peut se règler selon
les 5 petites lignes indiquées.
Mais puisque cette question est abordée on peut rendre plus pratique
l'usage des macros en sévitant déprotection reprotection au sein de
chacune
il suffit d'envisager la protection dans le Workbook_open
en mettant userinterfaceonly à true
exemple ici pour toutes les feuilles:
'dans le thisworkbook du classeur
Private Sub Workbook_open()
Dim sh as worksheet
For each sh in thisworkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub
'pour tester fermer et rouvrir le classeur
'lSteph
On 10 juil, 10:21, Gloops wrote:
> Bonjour,
> Comme ça au premier coup d'il, la seule erreur que je voie est que la
> protection est retirée deux fois, une fois au début et une fois à la
> fin. Pas moyen d'essayer avec une pause juste avant pour vérifier o ù se
> produit l'erreur ?
> A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> note discrètement LSteph, puisque si on traite chaque cellule de la
> plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne est
> traitée cent quatre fois. Au bout d'une fois ou deux, si la correctio n
> n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> ____________________________________________
> alain Lebayle a écrit, le 10/07/2009 09:06 :
> > Bonjour,
> > J'ai cette procédure qui fait planter le programme.
> > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > Merci
> > Alain
> > Sub Les_lignes()
> > Application.ScreenUpdating = False
> > Sheets("Travail").Unprotect Password:="toto"
> > Set plage = Range("A3:AD2000")
> > For Each C In plage
> > C.EntireRow.AutoFit
> > If C.RowHeight > 42.75 Then
> > Else
> > C.RowHeight = 42.75
> > End If
> > Next
> > Sheets("Travail").Unprotect Password:="toto"
> > Application.ScreenUpdating = True
> > End Sub- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Ave Stéphane,
Là j'ai besoin de tes lumières.
Si j'utilise cette instruction :
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Si c'est le cas, comment se fait-il que je ne peux
pas pas sélectionner une forme automatique par macro ?
Petite remarque :
Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
les noms des paramètres de la méthode sont écrits exclusivement en
français,
ce qui n'est guère pratique quand on veut les utiliser dans une macro !
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
anciens
documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()
Dim i%, j%, k%, l%, m%, n%
Dim c%, col%, lig%, p%
With Application
.ScreenUpdating = False: .DisplayFullScreen = True
End With
Sheets.Add
With ActiveWindow
.DisplayGridlines = False: .DisplayHeadings = False
End With
With Cells
.ColumnWidth = 2: .RowHeight = 4
End With
Rows(4).RowHeight = 12
For i = 21 To 105 Step 14
Rows(i).RowHeight = 10
Next i
For i = 5 To 31 Step 4
Columns(i).ColumnWidth = 4
Next i
For i = 0 To 1: For j = 0 To 1
For k = 0 To 1: For l = 0 To 1
For m = 0 To 1: For n = 0 To 1
c = c + 1
col = (4 * c - 1) Mod 32
lig = 14 * Application.RoundUp(c / 8, 0) - 5
Cells(lig, col).Interior.ColorIndex = i
Cells(lig + 2, col).Interior.ColorIndex = j
Cells(lig + 4, col).Interior.ColorIndex = k
Cells(lig + 6, col).Interior.ColorIndex = l
Cells(lig + 8, col).Interior.ColorIndex = m
Cells(lig + 10, col).Interior.ColorIndex = n
For p = 0 To 10 Step 2
Cells(lig + p, col - 1).Interior.ColorIndex = 1
Cells(lig + p, col + 1).Interior.ColorIndex = 1
Next p
Next: Next: Next: Next: Next: Next
End Sub
A+
Serge
"LSteph" a écrit dans le message de news:
Bonjour,
Pour la protection j'ai vu que c'était gèré avant après, je n'ai
volontairement donc donné d'indication (à adapter) que sur la question
posée sur les lignes
et dont tu as bien relevé le souci ..donc cela peut se règler selon
les 5 petites lignes indiquées.
Mais puisque cette question est abordée on peut rendre plus pratique
l'usage des macros en sévitant déprotection reprotection au sein de
chacune
il suffit d'envisager la protection dans le Workbook_open
en mettant userinterfaceonly à true
exemple ici pour toutes les feuilles:
'dans le thisworkbook du classeur
Private Sub Workbook_open()
Dim sh as worksheet
For each sh in thisworkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub
'pour tester fermer et rouvrir le classeur
'lSteph
On 10 juil, 10:21, Gloops wrote:
> Bonjour,
> Comme ça au premier coup d'œil, la seule erreur que je voie est que la
> protection est retirée deux fois, une fois au début et une fois à la
> fin. Pas moyen d'essayer avec une pause juste avant pour vérifier où se
> produit l'erreur ?
> A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> note discrètement LSteph, puisque si on traite chaque cellule de la
> plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne est
> traitée cent quatre fois. Au bout d'une fois ou deux, si la correction
> n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> ____________________________________________
> alain Lebayle a écrit, le 10/07/2009 09:06 :
> > Bonjour,
> > J'ai cette procédure qui fait planter le programme.
> > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > Merci
> > Alain
> > Sub Les_lignes()
> > Application.ScreenUpdating = False
> > Sheets("Travail").Unprotect Password:="toto"
> > Set plage = Range("A3:AD2000")
> > For Each C In plage
> > C.EntireRow.AutoFit
> > If C.RowHeight > 42.75 Then
> > Else
> > C.RowHeight = 42.75
> > End If
> > Next
> > Sheets("Travail").Unprotect Password:="toto"
> > Application.ScreenUpdating = True
> > End Sub- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des
> messages précédents -
- Afficher le texte des messages précédents -
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Ave Stéphane,
Là j'ai besoin de tes lumières.
Si j'utilise cette instruction :
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Si c'est le cas, comment se fait-il que je ne peux
pas pas sélectionner une forme automatique par macro ?
Petite remarque :
Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
les noms des paramètres de la méthode sont écrits exclusivement en
français,
ce qui n'est guère pratique quand on veut les utiliser dans une macro !
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
anciens
documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()
Dim i%, j%, k%, l%, m%, n%
Dim c%, col%, lig%, p%
With Application
.ScreenUpdating = False: .DisplayFullScreen = True
End With
Sheets.Add
With ActiveWindow
.DisplayGridlines = False: .DisplayHeadings = False
End With
With Cells
.ColumnWidth = 2: .RowHeight = 4
End With
Rows(4).RowHeight = 12
For i = 21 To 105 Step 14
Rows(i).RowHeight = 10
Next i
For i = 5 To 31 Step 4
Columns(i).ColumnWidth = 4
Next i
For i = 0 To 1: For j = 0 To 1
For k = 0 To 1: For l = 0 To 1
For m = 0 To 1: For n = 0 To 1
c = c + 1
col = (4 * c - 1) Mod 32
lig = 14 * Application.RoundUp(c / 8, 0) - 5
Cells(lig, col).Interior.ColorIndex = i
Cells(lig + 2, col).Interior.ColorIndex = j
Cells(lig + 4, col).Interior.ColorIndex = k
Cells(lig + 6, col).Interior.ColorIndex = l
Cells(lig + 8, col).Interior.ColorIndex = m
Cells(lig + 10, col).Interior.ColorIndex = n
For p = 0 To 10 Step 2
Cells(lig + p, col - 1).Interior.ColorIndex = 1
Cells(lig + p, col + 1).Interior.ColorIndex = 1
Next p
Next: Next: Next: Next: Next: Next
End Sub
A+
Serge
"LSteph" <gmlst...@gmail.com> a écrit dans le message de news:
552b71c9-60b5-42b7-93a0-f3d518720...@a36g2000yqc.googlegroups.com...
Bonjour,
Pour la protection j'ai vu que c'était gèré avant après, je n'ai
volontairement donc donné d'indication (à adapter) que sur la question
posée sur les lignes
et dont tu as bien relevé le souci ..donc cela peut se règler selon
les 5 petites lignes indiquées.
Mais puisque cette question est abordée on peut rendre plus pratique
l'usage des macros en sévitant déprotection reprotection au sein de
chacune
il suffit d'envisager la protection dans le Workbook_open
en mettant userinterfaceonly à true
exemple ici pour toutes les feuilles:
'dans le thisworkbook du classeur
Private Sub Workbook_open()
Dim sh as worksheet
For each sh in thisworkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub
'pour tester fermer et rouvrir le classeur
'lSteph
On 10 juil, 10:21, Gloops <glo...@invalid.zailes.org> wrote:
> Bonjour,
> Comme ça au premier coup d'œil, la seule erreur que je voie est que la
> protection est retirée deux fois, une fois au début et une fois à la
> fin. Pas moyen d'essayer avec une pause juste avant pour vérifier où se
> produit l'erreur ?
> A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> note discrètement LSteph, puisque si on traite chaque cellule de la
> plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne est
> traitée cent quatre fois. Au bout d'une fois ou deux, si la correction
> n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> ____________________________________________
> alain Lebayle a écrit, le 10/07/2009 09:06 :
> > Bonjour,
> > J'ai cette procédure qui fait planter le programme.
> > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > Merci
> > Alain
> > Sub Les_lignes()
> > Application.ScreenUpdating = False
> > Sheets("Travail").Unprotect Password:="toto"
> > Set plage = Range("A3:AD2000")
> > For Each C In plage
> > C.EntireRow.AutoFit
> > If C.RowHeight > 42.75 Then
> > Else
> > C.RowHeight = 42.75
> > End If
> > Next
> > Sheets("Travail").Unprotect Password:="toto"
> > Application.ScreenUpdating = True
> > End Sub- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des
> messages précédents -
- Afficher le texte des messages précédents -
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Ave Stéphane,
Là j'ai besoin de tes lumières.
Si j'utilise cette instruction :
ActiveSheet.Protect , userinterfaceonly:=True
la feuille active est protégée mais peut être
modifiée par macro. Est-ce bien cela ?
Si c'est le cas, comment se fait-il que je ne peux
pas pas sélectionner une forme automatique par macro ?
Petite remarque :
Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
les noms des paramètres de la méthode sont écrits exclusivement en
français,
ce qui n'est guère pratique quand on veut les utiliser dans une macro !
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
anciens
documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()
Dim i%, j%, k%, l%, m%, n%
Dim c%, col%, lig%, p%
With Application
.ScreenUpdating = False: .DisplayFullScreen = True
End With
Sheets.Add
With ActiveWindow
.DisplayGridlines = False: .DisplayHeadings = False
End With
With Cells
.ColumnWidth = 2: .RowHeight = 4
End With
Rows(4).RowHeight = 12
For i = 21 To 105 Step 14
Rows(i).RowHeight = 10
Next i
For i = 5 To 31 Step 4
Columns(i).ColumnWidth = 4
Next i
For i = 0 To 1: For j = 0 To 1
For k = 0 To 1: For l = 0 To 1
For m = 0 To 1: For n = 0 To 1
c = c + 1
col = (4 * c - 1) Mod 32
lig = 14 * Application.RoundUp(c / 8, 0) - 5
Cells(lig, col).Interior.ColorIndex = i
Cells(lig + 2, col).Interior.ColorIndex = j
Cells(lig + 4, col).Interior.ColorIndex = k
Cells(lig + 6, col).Interior.ColorIndex = l
Cells(lig + 8, col).Interior.ColorIndex = m
Cells(lig + 10, col).Interior.ColorIndex = n
For p = 0 To 10 Step 2
Cells(lig + p, col - 1).Interior.ColorIndex = 1
Cells(lig + p, col + 1).Interior.ColorIndex = 1
Next p
Next: Next: Next: Next: Next: Next
End Sub
A+
Serge
"LSteph" a écrit dans le message de news:
Bonjour,
Pour la protection j'ai vu que c'était gèré avant après, je n'ai
volontairement donc donné d'indication (à adapter) que sur la question
posée sur les lignes
et dont tu as bien relevé le souci ..donc cela peut se règler selon
les 5 petites lignes indiquées.
Mais puisque cette question est abordée on peut rendre plus pratique
l'usage des macros en sévitant déprotection reprotection au sein de
chacune
il suffit d'envisager la protection dans le Workbook_open
en mettant userinterfaceonly à true
exemple ici pour toutes les feuilles:
'dans le thisworkbook du classeur
Private Sub Workbook_open()
Dim sh as worksheet
For each sh in thisworkbook
sh.protect password:="toto", userinterfaceonly:=true
next
end sub
'pour tester fermer et rouvrir le classeur
'lSteph
On 10 juil, 10:21, Gloops wrote:
> Bonjour,
> Comme ça au premier coup d'œil, la seule erreur que je voie est que la
> protection est retirée deux fois, une fois au début et une fois à la
> fin. Pas moyen d'essayer avec une pause juste avant pour vérifier où se
> produit l'erreur ?
> A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> note discrètement LSteph, puisque si on traite chaque cellule de la
> plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne est
> traitée cent quatre fois. Au bout d'une fois ou deux, si la correction
> n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> ____________________________________________
> alain Lebayle a écrit, le 10/07/2009 09:06 :
> > Bonjour,
> > J'ai cette procédure qui fait planter le programme.
> > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > Merci
> > Alain
> > Sub Les_lignes()
> > Application.ScreenUpdating = False
> > Sheets("Travail").Unprotect Password:="toto"
> > Set plage = Range("A3:AD2000")
> > For Each C In plage
> > C.EntireRow.AutoFit
> > If C.RowHeight > 42.75 Then
> > Else
> > C.RowHeight = 42.75
> > End If
> > Next
> > Sheets("Travail").Unprotect Password:="toto"
> > Application.ScreenUpdating = True
> > End Sub- Masquer le texte des messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des
> messages précédents -
- Afficher le texte des messages précédents -
En utilisant l'une ou l'autre de ces *******.Select
je reçois le même message :
"Les formes demandées sont verrouillées pour la sélection."
Sub Marche_Pas()
ActiveSheet.Protect , userinterfaceonly:=True
Feuil1.Shapes(1).Select
'Feuil1.Shapes("rectangle").Select
'ActiveSheet.Shapes(1).Select
'ActiveSheet.Shapes("rectangle").Select
'Sheets("Feuil1").Shapes("rectangle").Select
'Sheets("Feuil1").Shapes(1).Select
End Sub
Serge
"LSteph" a écrit dans le message de news:
Bonjour Serge,> ActiveSheet.Protect , userinterfaceonly:=True
> la feuille active est protégée mais peut être
> modifiée par macro. Est-ce bien cela ?
Oui!
et
dans ce contexte, j'ai ceci qui marche:
Sub monSHap()
Feuil1.Shapes(1).Select
End Sub
Pour le nouveau truc qui remplace excel depuis 2007 je ne puis te
dire!
@+
'lSteph
On 10 juil, 13:15, "garnote" wrote:
> Ave Stéphane,
> Là j'ai besoin de tes lumières.
> Si j'utilise cette instruction :
> ActiveSheet.Protect , userinterfaceonly:=True
> la feuille active est protégée mais peut être
> modifiée par macro. Est-ce bien cela ?
> Si c'est le cas, comment se fait-il que je ne peux
> pas pas sélectionner une forme automatique par macro ?
> Petite remarque :
> Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
> les noms des paramètres de la méthode sont écrits exclusivement e n
> français,
> ce qui n'est guère pratique quand on veut les utiliser dans une macro !
> Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
> anciens
> documents, mias peut-être l'ai déjà publiée.
> Sub Yi_King()
> Dim i%, j%, k%, l%, m%, n%
> Dim c%, col%, lig%, p%
> With Application
> .ScreenUpdating = False: .DisplayFullScreen = True
> End With
> Sheets.Add
> With ActiveWindow
> .DisplayGridlines = False: .DisplayHeadings = False
> End With
> With Cells
> .ColumnWidth = 2: .RowHeight = 4
> End With
> Rows(4).RowHeight = 12
> For i = 21 To 105 Step 14
> Rows(i).RowHeight = 10
> Next i
> For i = 5 To 31 Step 4
> Columns(i).ColumnWidth = 4
> Next i
> For i = 0 To 1: For j = 0 To 1
> For k = 0 To 1: For l = 0 To 1
> For m = 0 To 1: For n = 0 To 1
> c = c + 1
> col = (4 * c - 1) Mod 32
> lig = 14 * Application.RoundUp(c / 8, 0) - 5
> Cells(lig, col).Interior.ColorIndex = i
> Cells(lig + 2, col).Interior.ColorIndex = j
> Cells(lig + 4, col).Interior.ColorIndex = k
> Cells(lig + 6, col).Interior.ColorIndex = l
> Cells(lig + 8, col).Interior.ColorIndex = m
> Cells(lig + 10, col).Interior.ColorIndex = n
> For p = 0 To 10 Step 2
> Cells(lig + p, col - 1).Interior.ColorIndex = 1
> Cells(lig + p, col + 1).Interior.ColorIndex = 1
> Next p
> Next: Next: Next: Next: Next: Next
> End Sub
> A+
> Serge
> "LSteph" a écrit dans le message de news:
>
> Bonjour,
> Pour la protection j'ai vu que c'était gèré avant après, je n'a i
> volontairement donc donné d'indication (à adapter) que sur la quest ion
> posée sur les lignes
> et dont tu as bien relevé le souci ..donc cela peut se règler selon
> les 5 petites lignes indiquées.
> Mais puisque cette question est abordée on peut rendre plus pratique
> l'usage des macros en sévitant déprotection reprotection au sein de
> chacune
> il suffit d'envisager la protection dans le Workbook_open
> en mettant userinterfaceonly à true
> exemple ici pour toutes les feuilles:
> 'dans le thisworkbook du classeur
> Private Sub Workbook_open()
> Dim sh as worksheet
> For each sh in thisworkbook
> sh.protect password:="toto", userinterfaceonly:=true
> next
> end sub
> 'pour tester fermer et rouvrir le classeur
> 'lSteph
> On 10 juil, 10:21, Gloops wrote:
> > Bonjour,
> > Comme ça au premier coup d'il, la seule erreur que je voie est q ue la
> > protection est retirée deux fois, une fois au début et une fois à la
> > fin. Pas moyen d'essayer avec une pause juste avant pour vérifier o ù se
> > produit l'erreur ?
> > A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> > note discrètement LSteph, puisque si on traite chaque cellule de la
> > plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne e st
> > traitée cent quatre fois. Au bout d'une fois ou deux, si la correct ion
> > n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> > ____________________________________________
> > alain Lebayle a écrit, le 10/07/2009 09:06 :
> > > Bonjour,
> > > J'ai cette procédure qui fait planter le programme.
> > > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > > Merci
> > > Alain
> > > Sub Les_lignes()
> > > Application.ScreenUpdating = False
> > > Sheets("Travail").Unprotect Password:="toto"
> > > Set plage = Range("A3:AD2000")
> > > For Each C In plage
> > > C.EntireRow.AutoFit
> > > If C.RowHeight > 42.75 Then
> > > Else
> > > C.RowHeight = 42.75
> > > End If
> > > Next
> > > Sheets("Travail").Unprotect Password:="toto"
> > > Application.ScreenUpdating = True
> > > End Sub- Masquer le texte des messages précédents -
> > - Afficher le texte des messages précédents -- Masquer le texte d es
> > messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
En utilisant l'une ou l'autre de ces *******.Select
je reçois le même message :
"Les formes demandées sont verrouillées pour la sélection."
Sub Marche_Pas()
ActiveSheet.Protect , userinterfaceonly:=True
Feuil1.Shapes(1).Select
'Feuil1.Shapes("rectangle").Select
'ActiveSheet.Shapes(1).Select
'ActiveSheet.Shapes("rectangle").Select
'Sheets("Feuil1").Shapes("rectangle").Select
'Sheets("Feuil1").Shapes(1).Select
End Sub
Serge
"LSteph" <gmlst...@gmail.com> a écrit dans le message de news:
acbf8743-7d17-41d2-979a-261b216c8...@c2g2000yqi.googlegroups.com...
Bonjour Serge,> ActiveSheet.Protect , userinterfaceonly:=True
> la feuille active est protégée mais peut être
> modifiée par macro. Est-ce bien cela ?
Oui!
et
dans ce contexte, j'ai ceci qui marche:
Sub monSHap()
Feuil1.Shapes(1).Select
End Sub
Pour le nouveau truc qui remplace excel depuis 2007 je ne puis te
dire!
@+
'lSteph
On 10 juil, 13:15, "garnote" <garno...@videotron.ca> wrote:
> Ave Stéphane,
> Là j'ai besoin de tes lumières.
> Si j'utilise cette instruction :
> ActiveSheet.Protect , userinterfaceonly:=True
> la feuille active est protégée mais peut être
> modifiée par macro. Est-ce bien cela ?
> Si c'est le cas, comment se fait-il que je ne peux
> pas pas sélectionner une forme automatique par macro ?
> Petite remarque :
> Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
> les noms des paramètres de la méthode sont écrits exclusivement e n
> français,
> ce qui n'est guère pratique quand on veut les utiliser dans une macro !
> Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
> anciens
> documents, mias peut-être l'ai déjà publiée.
> Sub Yi_King()
> Dim i%, j%, k%, l%, m%, n%
> Dim c%, col%, lig%, p%
> With Application
> .ScreenUpdating = False: .DisplayFullScreen = True
> End With
> Sheets.Add
> With ActiveWindow
> .DisplayGridlines = False: .DisplayHeadings = False
> End With
> With Cells
> .ColumnWidth = 2: .RowHeight = 4
> End With
> Rows(4).RowHeight = 12
> For i = 21 To 105 Step 14
> Rows(i).RowHeight = 10
> Next i
> For i = 5 To 31 Step 4
> Columns(i).ColumnWidth = 4
> Next i
> For i = 0 To 1: For j = 0 To 1
> For k = 0 To 1: For l = 0 To 1
> For m = 0 To 1: For n = 0 To 1
> c = c + 1
> col = (4 * c - 1) Mod 32
> lig = 14 * Application.RoundUp(c / 8, 0) - 5
> Cells(lig, col).Interior.ColorIndex = i
> Cells(lig + 2, col).Interior.ColorIndex = j
> Cells(lig + 4, col).Interior.ColorIndex = k
> Cells(lig + 6, col).Interior.ColorIndex = l
> Cells(lig + 8, col).Interior.ColorIndex = m
> Cells(lig + 10, col).Interior.ColorIndex = n
> For p = 0 To 10 Step 2
> Cells(lig + p, col - 1).Interior.ColorIndex = 1
> Cells(lig + p, col + 1).Interior.ColorIndex = 1
> Next p
> Next: Next: Next: Next: Next: Next
> End Sub
> A+
> Serge
> "LSteph" <gmlst...@gmail.com> a écrit dans le message de news:
> 552b71c9-60b5-42b7-93a0-f3d518720...@a36g2000yqc.googlegroups.com...
> Bonjour,
> Pour la protection j'ai vu que c'était gèré avant après, je n'a i
> volontairement donc donné d'indication (à adapter) que sur la quest ion
> posée sur les lignes
> et dont tu as bien relevé le souci ..donc cela peut se règler selon
> les 5 petites lignes indiquées.
> Mais puisque cette question est abordée on peut rendre plus pratique
> l'usage des macros en sévitant déprotection reprotection au sein de
> chacune
> il suffit d'envisager la protection dans le Workbook_open
> en mettant userinterfaceonly à true
> exemple ici pour toutes les feuilles:
> 'dans le thisworkbook du classeur
> Private Sub Workbook_open()
> Dim sh as worksheet
> For each sh in thisworkbook
> sh.protect password:="toto", userinterfaceonly:=true
> next
> end sub
> 'pour tester fermer et rouvrir le classeur
> 'lSteph
> On 10 juil, 10:21, Gloops <glo...@invalid.zailes.org> wrote:
> > Bonjour,
> > Comme ça au premier coup d'il, la seule erreur que je voie est q ue la
> > protection est retirée deux fois, une fois au début et une fois à la
> > fin. Pas moyen d'essayer avec une pause juste avant pour vérifier o ù se
> > produit l'erreur ?
> > A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> > note discrètement LSteph, puisque si on traite chaque cellule de la
> > plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne e st
> > traitée cent quatre fois. Au bout d'une fois ou deux, si la correct ion
> > n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> > ____________________________________________
> > alain Lebayle a écrit, le 10/07/2009 09:06 :
> > > Bonjour,
> > > J'ai cette procédure qui fait planter le programme.
> > > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > > Merci
> > > Alain
> > > Sub Les_lignes()
> > > Application.ScreenUpdating = False
> > > Sheets("Travail").Unprotect Password:="toto"
> > > Set plage = Range("A3:AD2000")
> > > For Each C In plage
> > > C.EntireRow.AutoFit
> > > If C.RowHeight > 42.75 Then
> > > Else
> > > C.RowHeight = 42.75
> > > End If
> > > Next
> > > Sheets("Travail").Unprotect Password:="toto"
> > > Application.ScreenUpdating = True
> > > End Sub- Masquer le texte des messages précédents -
> > - Afficher le texte des messages précédents -- Masquer le texte d es
> > messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
En utilisant l'une ou l'autre de ces *******.Select
je reçois le même message :
"Les formes demandées sont verrouillées pour la sélection."
Sub Marche_Pas()
ActiveSheet.Protect , userinterfaceonly:=True
Feuil1.Shapes(1).Select
'Feuil1.Shapes("rectangle").Select
'ActiveSheet.Shapes(1).Select
'ActiveSheet.Shapes("rectangle").Select
'Sheets("Feuil1").Shapes("rectangle").Select
'Sheets("Feuil1").Shapes(1).Select
End Sub
Serge
"LSteph" a écrit dans le message de news:
Bonjour Serge,> ActiveSheet.Protect , userinterfaceonly:=True
> la feuille active est protégée mais peut être
> modifiée par macro. Est-ce bien cela ?
Oui!
et
dans ce contexte, j'ai ceci qui marche:
Sub monSHap()
Feuil1.Shapes(1).Select
End Sub
Pour le nouveau truc qui remplace excel depuis 2007 je ne puis te
dire!
@+
'lSteph
On 10 juil, 13:15, "garnote" wrote:
> Ave Stéphane,
> Là j'ai besoin de tes lumières.
> Si j'utilise cette instruction :
> ActiveSheet.Protect , userinterfaceonly:=True
> la feuille active est protégée mais peut être
> modifiée par macro. Est-ce bien cela ?
> Si c'est le cas, comment se fait-il que je ne peux
> pas pas sélectionner une forme automatique par macro ?
> Petite remarque :
> Quand je vais dans l'aide 2007 pour la méthode WorkSheet.Protect,
> les noms des paramètres de la méthode sont écrits exclusivement e n
> français,
> ce qui n'est guère pratique quand on veut les utiliser dans une macro !
> Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
> anciens
> documents, mias peut-être l'ai déjà publiée.
> Sub Yi_King()
> Dim i%, j%, k%, l%, m%, n%
> Dim c%, col%, lig%, p%
> With Application
> .ScreenUpdating = False: .DisplayFullScreen = True
> End With
> Sheets.Add
> With ActiveWindow
> .DisplayGridlines = False: .DisplayHeadings = False
> End With
> With Cells
> .ColumnWidth = 2: .RowHeight = 4
> End With
> Rows(4).RowHeight = 12
> For i = 21 To 105 Step 14
> Rows(i).RowHeight = 10
> Next i
> For i = 5 To 31 Step 4
> Columns(i).ColumnWidth = 4
> Next i
> For i = 0 To 1: For j = 0 To 1
> For k = 0 To 1: For l = 0 To 1
> For m = 0 To 1: For n = 0 To 1
> c = c + 1
> col = (4 * c - 1) Mod 32
> lig = 14 * Application.RoundUp(c / 8, 0) - 5
> Cells(lig, col).Interior.ColorIndex = i
> Cells(lig + 2, col).Interior.ColorIndex = j
> Cells(lig + 4, col).Interior.ColorIndex = k
> Cells(lig + 6, col).Interior.ColorIndex = l
> Cells(lig + 8, col).Interior.ColorIndex = m
> Cells(lig + 10, col).Interior.ColorIndex = n
> For p = 0 To 10 Step 2
> Cells(lig + p, col - 1).Interior.ColorIndex = 1
> Cells(lig + p, col + 1).Interior.ColorIndex = 1
> Next p
> Next: Next: Next: Next: Next: Next
> End Sub
> A+
> Serge
> "LSteph" a écrit dans le message de news:
>
> Bonjour,
> Pour la protection j'ai vu que c'était gèré avant après, je n'a i
> volontairement donc donné d'indication (à adapter) que sur la quest ion
> posée sur les lignes
> et dont tu as bien relevé le souci ..donc cela peut se règler selon
> les 5 petites lignes indiquées.
> Mais puisque cette question est abordée on peut rendre plus pratique
> l'usage des macros en sévitant déprotection reprotection au sein de
> chacune
> il suffit d'envisager la protection dans le Workbook_open
> en mettant userinterfaceonly à true
> exemple ici pour toutes les feuilles:
> 'dans le thisworkbook du classeur
> Private Sub Workbook_open()
> Dim sh as worksheet
> For each sh in thisworkbook
> sh.protect password:="toto", userinterfaceonly:=true
> next
> end sub
> 'pour tester fermer et rouvrir le classeur
> 'lSteph
> On 10 juil, 10:21, Gloops wrote:
> > Bonjour,
> > Comme ça au premier coup d'il, la seule erreur que je voie est q ue la
> > protection est retirée deux fois, une fois au début et une fois à la
> > fin. Pas moyen d'essayer avec une pause juste avant pour vérifier o ù se
> > produit l'erreur ?
> > A part ça il devrait y avoir moyen effectivement d'optimiser comme le
> > note discrètement LSteph, puisque si on traite chaque cellule de la
> > plage A3:AD2000 pour rectifier la hauteur de la ligne, chaque ligne e st
> > traitée cent quatre fois. Au bout d'une fois ou deux, si la correct ion
> > n'est pas faite, c'est qu'il y a un truc qui coince, non ?
> > ____________________________________________
> > alain Lebayle a écrit, le 10/07/2009 09:06 :
> > > Bonjour,
> > > J'ai cette procédure qui fait planter le programme.
> > > Je vous remercie de me donner un coup de main, je ne vois pas le pb
> > > Merci
> > > Alain
> > > Sub Les_lignes()
> > > Application.ScreenUpdating = False
> > > Sheets("Travail").Unprotect Password:="toto"
> > > Set plage = Range("A3:AD2000")
> > > For Each C In plage
> > > C.EntireRow.AutoFit
> > > If C.RowHeight > 42.75 Then
> > > Else
> > > C.RowHeight = 42.75
> > > End If
> > > Next
> > > Sheets("Travail").Unprotect Password:="toto"
> > > Application.ScreenUpdating = True
> > > End Sub- Masquer le texte des messages précédents -
> > - Afficher le texte des messages précédents -- Masquer le texte d es
> > messages précédents -
> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
anciens documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
anciens documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()
Et une tite macro qui ne sert à rien. Viens de la retrouver dans mes
anciens documents, mias peut-être l'ai déjà publiée.
Sub Yi_King()