OVH Cloud OVH Cloud

Aller à la prochaine ligne vide

11 réponses
Avatar
Caroline L.
Bonjour à tous !

J'ai 2 questions, l'une portant sur le fonctionnement de ce groupe
discussion et l'autre sur Excel.

1- J'ai écrit le 31 mars et je ne vois déjà plus mon message (et vos
précieuses réponses) alors qu'il y a encore des messages listés le 31, le
30, le 25 mars. Pourquoi mon message n'apparaît plus ?

2- Question sur Excel : J'ai 5 colonnes dans mon tableau avec des données.
Je veux Copier une ligne d'un autre onglet (juste les valeurs, copiage
spécial) mais que les données s'inscrivent à la suite, en dessous, c'est à
dire sur la prochaine ligne vide.
Quelle serait la fonction ou la formule ?
----------------------------------------------------------------------------
---------------------

En terminant, puis-je vous relancer mon message du 31 mars (car je suis
encore dans l'ignorance).
J'ai 14 fichiers avec mots de passe sur chacun. Un 15e
fichier est un résumé de ces 14 fichiers (avec liaison). Ce 15e fichier a
également un mot de passe. Tout fonctionne MAIS lorsque j'ouvre le 15e
fichier il me demande de confirmer les 14 mots de passe (ouf...) et en plus
lorsque je fais une erreur en entrant un mot de passe, Excel ne m'offre pas
le choix de retaper le bon mot de passe. Donc, je dois fermer ce 15e fichier
et le ré-ouvrir en recommançant d'entrer un à un les 14 mots de passe
(sinon, les modifications apportées à l'un des 14 fichiers ne se
retrouveront pas dans mon résumé, soit le 15e fichier).
----------------------------------------------------------------------------
Après un conseil de l'un d'entre vous me suggérant d'appliquer une macro qui
enregistre les 14 mots de passe, j'ai répondu :

En ouvrant le 15e fichier, je fais Non lorsqu'Excel me demande de mettre à
jour les liaisons. Ensuite j'ai enregistré ma macro : Edition, Liaisons,
mettre à jour (là j'ai entré les 14 mots de passe). J'ai fait des tests mais
lorsque j'active la macro, Excel me demande encore les mots de passe.

En passant, je ne veux pas ouvrir les 14 fichiers. Je veux seulement ouvrir
le 15e fichier sur lequel se résume l'information des 14 autres fichiers.


Merci à l'avance.

10 réponses

1 2
Avatar
Boursicot
Bonjour,

Une partie des réponses à tes questions

voilà un morceau de macro qui colle ta selection i3:m3 en fin d'une liste
commencant en a2 mais qui est explorée suivant la colonne b la colonne a
pouvant avoir des vides.
Tu n'as qu'à adapter .


Range("I3:m3").Select
Selection.Copy
Range("b2").Select
'copie en fin de liste

Selection.End(xlDown).Offset(1, 0).Range("a1:e1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Cordialement.

"Caroline L." a écrit dans le message de
news:u0Fbc.91658$
Bonjour à tous !

J'ai 2 questions, l'une portant sur le fonctionnement de ce groupe
discussion et l'autre sur Excel.

1- J'ai écrit le 31 mars et je ne vois déjà plus mon message (et vos
précieuses réponses) alors qu'il y a encore des messages listés le 31, le
30, le 25 mars. Pourquoi mon message n'apparaît plus ?

2- Question sur Excel : J'ai 5 colonnes dans mon tableau avec des données.
Je veux Copier une ligne d'un autre onglet (juste les valeurs, copiage
spécial) mais que les données s'inscrivent à la suite, en dessous, c'est à
dire sur la prochaine ligne vide.
Quelle serait la fonction ou la formule ?
--------------------------------------------------------------------------
--

---------------------

En terminant, puis-je vous relancer mon message du 31 mars (car je suis
encore dans l'ignorance).
J'ai 14 fichiers avec mots de passe sur chacun. Un 15e
fichier est un résumé de ces 14 fichiers (avec liaison). Ce 15e fichier a
également un mot de passe. Tout fonctionne MAIS lorsque j'ouvre le 15e
fichier il me demande de confirmer les 14 mots de passe (ouf...) et en
plus

lorsque je fais une erreur en entrant un mot de passe, Excel ne m'offre
pas

le choix de retaper le bon mot de passe. Donc, je dois fermer ce 15e
fichier

et le ré-ouvrir en recommançant d'entrer un à un les 14 mots de passe
(sinon, les modifications apportées à l'un des 14 fichiers ne se
retrouveront pas dans mon résumé, soit le 15e fichier).
--------------------------------------------------------------------------
--

Après un conseil de l'un d'entre vous me suggérant d'appliquer une macro
qui

enregistre les 14 mots de passe, j'ai répondu :

En ouvrant le 15e fichier, je fais Non lorsqu'Excel me demande de mettre à
jour les liaisons. Ensuite j'ai enregistré ma macro : Edition, Liaisons,
mettre à jour (là j'ai entré les 14 mots de passe). J'ai fait des tests
mais

lorsque j'active la macro, Excel me demande encore les mots de passe.

En passant, je ne veux pas ouvrir les 14 fichiers. Je veux seulement
ouvrir

le 15e fichier sur lequel se résume l'information des 14 autres fichiers.


Merci à l'avance.




Avatar
FxM
Bonsoir Caroline L.,

J'ai 2 questions, l'une portant sur le fonctionnement de ce groupe
discussion et l'autre sur Excel.

1- J'ai écrit le 31 mars et je ne vois déjà plus mon message (et vos
précieuses réponses) alors qu'il y a encore des messages listés le 31, le
30, le 25 mars. Pourquoi mon message n'apparaît plus ?


Ton message du 31/03/04 19:34 (heure française) apparaît toujours sur
le serveur de news de microsoft. Les détails sur la page connexion
d'Excelabo :
http://www.excelabo.net/mpfe/connection.htm
Un lien via Google :
http://www.google.fr/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadmÌYac.15654%24%25h4.162900%40wagner.videotron.net&rnum=1&prev=/groups%3Fie%3DUTF-8%26oe%3DUTF-8%26as_ugroup%3Dmicrosoft.public.fr.excel%26as_uauthors%3DCaroline%2520L.%26as_scoring%3Dd%26lr%3D%26num%3D100%26hl%3Dfr


2- Question sur Excel : J'ai 5 colonnes dans mon tableau avec des données.
Je veux Copier une ligne d'un autre onglet (juste les valeurs, copiage
spécial) mais que les données s'inscrivent à la suite, en dessous, c'est à
dire sur la prochaine ligne vide.
Quelle serait la fonction ou la formule ?


Ca pourrait te donner quelque chose comme cela :
Sub Macro2()
Sheets("Feuil1").Range("A2:E2").Copy
With Sheets("Feuil2")
.Select
.Range("A65536").End(xlUp).Offset(1, 0).Select
End With
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
End Sub

--------------------------------------------------------------------------
<snip>

Ayant la flemme de tester sur 15 fichiers, je viens de faire l'essai
sur un fichier maître (maitre.xls) et un fichier esclave
(slave01.xls). Les deux sont protégés avec le même mot de passe,
enregistrés et fermés.
A l'ouverture de maitre, son mot de passe est demandé à l'ouverture
puis la demande de mise à jour.
Si réponse "non" -> maitre.xls est ouvert et rien d'autre.
Si réponse "oui" -> le mot de passe pour slave01.xls est demandé mais
n'est pas montré comme ouvert.

Je casserais les liaisons et mots de passe pour les restaurer après
m'être demandé s'ils sont vraiment nécessaires (et utilies vu qu'un
mdp est crackable en qq secondes).

Merci à l'avance.
Z'en prie


@+
FxM

Avatar
Caroline L.
Re-Bonjour !

Je vous remercie pour vos réponses mais malheureusement je ne comprends pas
vraiment. Je suis très débutante dans l'art des macros... lorsque je fais
une erreur dans l'enregistrement d'une macro, je l'a recommence, je ne lis
pas le Visual...

Donc, est-ce possible de me résumer vos explications en terme de menu dans
Excel.

Merci de nouveau.
Caroline



"Caroline L." a écrit dans le message de news:
u0Fbc.91658$
Bonjour à tous !

J'ai 2 questions, l'une portant sur le fonctionnement de ce groupe
discussion et l'autre sur Excel.

1- J'ai écrit le 31 mars et je ne vois déjà plus mon message (et vos
précieuses réponses) alors qu'il y a encore des messages listés le 31, le
30, le 25 mars. Pourquoi mon message n'apparaît plus ?

