Insérer ligne en fonction du nombre de caractère

petedesky

XLDnaute Nouveau
Bonjour à tous les experts et passionnés,

Comme beaucoup de gens j'ai un peu de mal avec VBA et je n'ai pas trouvé suffisamment d'info qui puisse m'aider.

Dans le tableau ci-joint,

Parmi toutes les cellules de colonne A qui sont non vide (il peut y en avoir d'autres en dessous), je souhaite insérer une ligne au dessus de chaque cellule de la colonne A qui contient 4 caractères.

Je ne sais pas comment combiner le LEN et Selection.EntireRow.Insert

Merci à vous
 

Pièces jointes

  • exemple insérer ligne.xls
    35.5 KB · Affichages: 59

Paf

XLDnaute Barbatruc
Re : Insérer ligne en fonction du nombre de caractère

Bonjour,

un essai macro à adapter et tester:

Code:
Sub InsLigne()
 Dim i As Long
 With Worksheets("Exemple") ' à adapter
 For i = .Range("A" & .Rows.Count).End(xlUp).Row To 1 Step -1 'pour chaque ligne de la dernière à 1
    If Len(.Cells(i, 1)) = 4 Then .Rows(i).Insert Shift:=xlUp
 Next
 End With
End Sub

A+
 

petedesky

XLDnaute Nouveau
Re : Insérer ligne en fonction du nombre de caractère

Encore bonjour,

Finalement j'ai une autre question

En fait avant le Dim i as Long j'ai du code. et à ce niveau du code j'ai des cellules qui sont sélectionnées. J'aimerai que ton code se base sur cette sélection de cellule pour insérer les lignes au dessus de la où il y a 4 caractères.

Voici ton code:
Dim i As Long
With Worksheets("exemple") ' à adapter
For i = .Range("A" & .Rows.Count).End(xlUp).Row To 1 Step -1 'pour chaque ligne de la dernière à 1
If Len(.Cells(i, 1)) = 4 Then .Rows(i).Insert Shift:=xlUp
Next

Voici ce que j'essaye de faire:

Dim i As Long
With Worksheets("exemple") ' à adapter
For i = .Range("A", Selection).Row To 1 Step -1 'pour chaque ligne de la dernière à 1
If Len(.Cells(i, 1)) = 4 Then .Rows(i).Insert Shift:=xlUp

Je ne sais pas si j'ai été claire

Si tu as une idée ?, mille fois merci de toute façon.
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Insérer ligne en fonction du nombre de caractère

re,

s'il s'agit de 'traiter' de la ligne sélectionnée jusqu'à la première ligne:

Code:
For i = Selection.Row To 1 Step -1 'pour chaque ligne de la sélection à 1
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 127
Membres
104 041
dernier inscrit
jcourtei