Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

machin

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

Bonjour,

Un grand merci Bruno, JCGL, et Draneb .
Je vais essayer de comprendre vos propositions
Je reviens si besoin

Cordialement
 
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
 

Pièces jointes

  • mouarf3.png
    946 bytes · Affichages: 72
  • mouarf3.png
    946 bytes · Affichages: 77

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
C

Compte Supprimé 979

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

Salut Néné

C'est ça de profiter du soleil sur sa terrasse en regardant la mer
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…