2- Question sur Excel : J'ai 5 colonnes dans mon tableau avec des données.
Je veux Copier une ligne d'un autre onglet (juste les valeurs, copiage
spécial) mais que les données s'inscrivent à la suite, en dessous, c'est à
dire sur la prochaine ligne vide.
Quelle serait la fonction ou la formule ?
--------------------------------------------------------------------------
--

---------------------

En terminant, puis-je vous relancer mon message du 31 mars (car je suis
encore dans l'ignorance).
J'ai 14 fichiers avec mots de passe sur chacun. Un 15e
fichier est un résumé de ces 14 fichiers (avec liaison). Ce 15e fichier a
également un mot de passe. Tout fonctionne MAIS lorsque j'ouvre le 15e
fichier il me demande de confirmer les 14 mots de passe (ouf...) et en
plus

lorsque je fais une erreur en entrant un mot de passe, Excel ne m'offre
pas

le choix de retaper le bon mot de passe. Donc, je dois fermer ce 15e
fichier

et le ré-ouvrir en recommançant d'entrer un à un les 14 mots de passe
(sinon, les modifications apportées à l'un des 14 fichiers ne se
retrouveront pas dans mon résumé, soit le 15e fichier).
--------------------------------------------------------------------------
--

Après un conseil de l'un d'entre vous me suggérant d'appliquer une macro
qui

enregistre les 14 mots de passe, j'ai répondu :

En ouvrant le 15e fichier, je fais Non lorsqu'Excel me demande de mettre à
jour les liaisons. Ensuite j'ai enregistré ma macro : Edition, Liaisons,
mettre à jour (là j'ai entré les 14 mots de passe). J'ai fait des tests
mais

lorsque j'active la macro, Excel me demande encore les mots de passe.

En passant, je ne veux pas ouvrir les 14 fichiers. Je veux seulement
ouvrir

le 15e fichier sur lequel se résume l'information des 14 autres fichiers.


Merci à l'avance.




Avatar
FxM
Bonjoir(c) Caroline (comme dit JièL),

Caroline L. wrote:
Re-Bonjour !

Je vous remercie pour vos réponses mais malheureusement je ne comprends pas
vraiment. Je suis très débutante dans l'art des macros... lorsque je fais
une erreur dans l'enregistrement d'une macro, je la recommence, je ne lis
pas le Visual...
Si tu causes un minimum angliche, ça devrait t'aider.

Si tu colles directement le code dans l'éditeur VBE, tu ne devrais pas
avoir de problème (sous réserve d'adapter les noms de feuilles, etc)
L'appel de VBE se fait par ALT-F11

Donc, est-ce possible de me résumer vos explications en terme de menu dans
Excel.
Il n'y a pas forcément de menus pour tout mais essayons :


Sub Macro2()
Sheets("Feuil1").Range("A2:E2").Copy
'- clic sur l'onglet "Feuil1"
'- sélection de A2:E2
'- menu edition | copier

With Sheets("Feuil2")
.Select
'- clic sur l'onglet "Feuil2"
.Range("A65536").End(xlUp).Offset(1, 0).Select
'- sélectionner A65536
'- CTRL-flèche haut
'- flèche bas
'en clair, Excel va en A65536, parcoure la colonne vers le haut jusqu'à
'trouver une première cellule remplie puis passe à la cellule en 'dessous.

End With
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
'- menu edition | collage special | cocher valeurs
End Sub


Merci de nouveau.
Caroline


@+
FxM

Avatar
caroland
Bonjour FxM,

Merci beaucoup... là j'ai tout compris et ça fonctionne. Merci d'avoir
pris le temps.

Peut-être peux-tu répondre à une autre de mes questions :
à partir d'une base de données je prépare des Sous-totaux (avec la
fonction
Somme) avec Insertion de saut de page (à chaque changement de...). Le
résultat s'étend sur une vingtaine de page. Je voudrais modifier la
mise en
forme de ces pages mais en une SEULE opération.
Sur chaque page je désire avoir le sous-total en gras avec une bordure
simple en haut et un double souligné au bas & insérer une ligne
blanche
avant la somme.

A+
Caroline



FxM wrote in message news:...
Bonjoir(c) Caroline (comme dit JièL),

Caroline L. wrote:
Re-Bonjour !

Je vous remercie pour vos réponses mais malheureusement je ne comprends pas
vraiment. Je suis très débutante dans l'art des macros... lorsque je fais
une erreur dans l'enregistrement d'une macro, je la recommence, je ne lis
pas le Visual...
Si tu causes un minimum angliche, ça devrait t'aider.

Si tu colles directement le code dans l'éditeur VBE, tu ne devrais pas
avoir de problème (sous réserve d'adapter les noms de feuilles, etc)
L'appel de VBE se fait par ALT-F11

Donc, est-ce possible de me résumer vos explications en terme de menu dans
Excel.
Il n'y a pas forcément de menus pour tout mais essayons :


Sub Macro2()
Sheets("Feuil1").Range("A2:E2").Copy
'- clic sur l'onglet "Feuil1"
'- sélection de A2:E2
'- menu edition | copier

With Sheets("Feuil2")
.Select
'- clic sur l'onglet "Feuil2"
.Range("A65536").End(xlUp).Offset(1, 0).Select
'- sélectionner A65536
'- CTRL-flèche haut
'- flèche bas
'en clair, Excel va en A65536, parcoure la colonne vers le haut jusqu'à
'trouver une première cellule remplie puis passe à la cellule en 'dessous.

End With
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
'- menu edition | collage special | cocher valeurs
End Sub


Merci de nouveau.
Caroline


@+
FxM



Avatar
sabatier
bonjour caroline
FxM me charge de te poser la question suivante :
as-tu de la terre glaise dans ton jardin?
parce que si tu en as, à ces moments perdus, françois-xavier pourra te
faire quelques briques...
jps

caroline a écrit:
Bonjour FxM,

Merci beaucoup... là j'ai tout compris et ça fonctionne. Merci d'avoir
pris le temps.

Peut-être peux-tu répondre à une autre de mes questions :
à partir d'une base de données je prépare des Sous-totaux (avec la
fonction
Somme) avec Insertion de saut de page (à chaque changement de...). Le
résultat s'étend sur une vingtaine de page. Je voudrais modifier la
mise en
forme de ces pages mais en une SEULE opération.
Sur chaque page je désire avoir le sous-total en gras avec une bordure
simple en haut et un double souligné au bas & insérer une ligne
blanche
avant la somme.

A+
Caroline



FxM wrote in message news:...

Bonjoir(c) Caroline (comme dit JièL),

Caroline L. wrote:

Re-Bonjour !

Je vous remercie pour vos réponses mais malheureusement je ne comprends pas
vraiment. Je suis très débutante dans l'art des macros... lorsque je fais
une erreur dans l'enregistrement d'une macro, je la recommence, je ne lis
pas le Visual...


Si tu causes un minimum angliche, ça devrait t'aider.
Si tu colles directement le code dans l'éditeur VBE, tu ne devrais pas
avoir de problème (sous réserve d'adapter les noms de feuilles, etc)
L'appel de VBE se fait par ALT-F11


Donc, est-ce possible de me résumer vos explications en terme de menu dans
Excel.


Il n'y a pas forcément de menus pour tout mais essayons :

Sub Macro2()
Sheets("Feuil1").Range("A2:E2").Copy
'- clic sur l'onglet "Feuil1"
'- sélection de A2:E2
'- menu edition | copier

With Sheets("Feuil2")
.Select
'- clic sur l'onglet "Feuil2"
.Range("A65536").End(xlUp).Offset(1, 0).Select
'- sélectionner A65536
'- CTRL-flèche haut
'- flèche bas
'en clair, Excel va en A65536, parcoure la colonne vers le haut jusqu'à
'trouver une première cellule remplie puis passe à la cellule en 'dessous.

End With
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
'- menu edition | collage special | cocher valeurs
End Sub



Merci de nouveau.
Caroline


@+
FxM






Avatar
FxM
Bonsoir Caroline,

N'écoute pas le coté langue de vipère de JPS (m^me s'il y a des fois où...).

Le traitement en une fois ... hum ! De même que pour l'insertion de
ligne qui décale systématiquement tout ce qui aurait pu être déterminé.
Mon neurone en surchauffe m'a mené à des choses comme ce qui suit :

Sélectionne la colonne où tu souhaites mettre ton calcul (et donc les
bordures) puis lance la macro.

Sub test()
Dim col As String, h
Dim a As Integer, r As Long, c As Long, rg As Range

On Error Resume Next
With ActiveSheet
'détermine la colonne où est la sélection (sous forme de texte)
col = Left$(Selection.Address(0, 0), (Selection.Column < 27) + 2)
'h = nombre de sauts de page verticaux
Set h = .Cells.Worksheet.HPageBreaks
For a = 1 To h.Count
'r=ligne du saut de page, c = colonne du saut
r = h(a).Location.Row: c = h(a).Location.Column
'rg = union des cellules
'ligne = 1 ligne avant le saut de page
'colonne = colonne sélectionnée
If rg Is Nothing Then
Set rg = Range(col & (r - 1))
Else
Set rg = Application.Union(rg, Range(col & (r - 1)))
End If
'insertion d'une ligne juste avant le saut de page
Cells(r, c).EntireRow.Insert
Next a
'sélectionner la zone
rg.Select
'et mettre quelques bordures
With Selection
.Font.FontStyle = "Gras"
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
.Borders(xlEdgeRight).LineStyle = xlNone
End With
End With
End Sub

@+
FxM



caroline wrote:

Bonjour FxM,

Merci beaucoup... là j'ai tout compris et ça fonctionne. Merci d'avoir
pris le temps.

Peut-être peux-tu répondre à une autre de mes questions :
à partir d'une base de données je prépare des Sous-totaux (avec la
fonction
Somme) avec Insertion de saut de page (à chaque changement de...). Le
résultat s'étend sur une vingtaine de page. Je voudrais modifier la
mise en
forme de ces pages mais en une SEULE opération.
Sur chaque page je désire avoir le sous-total en gras avec une bordure
simple en haut et un double souligné au bas & insérer une ligne
blanche
avant la somme.

A+
Caroline


Avatar
Caroline L.
Bonjour FxM,

c'est très aimable à toi de m'aider.

Wow, ça fonctionne ! Je ne comprends pas vraiment le langage (juste quelques
bouts) mais j'ai copier/coller ta macro et ça fonctionne. La seule chose à
rectifier est la suivante :
'insertion d'une ligne juste avant le saut de page
--> je désire l'insertion d'une ligne juste avant la somme (le sous-total),
à l'avant dernière ligne de chaque page.

Pourquoi je dois sélectionner la colonne désirée avant l'exécution de la
macro ?
Est-ce que la macro pourrait commencer en donnant l'ordre de sélectionner la
colonne "D" ?

Comment as-tu appris tout ce que tu sais ?

Merci encore.
Caroline






"FxM" a écrit dans le message de news:
#
Bonsoir Caroline,

N'écoute pas le coté langue de vipère de JPS (m^me s'il y a des fois
où...).


