Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion petedesky
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

petedesky

Guest
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

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+
 
Re : Insérer ligne en fonction du nombre de caractère

Super merci beaucoup ça marche parfaitement, j'ai juste à l'adapter a mon "vrai" tableau.

Encore merci a+
 
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 modification par un modérateur:
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
20
Affichages
1 K
Réponses
8
Affichages
612
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…