Insertion ligne avec une formule NB.SI

Résolu
DridriR Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
DridriR Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir à tous,

Voici mon problème j'aimerais faire une insertion de ligne entre chaque valeur différente de la colonne A. Puis dans la même macro utiliser la formule NB.SI dans la ligne nouvelle insérée de la colonne D à J suivant la condition si weekend prendre le montant de la prime 30€(cellule "O4") ou jour de la semaine 20€ (cellule "O3").



Exemple :

Faire une insertion de ligne entre Ajose Michael et Akers Chris puis en D7(ligne nouvelle créée) faire :
=NB.SI(F$2:F$6;"YES")*$O$3

Puis passer à la valeur suivante : Akers,Chris et Banwait, Bajinder etc ...

Le plus important est de le faire en boucle jusqu'à la fin de nos données ligne 298. Nous n'arrivons pas à à intégrer la fonction NB.SI dans cette macro ci :

Sub SAUTDELIGNE()
'
' SAUTDELIGNE Macro
'
Dim cellule As Variant

'se positionne au bas de la colonne et remonte
For i = Range("a65536").End(xlUp).Row To 2 Step -1

'selectionne la ligne lors du changement de valeur et ajoute une ligne en dessous
If Cells(i, 1).Value <> Cells(i + 1, 1).Value Then Rows(i + 1).EntireRow.Insert Shift:=x1Down

Next i

End Sub




Merci beaucoup pour votre aide,
Merci de votre compréhension je ne suis pas expert en la matière ...
En espérant avoir été suffisamment clair ...
A voir également:

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
Essayez ceci
Option Compare Text

Sub SAUTDELIGNE()
    Application.ScreenUpdating = False
    ' SAUTDELIGNE Macro
    Dim cellule As Variant
    'se positionne au bas de la colonne et remonte
    For i = Range("a65536").End(xlUp).Row To 2 Step -1
    'selectionne la ligne lors du changement de valeur et ajoute une ligne en dessous
        If Cells(i, 1).Value <> Cells(i + 1, 1).Value Then Rows(i + 1).EntireRow.Insert Shift:=x1Down
    Next i
    
    [A2].Select
    Derlig = Range("a65536").End(xlUp).Row
    Cpt = 0
    For i = 2 To Derlig + 1
        If Cells(i, 1) <> "" Then
            Cpt = Cpt + 1
            GoTo Suivant
        End If
        Formule = "=COUNTIF(R[-" & Cpt & "]C[2]:R[-1]C[2],""yes"")*R3C15"
        Cells(i, 4).FormulaR1C1 = Formule
        Cpt = 0
Suivant:
    Next i
End Sub

Cdlt
1
DridriR Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Frenchie83,

Merci beaucoup pour votre aide.
C'est exactement ça !
0