OVH Cloud OVH Cloud

Insertion ligne selon police

4 réponses
Avatar
Richard G.
Bonjour =E0 tous,

J'ai un fichier avec des donn=E9es texte en colonne A. Certaines
cellules sont en gras, d'autres non.
J'aimerai ins=E9rer une ligne avant chaque cellule en gras.
J'ai fait le code suivant :

Sub Ligne ()
Range("A1:A4000").Select
For Each Cell In Selection
Cell.Select
If ActiveCell.Font.Bold =3D True Then EntireRow.Insert.Select
ActiveCell.Offset(1, 0).Select
Next Cell
Set Cell =3D Nothing

End Sub

=E7a ne marche qu'=E0 moiti=E9 : =E7a ins=E8re bien une ligne mais seulement
avant la premi=E8re cellule en gras, et =E7a ne cesse de le faire.

Merci par avance pour vos id=E9es !=20

A+

4 réponses

Avatar
DesseJ
Bonjour Richard,

Dans ta macro, tu boucles sur ta première ligne en gras. Le plus
simple est de travailler en partant de la dernière ligne comme ceci :

Sub SautDeLigne()
Dim i As Double
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Range("A" & i).Font.Bold = True Then Rows(i).Insert
Shift:=xlDown
Next
End Sub

Cordialement
Steph D.
Avatar
Elliac
Bonjour,

Sub InsérerSiGras()
Range("a50000").End(xlUp).Select
While ActiveCell.Row <> 1
If ActiveCell.Font.Bold = True Then ActiveCell.EntireRow.Insert
ActiveCell.Offset(-1).Select
Wend
End Sub

Camille

"Richard G." wrote:

Bonjour à tous,

J'ai un fichier avec des données texte en colonne A. Certaines
cellules sont en gras, d'autres non.
J'aimerai insérer une ligne avant chaque cellule en gras.
J'ai fait le code suivant :

Sub Ligne ()
Range("A1:A4000").Select
For Each Cell In Selection
Cell.Select
If ActiveCell.Font.Bold = True Then EntireRow.Insert.Select
ActiveCell.Offset(1, 0).Select
Next Cell
Set Cell = Nothing

End Sub

ça ne marche qu'à moitié : ça insère bien une ligne mais seulement
avant la première cellule en gras, et ça ne cesse de le faire.

Merci par avance pour vos idées !

A+




Avatar
michdenis
Bonjour Richard,


'-------------------------
Sub Ligne()
Dim Rg As Range
Set Rg = Worksheets("Feuil3").Range("A1:A4000")
nb = Rg.Rows.Count
Application.ScreenUpdating = False
For a = nb To 1 Step -1
If Rg(a, 1).Font.Bold = True Then
Rg(a, 1).EntireRow.Insert

End If
Next
Set Rg = Nothing

End Sub
'-------------------------


Salutations!


"Richard G." a écrit dans le message de news:
Bonjour à tous,

J'ai un fichier avec des données texte en colonne A. Certaines
cellules sont en gras, d'autres non.
J'aimerai insérer une ligne avant chaque cellule en gras.
J'ai fait le code suivant :

Sub Ligne ()
Range("A1:A4000").Select
For Each Cell In Selection
Cell.Select
If ActiveCell.Font.Bold = True Then EntireRow.Insert.Select
ActiveCell.Offset(1, 0).Select
Next Cell
Set Cell = Nothing

End Sub

ça ne marche qu'à moitié : ça insère bien une ligne mais seulement
avant la première cellule en gras, et ça ne cesse de le faire.

Merci par avance pour vos idées !

A+
Avatar
Richard G.
Rebonsoir,

Merci à tous les 3 pour vos solutions respectives, chacune très
efficaces !
Merci beaucoup.

A+