Test logique SI(ET maximum de caractères atteints

Sub pricing()

Dim i As Integer, plage, asum
    Set plage = Sheets("DonneesProduction").Cells(40, 2).Resize(9, 1)
    asum = Application.WorksheetFunction.CountIf(plage, "VRAI") 'on compte le nombre de VRAI dans la plage B40:B48
    If Sheets("DonneesProduction").Cells(40, 3) = 1 And asum = 1 Then coef = 0.001
    ElseIf Sheets("DonneesProduction").Cells(40, 3) = 2 And Sheets("DonneesProduction").Cells(40, 2) = "VRAI" Then coef = 0.001
    ElseIf Sheets("DonneesProduction").Cells(40, 3) = 3 And Sheets("DonneesProduction").Cells(40, 2) = "VRAI" Then coef = 0.001
    ElseIf Sheets("DonneesProduction").Cells(40, 3) = 4 And Sheets("DonneesProduction").Cells(40, 2) = "VRAI" Then coef = 0.001
    ElseIf Sheets("DonneesProduction").Cells(40, 3) = 5 And Sheets("DonneesProduction").Cells(40, 2) = "VRAI" Then coef = 0.001
    Else: moyenne
    For j = 2 To 48
        Sheets("Pricer production").Cells(j + 2, 5).Value = Sheets("Production").Cells(j, 9) * coef
    Next j

End Sub
14classeur1.zip (863.14 Ko)
10sisi.docx (12.71 Ko)

Bonjour

A tous je me trouve dans l'impasse suite à l'atteinte du maximum d'argument dans ma fonction "SI(ET(OU" imbriquée.

Après avoir tenté en vain d'écrire la fonction sur VBA, j'essaye maintenant d'écrire cette fonction sur SQL. Le problème c'est que sur mon écriture SQL j'atteind le maximum d'arguments dans ma focntion et ne peut ainsi la finaliser. J'essaye de récupérer des données dans une feuille annexe nommée "Production" et de les afficher dans mes cellules de la colonne E3 de ma feuille active. Seulement ces données s'affichent sous conditions définies dans une feuille nommée "Donneesproduction".

Je vous mets en dessous un fichier word contenant le code SQL que j'ai écrit séparé en paragraphe sur les occurences du SI (je pensais qu'il était possible de joindre jusqu'à 9 arguments dans une fonction si), ainsi que le document excel sur lequel je travaille. Les valeurs sont à importer dans la colonne I de ma feuille "Pricer production" depuis la colonne I cellule I2 de ma feuille production.

PS: Si j'avais dans un premier temps travaillé le fichier avec une boucle VBA je ne suis pas arrivé à crée les boucles en effectant des valeurs moyennes. Je vous mets quand même la code que j'ai écrit avec l'aide de l'un des membres

En vous remerciant par avance de votre aide !!

A tous je me trouve dans l'impasse suite à l'atteinte du maximum d'argument dans ma fonction "SI(ET(OU" imbriquée.

Je poursuivrai quand même dans cette optique de formule, mais e faisant appel à des tables de décisions, ce qui serait du coup plus facile aussi à maintenir par la suite.

Ta fonction est tellement complexe qu'il faudrait nous dire par des phrases quel est l'objectif de calcul à atteindre et de quoi dépend ce calcul.

Il peut aussi être utile de faire appel à un TCD.

Autre solution en VBA, utiliser un dictionnaire en combinant les hypothèses.

Pas de nouvelles ?

J'ai trouvé une code en SQL merci à toi du temps consavré

Rechercher des sujets similaires à "test logique maximum caracteres atteints"