Insertion de ligne selon les valeurs de 2 cellules [Résolu]

Signaler
-
Messages postés
2
Date d'inscription
jeudi 24 juin 2021
Statut
Membre
Dernière intervention
28 juin 2021
-
Bonjour,

J'ai un classeur excel avec plusieurs onglets, l'un des onglets se nomme "Doublons remettants" et un autre "Les succursales".
Dans le premier j'ai en colonne F les cellules contenant (ou pas) le nombres de lignes que je souhaite insérer. En colonne G les cellules contiennent le numéro de ligne en dessous duquel il faut insérer ces lignes.

J'aimerai que la macro fasse ceci :

S'il y a une valeur en F2 "Doublons remettants", alors insérer sur "Les succursales" un nb de ligne correspondant à cette valeur, en dessous de la ligne n° = valeur G2 "Doublons remettants"

Merci pour le temps consacrer à ma requête, en espérant avoir était clair :)

1 réponse

Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 juillet 2021
877
bonjour,
le premier onglet est-il trié sur la colonne G?
dans quel ordre faut-il faire les insertions?
>
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 juillet 2021

Ou plus simple il faut exécuter la macro de bas en haut. Pour éviter le décalage
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 juillet 2021
877 > Dam1307
pas d'autres surprises en réserve?
>
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 juillet 2021

À priori non :)
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 juillet 2021
877 > Dam1307
suggestion:
Sub ins()
Dim wc As Worksheet, wi As Worksheet, ligc As Long, dligc As Long, ligi As Long, nligi As Long, i As Long

Set wc = Sheets("Doublons remettants")
Set wi = Sheets("Les succursales")
dligc = wc.Cells(wc.Rows.Count, "f").End(xlUp).Row
For ligc = dligc To 2 Step -1
    ligi = Val(wc.Cells(ligc, "g"))
    nligi = Val(wc.Cells(ligc, "f"))
    If ligi > 0 And nligi > 0 Then
        For i = 1 To nligi
            wi.Rows(ligi + 1).EntireRow.Insert
        Next i
    End If
Next ligc
End Sub
Messages postés
2
Date d'inscription
jeudi 24 juin 2021
Statut
Membre
Dernière intervention
28 juin 2021
>
Messages postés
16406
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 juillet 2021

Bonjour,

top merci ça fonctionne bien