RE: Code VBA pour remplacer formule

Bonjour à tous!

Je reviens avec le même tableaux tous fonctionne correctement mais mon chef de service ne veux aucune formule sur le fichier

le code VBA est :

Sub Formule()

Dim Lg&

Application.ScreenUpdating = False

On Error Resume Next

ActiveSheet.ShowAllData 'libère les filtres

On Error GoTo 0

Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row

'--- formules ---

Range("t6:t" & Lg) = "=" & _

"IF(AND(q6=""*"",r6="""",s6=""""),""Possible Fauteuil / PMR""," & _

"IF(AND(q6=""*"",r6=1,s6=""""),""Adapter Fauteuil""," & _

"IF(AND(q6=""*"",r6="""",s6=2),""Adapter PMR"","""")))"

Range("u6:u" & Lg) = "=" & _

"IF(OR(r6<>"""",s6<>""""),FZ6," & _

"IF(OR(q6=""*"",r6<>"""",s6<>""""),FW6,""""))"

Range("v6:v" & Lg) = "=" & _

"IF(OR(r6<>"""",s6<>""""),FZ6," & _

"IF(OR(q6=""*"",r6<>"""",s6<>""""),FW6,""""))"

'--- en dur ---

Range("t6:u" & Lg) = Range("t6:u" & Lg).Value

End Sub

les formules sont :

en cellule "FW6"

=NB.SI.ENS(GB$6:GB$1077;GB6)

en cellule "FX6"

=FW5-SOMMEPROD(((GB$6:GB$1077=GB6))*(R$6:R$1077))

en cellule "FY6"

=FW5-SOMMEPROD(((GB$6:GB$1077=GB6))*(GA$6:GA$1077))

en cellule "FZ6"

=-(FW6-FX6-FY6)

en cellule "GA6"

=SI(S6=2;1;0)

en cellule "GB6"

=SI(F6=F5;GB5;GB5+1)

je joint un fichier

je vous remercie d'avance pour votre aide

17classeur1.rar (32.39 Ko)

Bonjour,

Pour la prochaine fois, inutile de doublonner les postes,

tu aurai dû continuer sur celui-ci, suffit de retirer le résolu et poster le nouveau message.

https://forum.excel-pratique.com/excel/code-vba-pour-remplacer-formule-t26428.html

Nouvelle macro

Sub Formule()
Dim Lg&
    Application.ScreenUpdating = False
        On Error Resume Next
        ActiveSheet.ShowAllData 'libère les filtres
       On Error GoTo 0
    Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row

    '--- formules T:V ---
   Range("t5:t" & Lg) = "=" & _
        "IF(AND(q5=""*"",r5="""",s5=""""),""Possible Fauteuil / PMR""," & _
        "IF(AND(q5=""*"",r5=1,s5=""""),""Adapter Fauteuil""," & _
        "IF(AND(q5=""*"",r5="""",s5=2),""Adapter PMR"","""")))"

    Range("u5:u" & Lg) = "=" & _
        "IF(OR(r5<>"""",s5<>""""),FZ5," & _
        "IF(OR(q5=""*"",r5<>"""",s5<>""""),FW5,""""))"

    Range("v5:v" & Lg) = "=" & _
        "IF(OR(r5<>"""",s5<>""""),FZ5," & _
        "IF(OR(q5=""*"",r5<>"""",s5<>""""),FW5,""""))"

    '--- formules FW:GB ---
    Range("fw6:fw" & Lg) = "=COUNTIF(gb$6:gb$" & Lg & ",gb6)"

    Range("fx6:fx" & Lg) = _
        "=fw6-SUMPRODUCT(((gb$6:gb$" & Lg & "=gb6))*(r$6:r$" & Lg & "))"

    Range("fy6:fy" & Lg) = _
        "=fw6-SUMPRODUCT(((gb$6:gb$" & Lg & "=gb6))*(ga$6:ga$" & Lg & "))"

    Range("fz6:fz" & Lg) = "=-(fw6-fx6-fy6)"
    Range("ga6:ga" & Lg) = "=IF(s6=2,1,0)"
    Range("gb6:gb" & Lg) = "=IF(f6=f5,gb5,gb5+1)"

    '--- en dur ---
    Range("t5:v" & Lg) = Range("t5:v" & Lg).Value
    Range("fw6:gb" & Lg) = Range("fw6:gb" & Lg).Value
End Sub

Amicalement

Claude

Bonjour Claude,

Tout d'abord merci pour ta réponse rapide, et je m'excuse pour le doublon du poste mais je ne savais pas que je pouvais reprendre le précédent, pour les prochaine fois j'en tiendrai compte.

Encore mille fois merci pour ton aide

au revoir et bonne fin de week-end

encore moi?????

juste pour une question

pourquoi on ne peut pas masquer les colonne FW à GB

autrement c'est parfait cela fonctionne à merveille je ne sais pas quel qualificatif employer tellement je suis content

Bonsoir,

pourquoi on ne peut pas masquer les colonne FW à GB

tu peux masquer ces colonnes,

je viens de tester, sans problème

Amicalement

Claude

Rechercher des sujets similaires à "code vba remplacer formule"