OVH Cloud OVH Cloud

insertion

8 réponses
Avatar
regis.gintz
bonjour a tous !


Avec Excel 2000 ; wind 98

je viens de recevoir une liste de marchandise avec plusieurs
colonnes(adresse , n °,lot ....)dont une colonne avec un numéro.
pour que ce tableau soi plus aérée je voudrais insérer une ligne de couleur
grise après chaque changement de numéro; car une même marchandise peut
avoir plusieurs ligne mais le numéro ne change pas.

merci d avance

8 réponses

Avatar
Nicolas B.
Salut Regis,

Est-ce que ne colorier que la première ligne du numéro te convient ? Dans ce
cas une MEFC suffit :
Sélectionne tout ton tableau (avec A2 activée) puis mets comme formule de
mise en forme conditionnelle :
=$A2<>$A1


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


bonjour a tous !


Avec Excel 2000 ; wind 98

je viens de recevoir une liste de marchandise avec plusieurs
colonnes(adresse , n °,lot ....)dont une colonne avec un numéro.
pour que ce tableau soi plus aérée je voudrais insérer une ligne de
couleur grise après chaque changement de numéro; car une même
marchandise peut avoir plusieurs ligne mais le numéro ne change pas.

merci d avance


Avatar
regis.gintz
bonsoir !


merci de m avoir répondu rapidement.
ta MEFC marche très bien mais insérer une ligne serais très bien.
a défaut je m en contenterais

a + est encor merci
Avatar
Pascal Engelmajer
salut,
une petite macro ...

Sub insereLigneGrise()
'après selection du premier numéro dans la colonne des numéros
'
Dim debut As Range
Dim fin As Range
Dim plage As Range
Dim memNo
Dim fl As Boolean
Set debut = ActiveCell
Set fin = Cells(65535, debut.Column).End(xlUp) '.Offset(1, 0)
Set plage = Range(debut, fin)
Set cell = plage(plage.Count)
MsgBox cell.Address
memNo = cell.Value
fl = False
Do Until cell.Row = debut.Row
Do While cell.Value = memNo _
Or cell.Interior.ColorIndex = 15 _
Or IsEmpty(cell)
'pour sauter les lignes déjà grises ou vide
If cell.Interior.ColorIndex = 15 _
Or IsEmpty(cell) Then fl = True
Set cell = cell.Offset(-1, 0)
Loop
memNo = cell.Value
MsgBox memNo
If Not fl Then
cell.EntireRow.Offset(1, 0).Insert Shift:=xlDown
With cell.Offset(1, 0).EntireRow.Interior
.ColorIndex = 15 'par exemple
End With
If cell.Row > debut.Row + 1 Then Set cell = cell.Offset(-2, 0)
fl = False
End If
Loop
End Sub


--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"regis.gintz" a écrit dans le message de news:

bonsoir !


merci de m avoir répondu rapidement.
ta MEFC marche très bien mais insérer une ligne serais très bien.
a défaut je m en contenterais

a + est encor merci




Avatar
Jean-François Aubert
Salut Régis,

Encore une autre solution.
Les numéros sont préalablement sélectionnés:

Sub yy()
der = Selection.Item(Selection.Count).Row
prem = Selection.Item(1).Row
For i = der To prem + 1 Step -1
If Cells(i, 1) = "" Then GoTo suite
If Cells(i, 1) <> Cells(i, 1).Offset(-1, 0) Then
Cells(i, 1).EntireRow.Insert
Cells(i, 1).Resize(1, 5).Interior.ColorIndex = 6
End If
suite:
Next
End Sub

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"regis.gintz" a écrit dans le message de
news:%
bonjour a tous !


Avec Excel 2000 ; wind 98

je viens de recevoir une liste de marchandise avec plusieurs
colonnes(adresse , n °,lot ....)dont une colonne avec un numéro.
pour que ce tableau soi plus aérée je voudrais insérer une ligne de couleur
grise après chaque changement de numéro; car une même marchandise peut
avoir plusieurs ligne mais le numéro ne change pas.

merci d avance




Avatar
AV
Pour varier les plaisirs :
A adapter : les numéros sont en A2:A1000

Sub zz_Insert_Lng()
Application.ScreenUpdating = False
Set plg = [A2:A1000].SpecialCells(xlCellTypeConstants, 23)
For i = plg.Areas.Count To 1 Step -1
For j = plg.Areas(i).Count To 1 Step -1
x = plg.Areas(i)(j).Row
If x = 2 Then Exit Sub '1° ligne contenant un numéro
plg.Areas(i)(j).EntireRow.Insert
Rows(x).EntireRow.Interior.ColorIndex = 15
Next j
Next i
End Sub

Avantage : ne boucle que sur les cellule renseignées
AV
Avatar
Jean-François Aubert
Salut Alain,
C'est une joilie proc, mais qui a un petit défaut, si un même numéro est répété sur plusieurs
lignes.
-elle insert une ligne de couleur entre tous les numéros, même si ils sont identiques.

J'ai rajouté la ligne de condition
If plg.Areas(i)(j) = plg.Areas(i)(j - 1) Then GoTo suite


Sub zz_et_yy_Insert_Lng()
Application.ScreenUpdating = False

Set plg = [A2:A1000].SpecialCells(xlCellTypeConstants, 23)

For i = plg.Areas.Count To 1 Step -1
For j = plg.Areas(i).Count To 1 Step -1
x = plg.Areas(i)(j).Row
If x = 2 Then Exit Sub '1° ligne contenant un numéro
If plg.Areas(i)(j) = plg.Areas(i)(j - 1) Then GoTo suite
plg.Areas(i)(j).EntireRow.Insert
Rows(x).EntireRow.Interior.ColorIndex = 15
suite:
Next j
Next i
End Sub

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"AV" a écrit dans le message de
news:%
Pour varier les plaisirs :
A adapter : les numéros sont en A2:A1000

Sub zz_Insert_Lng()
Application.ScreenUpdating = False
Set plg = [A2:A1000].SpecialCells(xlCellTypeConstants, 23)
For i = plg.Areas.Count To 1 Step -1
For j = plg.Areas(i).Count To 1 Step -1
x = plg.Areas(i)(j).Row
If x = 2 Then Exit Sub '1° ligne contenant un numéro
plg.Areas(i)(j).EntireRow.Insert
Rows(x).EntireRow.Interior.ColorIndex = 15
Next j
Next i
End Sub

Avantage : ne boucle que sur les cellule renseignées
AV




Avatar
AV
C'est une joilie proc, mais qui a un petit défaut, si un même numéro est répété
sur plusieurs

lignes.
elle insert une ligne de couleur entre tous les numéros, même si ils sont
identiques.



Heu... j'ai vu mention nulle part dans la question qu'il ne voulait pas ça, mais
bon ... ;-)

AV

Avatar
Jean-François Aubert
Heu... j'ai vu mention nulle part dans la question qu'il ne voulait pas ça, mais
bon ... ;-)




Et ben...t'as p't-être bien raison, surtout qu'on n'a pas encore eu de retour.

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"AV" a écrit dans le message de
news:%
C'est une joilie proc, mais qui a un petit défaut, si un même numéro est répété
sur plusieurs

lignes.
elle insert une ligne de couleur entre tous les numéros, même si ils sont
identiques.



Heu... j'ai vu mention nulle part dans la question qu'il ne voulait pas ça, mais
bon ... ;-)

AV