Erreur set range

Bonjour,

lorsque que je souhaite définir la feuille de mon range, j'obtiens une erreur au niveau de Set a et Set b.

Auriez-vous une solution ?

merci d'avance

Sub test()
Dim ws As Worksheet, wc As Worksheet
Dim nbsemaines As Integer
Dim Lastrow As Integer
Dim a As Range, b As Range

nbsemaines = Application.InputBox("Nombre de semaines") + 2

Set ws = ThisWorkbook.Sheets("TABBESOIN")
Set wc = ThisWorkbook.Sheets("Priorities")

Lastrow = ws.Cells(Rows.Count, 1).End(xlUp).Row

Set a = ws.Range(Cells(1, 3), Cells(Lastrow, nbsemaines))
Set b = ws.Range(Cells(1, 1), Cells(Lastrow, 1))

Set criteria = wc.Range("A3")

Data1 = a.Address
Data2 = b.Address
crite = criteria.Address

wc.Range("AA3").Formula = "=sumproduct((" & Data2 & " = " & crite & ") *( " & Data1 & " ))"

End Sub

Bonjour ApprentiVBA, bonjour le forum,

Essaie comme ça :

Set a = ws.Range(ws.Cells(1, 3), ws.Cells(Lastrow, nbsemaines))
Set b = ws.Range(ws.Cells(1, 1), ws.Cells(Lastrow, 1))

Merci beaucoup

Par contre au niveau du résultat de ma formule je n'ai pas celui escompté :

=SOMMEPROD(($A$1:$A$148 = $A$3) *( $C$1:$G$148 ))

je souhaiterais :

=SOMMEPROD((TABBESOIN!$A$1:$A$148 = $A$3) *(TABBESOIN! $C$1:$G$148 ))

Re,

Désolé, j'suis nul en formules...

Autre tentative mais toujours un problème au niveau de la formule SUMPRODUCT

Sub test()
Dim ws As Worksheet, wc As Worksheet
Dim nbsemaines As Integer
Dim a As Range, b As Range
Dim chaine As String
nbsemaines = Application.InputBox("Nombre de semaines") + 2

Set ws = ThisWorkbook.Sheets("TABBESOIN")
Set wc = ThisWorkbook.Sheets("Priorities")

WSLastrow = ws.Cells(Rows.Count, 1).End(xlUp).Row
WCLastrow = wc.Cells(Rows.Count, 1).End(xlUp).Row

Set a = ws.Range(ws.Cells(1, 3), ws.Cells(WSLastrow, nbsemaines))
Set b = ws.Range(ws.Cells(1, 1), ws.Cells(WSLastrow, 1))

For i = 3 To WCLastrow
        chaine = wc.Range("A" & i).Value
        wc.Range("AA" & i).FormulaR1C1 = "=SUMPRODUCT(" & a & "*(" & b & "=" & chaine & "))"
    Next i
 End Sub
Rechercher des sujets similaires à "erreur set range"