Le traitement en une fois ... hum ! De même que pour l'insertion de
ligne qui décale systématiquement tout ce qui aurait pu être déterminé.
Mon neurone en surchauffe m'a mené à des choses comme ce qui suit :

Sélectionne la colonne où tu souhaites mettre ton calcul (et donc les
bordures) puis lance la macro.

Sub test()
Dim col As String, h
Dim a As Integer, r As Long, c As Long, rg As Range

On Error Resume Next
With ActiveSheet
'détermine la colonne où est la sélection (sous forme de texte)
col = Left$(Selection.Address(0, 0), (Selection.Column < 27) + 2)
'h = nombre de sauts de page verticaux
Set h = .Cells.Worksheet.HPageBreaks
For a = 1 To h.Count
'r=ligne du saut de page, c = colonne du saut
r = h(a).Location.Row: c = h(a).Location.Column
'rg = union des cellules
'ligne = 1 ligne avant le saut de page
'colonne = colonne sélectionnée
If rg Is Nothing Then
Set rg = Range(col & (r - 1))
Else
Set rg = Application.Union(rg, Range(col & (r - 1)))
End If
'insertion d'une ligne juste avant le saut de page
Cells(r, c).EntireRow.Insert
Next a
'sélectionner la zone
rg.Select
'et mettre quelques bordures
With Selection
.Font.FontStyle = "Gras"
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
.Borders(xlEdgeRight).LineStyle = xlNone
End With
End With
End Sub

