VBA Extraire donnée via CBBOX sur TEXTBOX

Youpi Ouai!

XLDnaute Nouveau
Bonjour à tous,

Voilà je cherche à faire apparaitre dans une textbox une donnée extraite d'une feuille excel dont le critère est apporté dans une CbBox
N'arrivant pas à trouvé la bonne syntaxe j'ai donc consulté ce forum et une solution est proposée lors d'une discussion en 2016 intitulée :XL 2013 Somme SI dans Textbox avec critere dans Combobox.
J'ai donc repris point par point la solution proposée mais rien y fait ma textBox affiche 0

Voici donc la syntaxe utilisée:

Sub ComboBox11_Change()

Dim LaRecherche As String
Dim Val_11

LaRecherche = Application.WorksheetFunction.SumIf(Sheets("REF.FOUR.").Range("C:C"), Val_11, Sheets("REF.FOUR.").Range("A:A"))
TextBox11 = LaRecherche

End Sub

Pour info la colonne C à pour donnée du texte et la colonne à des chiffres. Cependant lorsque j'utilise la fonction directement sur EXCEL ça fonctionne.

LA CBBox et la TextBox se trouvent dans une multipage

Quelqu'un sera-t'il me dire où est mon erreur?

Par avance Merci.
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Youpi Ouai! et bienvenue su XLD

À quoi correspond la variable Val_11?? Et tu peux enlever Application, WorksheetFunction.SumIf suffit.

Dim Val_11 As Range , LaRecherche

Set Val_11 = Range("B2")
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

On peut aussi conserver Application (si on aime bien limiter le nombre de caractère et faire d'une pierre deux coups ;) )
VB:
Sub a() 'c'est un bout de macro pour illustrer mon propos
Dim larech$
With Application
.ScreenUpdating = False
    larech = .Sum(Range("A1:A10"))
    MsgBox larech
End With
End Sub
 

Youpi Ouai!

XLDnaute Nouveau
Bonsoir à tous, et merci de pour vos commentaires et éclairages.

Désolé de répondre si tardivement mais j'était au travail.

Pour répondre à Lone-wolf la variable est la solution proposée par naru 31 donc le commentaire était le suivant:

Salut,

Je pense qu'il te faut déclarer ta ComboboxT1 en variable, essaie ça :

Private Sub ComboboxT1_Change()
Dim LaRecherche As String
Dim Val_T1

LaRecherche = Application.WorksheetFunction.SumIf(Sheets("Budget 2016").Range("A:A"), Val_T1, Sheets("Budget 2016").Range("F:F"))
TextBoxOldFrom = LaRecherche
End Sub

La solution convenant à le demandeur et correspondant à cet que je recherchait, j'ai donc calqué cette syntaxe et me suis suis appliqué à modifier seulement les noms de la CBB de la Texte Box des feuilles et des ranges
 

Youpi Ouai!

XLDnaute Nouveau
Re bonjour tous,

Après votre interpellation sur l'opportunité de la variable Val_11 et une bonne nuit de sommeil, je l'ai retiré et en effet ça marche.

Je ne comprends pas pourquoi naru 31 à considéré la nécessite de cette variable.

Quoi qu'il en soit ma procédure est la suivante:

Sub ComboBox11_Change()

Dim LaRecherche As String

LaRecherche =WorksheetFunction.SumIf(Sheets("REF.FOUR.").Range("C:C"), ComboBox11, Sheets("REF.FOUR.").Range("A:A"))
TextBox11 = LaRecherche

End Sub

Si ça peut aider quelqu'un...

Merci à tous.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 885
Membres
101 830
dernier inscrit
sonia poulaert