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

Toutes les lignes à la même taille

14 réponses
Avatar
alain Lebayle
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

--

4 réponses

1 2
Avatar
LSteph
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 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 -


Avatar
garnote
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 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 -


Avatar
LSteph
La protection par userinterfaceonly, comme indiqué, doit
obligatoirement passer
le Workbook_Open()


Essaye!

@+

lSteph



On 10 juil, 14:56, "garnote" wrote:
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 -


Avatar
Modeste
Bonsour® garnote avec ferveur ;o))) vous nous disiez :

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()



pour aller plus loin, y trouver une utilité et rester zen...
peut-etre y trouver la sérénité
;o)))
http://www.scribd.com/doc/352524/YI-JING-v-5
;o)))
voir page 209 et 210
1 2