@+
FxM



caroline wrote:

Bonjour FxM,

Merci beaucoup... là j'ai tout compris et ça fonctionne. Merci d'avoir
pris le temps.

Peut-être peux-tu répondre à une autre de mes questions :
à partir d'une base de données je prépare des Sous-totaux (avec la
fonction
Somme) avec Insertion de saut de page (à chaque changement de...). Le
résultat s'étend sur une vingtaine de page. Je voudrais modifier la
mise en
forme de ces pages mais en une SEULE opération.
Sur chaque page je désire avoir le sous-total en gras avec une bordure
simple en haut et un double souligné au bas & insérer une ligne
blanche
avant la somme.

A+
Caroline




Avatar
FxM
Bonsoir Caroline,

Wow, ça fonctionne ! Je ne comprends pas vraiment le langage (juste quelques
bouts)
If you speak english, it helps a lot because VBA is now in english only...


mais j'ai copié/collé ta macro et ça fonctionne. La seule chose à
rectifier est la suivante :
Est-ce un souhait, une demande ou une exigence ?

'insertion d'une ligne juste avant le saut de page
--> je désire l'insertion d'une ligne juste avant la somme (le sous-total),
à l'avant dernière ligne de chaque page.
J'ai passé quelques temps dessus avant de laisser tomber. En prenant un

