Modifier une macro
k
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
f
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
A+
k
Merci beaucoup,la macro marche tres bien.