Réduire le nombre de formule dans un fichier

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

  • Classeur2.xls
    60 KB · Affichages: 60
  • Classeur2.xls
    60 KB · Affichages: 64
  • Classeur2.xls
    60 KB · Affichages: 61
C

Compte Supprimé 979

Guest
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

  • Machin_ReductionNbFormule.xls
    60.5 KB · Affichages: 42
C

Compte Supprimé 979

Guest
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: 71
  • mouarf3.png
    mouarf3.png
    946 bytes · Affichages: 76

Victor21

XLDnaute Barbatruc
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:

néné06

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

Bonjour à tous

Bon, puisque je l'ai fait, je propose ma version avec retard !

Cordialement à tous
 

Pièces jointes

  • Copie de Classeur2.xls
    44 KB · Affichages: 45
  • Copie de Classeur2.xls
    44 KB · Affichages: 51
  • Copie de Classeur2.xls
    44 KB · Affichages: 50

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16