Réduire le nombre de formule dans un fichier

  • Initiateur de la discussion Initiateur de la discussion machin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

machin

XLDnaute Nouveau
Bonjour à tous,

Je cherche à réduire le nombre de formule dans un fichier, soit par table de données soit par VBA mais mes capacités sont plutôt limitées dans le domaine.
Les données initiales sont de type binaire (0,1) tableau A5:AE15. Le résultat est fonction d'une table, tableau AG5:BI15.
Je m'explique 3 données initiales, 8 combinaisons possibles et une valeur affectées pour chaque combinaison (la table est située en AA22:AE29)
données :0,0,0 résultat 11
données :0,0,1 résultat 8
données :0,1,0 résultat 13
données :0,1,1 résultat 21
données :1,0,0 résultat 20
données :1,0,1 résultat 24
données :1,1,0 résultat 3
données :1,1,1 résultat 26
et pour traiter chaque résultat j'applique une formule NB.SI qui est très lourde a modifier et a vérifier.
Exemple: A5=1, B5=0, C5=0 alors AG5=20

Merci par avance pour toutes vos réponses
 

Pièces jointes

Re : Réduire le nombre de formule dans un fichier

Salut Machin

C'est une chose à faire en VBA 😉
Voici le code
Code:
Sub Traitement()
  Dim Col As Integer, ColD As Integer, Dlig As Long, Lig As Long
  Dim Val1 As Byte, Val2 As Byte, Val3 As Byte, vResult As Integer
  Dim MyFMat As String, LigF As Long
  ' Récupérer le numéro de la denière ligne remplie
  Dlig = Range("A" & Rows.Count).End(xlUp).Row
  ' Pour chaque ligne
  For Lig = 5 To Dlig
    ' 1ère oclonne de destination
    ColD = Range("AG1").Column
    ' Pour chaque colonne des données d'entrée
    For Col = 1 To Range("AE1").Column - 2
      ' Récupérer les différente valeurs
      Val1 = Cells(Lig, Col): Val2 = Cells(Lig, Col + 1): Val3 = Cells(Lig, Col + 2)
      ' Créer la formule matricielle
      MyFMat = "SUMPRODUCT((AA22:AA29=" & Val1 & ")*(AB22:AB29=" & Val2 & ")*(AC22:AC29=" & Val3 & ")*ROW(AE22:AE29))"
      LigF = 0: LigF = Application.Evaluate(MyFMat)
      vResult = Range("AE" & LigF)
      Cells(Lig, ColD).Value = vResult
      ColD = ColD + 1
      ' Evaleur la formule matricielle
    Next Col
  Next Lig
End Sub

Avec fichier joint 😉

A+
 

Pièces jointes

Re : Réduire le nombre de formule dans un fichier

Bonjour à tous,
Salut Nono,

Peux-tu essayer en AG5 et à droite et vers le bas :
=RECHERCHEV(A5*100+B5*10+C5;$Z$22:$AE$29;6;0)

Après avoir rajouté en Z22 et vers le bas :
=AA22*100+AB22*10+AC22

A + à tous
 

Pièces jointes

Re : Réduire le nombre de formule dans un fichier

Re tous

Hey les gars, un bon moyen de réduire le nombre de formules ...
c'est de ne plus en mettre du tout ... comme j'ai fais mouarf3.png
 

Pièces jointes

  • mouarf3.png
    mouarf3.png
    946 bytes · Affichages: 75
  • mouarf3.png
    mouarf3.png
    946 bytes · Affichages: 82
Re : Réduire le nombre de formule dans un fichier

Bonjour.

Une formule plus simple, en attendant mieux :
En AG5 à recopier en bas et à droite :
=DECALER($AE$22;BINDEC(A5&B5&C5);0)
Ou, sans utiliser la table
=DECALER($B$1;0;BINDEC(A5&B5&C5))

Edit : Bonjour à tous. Un peu en retard, moi ! Faudra que je pense à rafraîchir... Un jour 🙂
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour