Syntaxe VB

B

Bennn

Guest
Bonjour à toutes et à tous,

Depuis quelques temps que je fréquen,te ce forum j'ai fait pas mal de progrès mais, là j'ai un petit souci. j'ai une formule de Sumif dans laquelle j'ai intégré une variable pour la plage.
l'ennui est que des guillemets sont de trop. Alors qu'il me les faut pour les case, je ne peux pas déclarer les noms à cause des '!'
J'aimerais donc savoir comment pourrais je enlever les guillemts ou si une autre solution existe, je suis aussi preneur.
Merci de votre aide
Select Case ComboBox7

Case Worksheets(1).Cells(1, 1)
zz = 'tableau!réf1'

Case Worksheets(1).Cells(1, 2)
zz = 'tableau!réf2'
end select

Lsum = Evaluate('SUMIF( zz , ''' & Me.ListBox1.List(Me.ListBox1.ListCount - w) & ''',j2:j' & Derlign1 & ')')
 

myDearFriend!

XLDnaute Barbatruc
Bonjour Bennn, le Forum,

Pour ma part, je te conseillerais plutôt de passer par WorksheetFunction.SumIf(), à mon avis, beaucoup plus facile à mettre en oeuvre que par un Evaluate() de la formule comme tu tentes de le faire... Ca s'utlise comme ça :
Valeur = WorksheetFunction.SumIf(Range('A1:A10'), '>3', Range('B1:B10'))
Donc pour ton problème, je tenterais quelque chose comme ça :
Dim zz As String
Dim
Derlign1 As Long
Dim
Lsum As Integer        ''Integer' peut-être à adapter là
Dim w As Byte                 ''Byte' peut-être à adapter là
      ...
      ...
      ...
      Select Case ComboBox7
      Case Worksheets(1).Cells(1, 1)
            zz = 'réf1'
      Case Worksheets(1).Cells(1, 2)
            zz = 'réf2'
      End Select
     
      Lsum = WorksheetFunction.SumIf(Range(zz), Me.ListBox1.List(Me.ListBox1.ListCount - w), _
                  Range('J2:J' & Derlign1))
Cordialement,
 

Discussions similaires