chemin un peu détourné ...

Pourquoi je dois sélectionner la colonne désirée avant l'exécution de la
macro ?
par ce que j'ai horreur de fixer des colonnes qui feront varier le

résultat dès que la mise en page aura changé (et que le code n'aura pas
été modifié)
Est-ce que la macro pourrait commencer en donnant l'ordre de sélectionner la
colonne "D" ?
En fixant la colonne D, ça peut donner ce qui suit : (voir plus bas)


Comment as-tu appris tout ce que tu sais ?
Mes sources principales :

- F1: l'aide
- Disciplus / Excelabo http://www.excelabo.net
- la fenêtre 'variables locales' dans laquelle tu trouves ce qui peut
ressembler à ce que tu cherches,
- En cherchant des réponses à mes problèmes et en me torturant le
neurone ici même sur les problèmes des autres. MPFE est pour cela une
TRES bonne école (vu le nombre de problèmes divers et variés et le
nombre de solutions).
- Gogol : http://www.google.fr
et http://www.google.fr/advanced_group_search?hl=fr
(indique en groupe : *.fr.excel )

@+
FxM


Nous disons donc :

Sub test2()
'En cas d'erreur, poursuit avec la ligne suivante
On Error Resume Next

'définit la feuille sur laquelle s'applique la macro
With Sheets(Selection.Worksheet.Name)

