Code VBA pour remplacer formule

Bonsoir à tous!!!

peut on faire un code VBA pour remplacer la formule ci dessous

=SI(ET(A5=1;F5="demi étage accès par arrière bât");"PMR";SI(ET(A5=1;F5="demi étage");"PMR";SI(ET(A5=1;C5=3;D5="RDC");"PMR";SI(ET(A5=1;C5=2;D5="RDC");"Accessible Fauteuil";SI(ET(A5<>"";D5="RDC");"Possible Fauteuil";SI(ET(A5<>"";D5="1er ETAGE");"PMR";""))))))

je joint un bout de tableau la formule se trouve dans la colonne "L" et sur toute sa longueur.

Dans le tableau finale la colonne "A" sera la "G" et la colonne "C" sera la "I", ceci a titre indicatif si j'ai un retour je ferai les modifs moi même.

un grand merci par avance de votre aide.

25classeur1.xlsm (12.17 Ko)

Bonjour,

Un essai avec bouton, j'ai laissé le code pour que tu tests dans ton fichier exemple, il faudra modifier les colonnes pour ton fichier réel.

Cordialement,

45accessibilite.xlsm (21.00 Ko)

Bonjour à tous,

En utilisant la formule actuelle,

On peut imaginer un double-clic sur R3 (à la place du bouton)

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
    '--- formule ---
    Range("r5:r" & Lg) = "=" & _
        "IF(AND(g5=1,L5=""demi étage accès par arrière bât""),""PMR""," & _
        "IF(AND(g5=1,L5=""demi étage""),""PMR""," & _
        "IF(AND(g5=1,i5=3,j5=""RDC""),""PMR""," & _
        "IF(AND(g5=1,i5=2,j5=""RDC""),""Accessible Fauteuil""," & _
        "IF(AND(g5<>"""",j5=""RDC""),""Possible Fauteuil""," & _
        "IF(AND(g5<>"""",j5=""1er ETAGE""),""PMR"",""""))))))"
    '--- en dur ---
    Range("r5:r" & Lg) = Range("r5:r" & Lg).Value
End Sub

Bonne journée

Claude

Bonsoir claude

merci pour ton code il fonctionne super, cela va me servir dans mon job, si je n'abuse pas je reviendrai peut être vers toi pour un complément, car on me demande d'automatisées d'autres données; mais je vais d'abord voir si je peu le faire moi même.

Quoi qu'il en soit je te remercie beaucoup pour ton code

Bonsoir à tous

je reviens avec mon tableau presque terminé, j'ai essayé sans succès de le finaliser, donc je fais une nouvelle fois appel a votre savoir.

mon nouveau problème est que je voudrai inséré dans le code VBA les formules de la colonne "U" qui est la suivant

"=SI(OU(R5<>"";S5<>"");AS5;SI(OU(Q5="*";R5<>"";S5<>"");AP5;""))

est que le résultat s'affiche dans la dite colonne.

encore merci d'avance.

Bonjour,

Remplace les macros par celles-ci

Sub MiseEnMaj()
Dim myCell As Range
    For Each myCell In Selection
        myCell = UCase(myCell)
    Next
End Sub
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("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<>""""),as5," & _
        "IF(OR(q5=""*"",r5<>"""",s5<>""""),ap5,""""))"

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

Bonne journée

Claude

Un merci pour ton aide tout fonctionne correctement.

Rechercher des sujets similaires à "code vba remplacer formule"