Insérer un certain nombre de lignes à un endroit variable

Le
Pierre F.
Bonjour;

Dans une feuille, je souhaite créer une macro qui permet d'insérer un=

nombre de lignes défini dans la cellule J21 (nombre compris entre 0 et =

9) à un endroit défini par les contenus de la colonne C (C5:C31)

Les cellules de la colonne C ne contiennent qu'une lettre, "F" ou "G"
Je souhaite insérer les X cellules juste au-dessous de la dernière li=
gne
où C contient la lettre "F".

Actuellement, je sais que pour insérer 2 lignes, je dois faire:

Rows("15:16").Select
Selection.Insert Shift:=xlDown


Merci.

Cordialement,
Pierre F.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4251951
Bonjour,

[C:C].Find(What:="F", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select
Selection.Offset(1, 0).Resize([J21], 1).Insert Shift:=xlDown

JB


On 23 mar, 12:37, "Pierre F."
Bonjour;

Dans une feuille, je souhaite créer une macro qui permet d'insérer un
nombre de lignes défini dans la cellule J21 (nombre compris entre 0 et
9) à un endroit défini par les contenus de la colonne C (C5:C31)

Les cellules de la colonne C ne contiennent qu'une lettre, "F" ou "G"
Je souhaite insérer les X cellules juste au-dessous de la dernière li gne
où C contient la lettre "F".

Actuellement, je sais que pour insérer 2 lignes, je dois faire:

Rows("15:16").Select
Selection.Insert Shift:=xlDown

Merci.

Cordialement,
Pierre F.


Pierre F.
Le #4251921

[C:C].Find(What:="F", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select
Selection.Offset(1, 0).Resize([J21], 1).Insert Shift:=xlDown



Merci ! Quelle rapidité :-)

Cette macro bogue sur:

Selection.Offset(1, 0).Resize([J21], 1).Insert Shift:=xlDown

La cellule C contenant le dernier "F" devient active... mais rien
d'autre ne se passe... dois-je ajouter quelque chose ?


Cordialement,
Pierre F.

Pierre F.
Le #4251891

[C:C].Find(What:="F", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select
Selection.Offset(1, 0).Resize([J21], 1).Insert Shift:=xlDown



Oups...

Pardon ! quelque chose se passe!
Les contenus de la colonne C situés en-dessous du dernier "F" se
décalent de X rangs vers le bas ??

Cordialement,
Pierre F.

JB
Le #4251801
http://cjoint.com/?dxoMBLNBrL

JB

On 23 mar, 13:33, "Pierre F."

[C:C].Find(What:="F", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select
Selection.Offset(1, 0).Resize([J21], 1).Insert Shift:=xlDown


Oups...

Pardon ! quelque chose se passe!
Les contenus de la colonne C situés en-dessous du dernier "F" se
décalent de X rangs vers le bas ??

Cordialement,
Pierre F.



Pierre F.
Le #4251581
http://cjoint.com/?dxoMBLNBrL



Merci;

Effectivement, les cellules situées au-dessous du dernier F se déplac ent
du rang voulu vers le bas.

Mais ce que je souhaiterais, c'est la création de X lignes vides sous l e
dernier F, pas seulement dans la colonne C.

Merci.

Pierre F.

JB
Le #4251551
Attention!

Si les lignes insérées sont au dessus de la ligne 21, J21 va être
déplacé vers le bas:

[C:C].Find(What:="F", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select
Selection.Offset(1, 0).Resize([J21], 1).EntireRow.Insert
Shift:=xlDown

JB

On 23 mar, 16:22, "Pierre F."

http://cjoint.com/?dxoMBLNBrL


Merci;

Effectivement, les cellules situées au-dessous du dernier F se déplac ent
du rang voulu vers le bas.

Mais ce que je souhaiterais, c'est la création de X lignes vides sous le
dernier F, pas seulement dans la colonne C.

Merci.

Pierre F.



Pierre F.
Le #4251481
Attention!

Si les lignes insérées sont au dessus de la ligne 21, J21 va être
déplacé vers le bas:


Merci pour le coup d'oeil très avisé :-)
Effectivement, la position du J21 est peu heureuse.
J'ai déplacé en J4 (le contenu variable commence à la lignes 5 le n ombre
de lignes à créer.

[C:C].Find(What:="F", LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Select
Selection.Offset(1, 0).Resize([J21], 1).EntireRow.Insert
Shift:=xlDown


Mille mercis; j'avais hésité à placer le EntireRow... mais je savai s pas
trop où le mettre :-))

Cette fois, c'est parfait!

Cordialement,
Pierre F.

Publicité
Poster une réponse
Anonyme