'la fameuse colonne
col = "D"

'h fait référence à tous les sauts de page
Set h = .Cells.Worksheet.HPageBreaks

'pour chacun des sauts de page
For a = 1 To h.Count

' et 2 lignes avant le saut de page
r = h(a).Location.Row - 2

'si rg existe, on fait une union sinon on créee rg
'avec la ligne complète où est située la somme
If rg Is Nothing Then
Set rg = Range(col & r).EntireRow
Else
Set rg = Application.Union(rg, Range(col & r).EntireRow)
End If
Next a

'insérer une ligne devant chaque somme
rg.Insert Shift:=xlDown

'vider rg
Set rg = Nothing

'on reprend le même principe à UNE naunce :
'la sélection ne concerne plus la ligne complète mais
'seulement la cellule de la somme
Set h = .Cells.Worksheet.HPageBreaks
For a = 1 To h.Count
r = h(a).Location.Row - 2
If rg Is Nothing Then
'la nuance est sur la ligne suivante (plus de .entirerow)
Set rg = Range(col & r)
Else
'et ici aussi
Set rg = Application.Union(rg, Range(col & r))
End If
Next a

'sélection de la plage comprend toutes les sommes
rg.Select
With Selection

'appliquer une police 'gras'
.Font.FontStyle = "Gras"

'aucune bordure en diagonale
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone

'aucune bordure à gauche
.Borders(xlEdgeLeft).LineStyle = xlNone

'bordure du haut = trait fin continu
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

'bordure du bas = trait double continu
With .Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With

'aucune bordure à droite
.Borders(xlEdgeRight).LineStyle = xlNone

End With
End With

'et c'est fini :o)
End Sub

Avatar
sabatier
cette liste est tout sauf exhaustive : je n'y lis pas ce point que je
situerais bien en pole position :
- mes nombreux échanges avec JPS
mais bon, tu me sais modeste, FxM, alors je te pardonne...
jps

FxM a écrit:


Comment as-tu appris tout ce que tu sais ?


Mes sources principales :
- F1: l'aide
- Disciplus / Excelabo http://www.excelabo.net
- la fenêtre 'variables locales' dans laquelle tu trouves ce qui peut
ressembler à ce que tu cherches,
- En cherchant des réponses à mes problèmes et en me torturant le
neurone ici même sur les problèmes des autres. MPFE est pour cela une
TRES bonne école (vu le nombre de problèmes divers et variés et le
nombre de solutions).
- Gogol : http://www.google.fr
et http://www.google.fr/advanced_group_search?hl=fr
(indique en groupe : *.fr.excel )

@+
FxM





1 2