Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion tanerbus
  • 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 !

T

tanerbus

Guest
bonjour sous excel j'ai fait une formule

=SOMME.SI(SI(NBCAR(C9)=3;feuil3!F:F;feuil3!G:G);C9;feuil3!$T:$T)

cette formule est un peut long est compliquer pour un utilisateur basic
j'aimerais donc la crée en vba un fonction pour obtenir le résultat suivant :

=formule(C9)

merci
 
Dernière modification par un modérateur:
Re : formul en vba

Salut,tanerbus,le Forum

la traduction de votre Formule en Vb a l'aide de l'enregistreur évidemment ça donne ca :
Code:
Sub Trd_Frmle()
    ActiveCell.FormulaR1C1 = _
    "=SUMIF(IF(LEN(R[-6]C)=3,Feuil3!C[3],Feuil3!C[4]),R[-6]C,Feuil3!C20:C[17])"
End Sub

quant au resultat je te laisse le soin d'éssayé

Cordialement
 
Re : formul en vba

ma formule additionne les chiffres de la colonne de la colonne T selon un critère

le critère est si la variable = 3 caractère alors la plage de la somme.si = colonne F sinon colonne G



j'ai tester ca
mais sa marche pas

Public Function fonction(variable As Range)
fonction = SUMIF(IF(LEN(variable)=3,feuil3!C6,feuil3!C7),variable,feuil3!C20)
End Function
 
Re : formul en vba

Un essai de réponse...
Code:
Function Essai(Cellule As Range)
Dim NumCol As Integer
Dim NumLig As Double
Dim Total As Double
    NumCol = 7 + (Len(Cellule.Value) = 3)
    Total = 0
    For NumLig = 1 To 65535
        If Sheets("Feuil3").Cells(NumLig, NumCol).Value = Cellule.Value Then Total = Total + Sheets("Feuil3").Cells(NumLig, 20).Value
    Next NumLig
    Essai = Total
End Function
Ne connaissant pas l'équivalent de "somme.si" en VBA, j'ai écrit un bout de code pour le rempacer, mais son exécution est relativement longue... 🙁
 
Dernière édition:
Re : formul en vba

je te propose ça (si j'ai bien compris) :

Code:
Public Function formul(critere As Range) As Integer

Dim plage  As Range, somme_plage As Range

If Len(critere.Value) = 3 Then
    Set plage = ThisWorkbook.Sheets("Feuil3").Range("F:F")
Else
    Set plage = ThisWorkbook.Sheets("Feuil3").Range("G:G")
End If

Set somme_plage = ThisWorkbook.Sheets("Feuil3").Range("T:T")

formul = WorksheetFunction.SumIf(plage, critere, somme_plage)

End Function

A+
 
Re : formul en vba



je comprend la formule est ces tout a fait sa que je recherche mais malheureusement sa ne marche pas je ne ces pas pourquoi


celle la marche très bien, même si la formule me parais moins claire mais bon sa ira.



je tien remercier tout le forum www.excel-downloads.com pour cette efficacité
 
Re : formul en vba

Bonsoir,

Peut être ce code te servira. On ne sait jamais.

Code:
ActiveCell.Formula = "=IF(LEN(R9C3)=3,SUMIF(Feuil3!C6,R9C3,Feuil3!C20),SUMIF(Feuil3!C7,R9C3,Feuil3!C20))"
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…