Modifier une macro

Bonjour,

j'ai enregistré une macro dans la feuille compte rendu, cette macro permet d'effectuer à partir des données de la feuille1, je voudrai savoir ce qu'il faut faire pour qu'elle s'adapte au nombre de données de la feuille1, par exemple si je supprime ou j'ajoute des lignes.

Merci

Sub Macro3()
'
' Macro3 Macro
'

'
    Range("B6").Select
    ActiveCell.FormulaR1C1 = _
        "=COUNTIF(Feuil1!R8C2:R628C2,'compte rendu des contrôles'!RC[-1])"
    Range("B6").Select
    Selection.AutoFill Destination:=Range("B6:B9"), Type:=xlFillDefault
    Range("B6:B9").Select
    Range("C6").Select
    ActiveCell.FormulaR1C1 = _
        "=1-(SUMPRODUCT((Feuil1!R8C2:R628C2='compte rendu des contrôles'!RC[-2])*(Feuil1!R8C[2]:R628C[2]=""non""))/'compte rendu des contrôles'!RC2)"
    Range("C6").Select
    ActiveCell.FormulaR1C1 = _
        "=1-(SUMPRODUCT((Feuil1!R8C2:R628C2='compte rendu des contrôles'!RC1)*(Feuil1!R8C[2]:R628C[2]=""non""))/'compte rendu des contrôles'!RC2)"
    Range("C6").Select
    Selection.AutoFill Destination:=Range("C6:C9"), Type:=xlFillDefault
    Range("C6:c9").Select
    Selection.AutoFill Destination:=Range("C6:M9"), Type:=xlFillDefault
    Range("C6:M9").Select
End Sub

Bonjour kawtdanne,

Voici une solution avec l'introduction de la variable DerLig qui correspond à la dernière ligne renseignée de la colonne B de la Feuil1.

Par contre, le nombre de gestionnaires reste fixe. J'ai rajouté ee qui n'était pas pris en compte.

Sub Macro3()
Dim DerLig As Long
    With Worksheets("Feuil1")
        DerLig = .Range("B" & Rows.Count).End(xlUp).Row
    End With
    With Worksheets("compte rendu des contrôles")
        .Range("B6").Formula = "=COUNTIF(Feuil1!$B$8:$B$" & DerLig & ",'compte rendu des contrôles'!A6)"
        .Range("B6").AutoFill Destination:=.Range("B6:B10"), Type:=xlFillDefault
        .Range("C6").Formula = "=1-(SUMPRODUCT((Feuil1!$B$8:$B$" & DerLig & "=$A6)*(Feuil1!E$8:E$" & DerLig & "=""non""))/$B6)"
        .Range("C6").AutoFill Destination:=.Range("C6:C10"), Type:=xlFillDefault
        .Range("C6:C10").AutoFill Destination:=.Range("C6:M10"), Type:=xlFillDefault
    End With
End Sub
13kawtdanne.xlsm (196.34 Ko)

A+

Merci beaucoup,la macro marche tres bien.

Rechercher des sujets similaires à "modifier macro"