Macro insère 1 cellule vide et pas 1000 ...

  • Initiateur de la discussion Initiateur de la discussion Chris57
  • 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 !

Chris57

XLDnaute Occasionnel
Bonjour à tous,

dans une liste de durées en minutes je cherche les valeurs supérieures à 16 min, et lorsqu'il la trouve il insère une ligne :

For Each X In [B6:B800]
If X.Value > 1.11111111111111E-02 Then X.EntireRow.Insert
End If
Next

(1.11111111111111E-02 correspond à 16 min)

mais lorsque le lance le code, il insère indéfiniment des lignes à la première valeur > 16min qu'il trouve ! Il ne passe pas à la prochaine valeur de la liste.

J'ai tenté un
For Each X In [B6:B800]
If X.Value > 1.11111111111111E-02 Then
X.Select
Selection.EntireRow.Insert
Selection.Offset(2, 0).Select
End If
Next

mais la réaction est la même !

Quelqu'un peut m'aider ?
 
Re : Macro insère 1 cellule vide et pas 1000 ...

Bonsoir Chris57
Il faut partir du bas...
Essayez :
Code:
[COLOR="DarkSlateGray"][B]Sub tutu()
Dim i&
   For i = 800 To 6 Step -1
      If Cells(i, 2).Value > 1.11111111111111E-02 Then Rows(i).EntireRow.Insert
   Next i
End Sub[/B][/COLOR]
ROGER2327
#3278
 
Re : Macro insère 1 cellule vide et pas 1000 ...

merci ça marche impec !!!

Mais je dois compliquer les choses :

il faut qu'il m'insère autant de lignes que la valeur dans une cellule sur la même ligne.

Par exemple, sur la ligne 4 il y a le chiffre 2 dans la cellule C2, donc il insère 2 lignes
sur la ligne 17 il y a le chiffre 9 dans la cellule C2, donc il insère 9 lignes

etc...
 
Dernière édition:
Re : Macro insère 1 cellule vide et pas 1000 ...

Salut 😉
Bonjour Maitre Roger2327

Code:
Sub toto()
Dim Lig As Long, Ind As Integer
   For Lig = 10 To 6 Step -1
      If Cells(Lig, 2).Value > 1.11111111111111E-02 Then
        Ind = Cells(Lig, 3).Value
        ' Insertion des lignes au dessus
        ' de la ligne de test
        Rows(Lig & ":" & Lig + Ind).EntireRow.Insert
        ' Insertion des lignes en dessous
        ' de la ligne de test
        'Rows(Lig + 1 & ":" & Lig + 1 + Ind).EntireRow.Insert
      End If
   Next Lig
End Sub

A+
 
Re : Macro insère 1 cellule vide et pas 1000 ...

Bonjour Chris57, BrunoM45
merci ça marche impec !!!

Mais je dois compliquer les choses :

il faut qu'il m'insère autant de lignes que la valeur dans une cellule sur la même ligne.

Par exemple, sur la ligne 4 il y a le chiffre 2 dans la cellule C2, donc il insère 2 lignes
sur la ligne 17 il y a le chiffre 9 dans la cellule C2, donc il insère 9 lignes

etc...
Les choses se compliquent d'autant plus qu'on aura du mal à trouver une cellule C2 sur la ligne 4 ou sur la ligne 9.
En supposant qu'il s'agit de :
«S'il y a le nombre 2 dans la colonne C de la ligne 4, insérer 2 lignes.
S'il y a le nombre 9 dans la colonne C de la ligne 17, insérer 9 lignes.», je propose :
Code:
[COLOR="DarkSlateGray"][B]Sub INSERE_AU_DESSUS()
Dim i&
   For i = 800 To 6 Step -1
      If Cells(i, 2).Value > 1 / 90 Then Rows(i).Resize(Cells(i, 3).Value, 1).EntireRow.Insert
   Next i
End Sub

Sub INSERE_AU_DESSOUS()
Dim i&
   For i = 800 To 6 Step -1
      If Cells(i, 2).Value > 1 / 90 Then Rows(i + 1).Resize(Cells(i, 3).Value, 1).EntireRow.Insert
   Next i
End Sub[/B][/COLOR]
ROGER2327
#3316
 
- 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

Discussions similaires

Réponses
2
Affichages
527
Réponses
1
Affichages
670
Réponses
0
Affichages
657
Réponses
7
Affichages
1 K
J
Réponses
9
Affichages
1 K
juicelink
J
Réponses
3
Affichages
1 K
Retour