XL 2021 Insertion ligne sous condition

Rabeto

XLDnaute Occasionnel
Bonjour,

j'ai tenté de chercher une solution mais je n'y arrive pas à insérer une ligne automatiquement sous une condition, si quelqu'un peut m'aider

l'objectif est soit :
- Insérer une ligne dans le tableau après chaque lettre F du colonne F
ou
- Insérer une ligne si la date est différent

merci
 

Pièces jointes

  • Inserer Ligne.xlsx
    26.6 KB · Affichages: 6

Phil69970

XLDnaute Barbatruc
Bonjour @Rabeto

ou
- Insérer une ligne si la date est différent

1) La date est différent de quoi ???

Insérer une ligne dans le tableau après chaque lettre F du colonne F
2) donc chaque fois qu'il y a la lettre F colonne F on insère 1 ligne juste en dessous ?

3) De plus la séquence colonne F est elle TOUJOURS la même ou est ce un hasard que les lettres se suivent et se répètent ???

4) Et si la date est différentes (de quoi voir question 1 ) ET lettre F on fait quoi on rajoute 2 lignes ?

==> 4 questions ==> 4 réponses attendues
 

Rabeto

XLDnaute Occasionnel
Je pense avoir trouvé en se basant sur la date, dès que la date change insérer une ligne

Sub Inserer()
Dim dates As Long, i As Long
With Sheets("Feuil2")
dates = .Range("A" & Rows.Count).End(xlUp).Row
For i = dates To 2 Step -1
If Left(.Cells(i, 5), 5) <> Left(.Cells(i - 1, 5), 5) Then .Rows(i).EntireRow.Insert
Next i
End With
End Sub
 

Rabeto

XLDnaute Occasionnel

re Phil69970


1) La date est différent de quoi ???
Il y a 6 lignes avec les mêmes date, et à la 7e ligne la date change, Donc inséré une ligne dès que la date change

2) donc chaque fois qu'il y a la lettre F colonne F on insère 1 ligne juste en dessous ?
Oui

3) De plus la séquence colonne F est elle TOUJOURS la même ou est ce un hasard que les lettres se suivent et se répètent ???
Oui la séquence colonne F est tjr la même (C'est à dire à la 6e ligne)

4) Et si la date est différentes (de quoi voir question 1 ) ET lettre F on fait quoi on rajoute 2 lignes ?
Pas possible qu'il y a une différence, car F représente la dernier ligne (dernière date avant qu'elle change)
 

piga25

XLDnaute Barbatruc
Bonjour à tous,
Afin de ne pas rajouter plusieurs lignes en répétant l'opération voir cela:
On ajout une ligne en dessous de F et juste au dessus de A (deux conditions)

VB:
Sub Insertion()
Dim i&
Application.ScreenUpdating = False
For i = Range("F" & Rows.Count).End(xlUp).Row To 1 Step -1
  If Cells(i, 6) = "F" And Cells(i + 1, 6) = "A" Then
    Rows(i + 1).Insert
  End If
Next
End Sub
 

Phil69970

XLDnaute Barbatruc
Re

Bonjour @piga25

Ton code n'est pas un code pour TS et c'est toute la ligne qui est insérée alors que mon code c'est seulement les lignes à l’intérieur du TS qui sont rajoutées .

1715775315333.png


Et avec mon code les lignes à l'extérieur du TS ne sont pas modifiées et donc tout ce qui se trouvent dans les colonnes X et suivantes ne sont pas impactées

1715775447152.png
 

Discussions similaires