erreur d execution

j ais le probleme suivant je n arrive pas a resoudre
Sub processing()
LR = ThisWorkbook.Worksheets(“Analyse”).Range(“A” & Rows.Count).End(xlUp).Row
For i = 11 To LR
"“Erreur execution basic worksheet"423"”

Bonjour @phw11348

L’extrait de code n’est pas assez complet pour se faire une idée mais de toute manière il faut inclure le mode de gestion du VBA. Voir l’aide ici et .

[Ajout 17-02-21 16:10]

Je m’attendais davantage à un classeur contenant le module et des données pour tester…

À voir comme cela il y a tous les _ (caractères de continuation de ligne) qui ne doivent pas être suivis d’une ligne vide (mais c’est peut-être lié au collage dans l’éditeur de ce site).

Et puis les appels à

Application.WorksheetFunction.CountIfs(Range("E11:E" & DT3), sit, Range("F11:F" & DT3), V)

qui doivent être remplacés par :

oService.callFunction("COUNTIFS", array( oRange1, "Texte", oRange2, "String"))

oRange1 et oRange2 ont été créés par exemple comme ceci :

dim oService as object, oRange1 as object, oRange2 as object
oRange1 = thiscomponent.sheets.getByName("Analyse").getCellRangeByName("A1:A10")
oRange2 = thiscomponent.sheets.getByName("Analyse").getCellRangeByName("B1:B10")

oService est créé comme ceci :

oService = CreateUnoService("com.sun.star.sheet.FunctionAccess")

Ici je compte les plages qui contiennent “Texte” et “String”, on pourrait bien sûr utiliser des variables comme dans ton code (sit et V)

Cordialement

bonjour je vous passe le code qui ne marche pas

Rem Attribute VBA_ModuleType=VBAModule

Option VBASupport 1

Sub Add_New_line()

If ThisWorkbook.Worksheets(“Analyse”).Range(“A11”) = “” Then

MsgBox “La Ligne est déja vide”

Exit Sub

End If

ThisWorkbook.Worksheets(“Analyse”).Range(“A12”).EntireRow.Insert

ThisWorkbook.Worksheets(“Analyse”).Range(“A12”) = ThisWorkbook.Worksheets(“Analyse”).Range(“A11”)

ThisWorkbook.Worksheets(“Analyse”).Range(“B12”) = ThisWorkbook.Worksheets(“Analyse”).Range(“B11”)

ThisWorkbook.Worksheets(“Analyse”).Range(“C12”) = ThisWorkbook.Worksheets(“Analyse”).Range(“C11”)

ThisWorkbook.Worksheets(“Analyse”).Range(“D12”) = ThisWorkbook.Worksheets(“Analyse”).Range(“D11”)

ThisWorkbook.Worksheets(“Analyse”).Range(“E12”) = ThisWorkbook.Worksheets(“Analyse”).Range(“E11”)

ThisWorkbook.Worksheets(“Analyse”).Range(“F12”) = ThisWorkbook.Worksheets(“Analyse”).Range(“F11”)

ThisWorkbook.Worksheets(“Analyse”).Range(“A11”) = “”

ThisWorkbook.Worksheets(“Analyse”).Range(“B11”) = “”

ThisWorkbook.Worksheets(“Analyse”).Range(“C11”) = “”

ThisWorkbook.Worksheets(“Analyse”).Range(“D11”) = “”

ThisWorkbook.Worksheets(“Analyse”).Range(“E11”) = “”

ThisWorkbook.Worksheets(“Analyse”).Range(“F11”) = “”

MsgBox “Ligne ajoutée, Veuillez saisir les nouvelles données”

End Sub

Sub processing()

LR = ThisWorkbook.Worksheets(“Analyse”).Range(“A” & Rows.Count).End(xlUp).Row

For i = 11 To LR

'Couple

If ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“C” & i) And _

ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i) <> ThisWorkbook.Worksheets(“Analyse”).Range(“D” & i) Then

ThisWorkbook.Worksheets(“Analyse”).Range(“E” & i) = “Couple”

ThisWorkbook.Worksheets(“Analyse”).Range(“F” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i)

End If

If ThisWorkbook.Worksheets(“Analyse”).Range(“C” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“D” & i) And _

ThisWorkbook.Worksheets(“Analyse”).Range(“C” & i) <> ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i) Then

ThisWorkbook.Worksheets(“Analyse”).Range(“E” & i) = “Couple”

ThisWorkbook.Worksheets(“Analyse”).Range(“F” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“C” & i)

End If

If ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“D” & i) And _

ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i) <> ThisWorkbook.Worksheets(“Analyse”).Range(“C” & i) Then

ThisWorkbook.Worksheets(“Analyse”).Range(“E” & i) = “Couple”

ThisWorkbook.Worksheets(“Analyse”).Range(“F” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i)

End If

'Trio

If ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“D” & i) And _

ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“C” & i) Then

ThisWorkbook.Worksheets(“Analyse”).Range(“E” & i) = “Trio”

ThisWorkbook.Worksheets(“Analyse”).Range(“F” & i) = ThisWorkbook.Worksheets(“Analyse”).Range(“B” & i)

End If

'Libre

If ThisWorkbook.Worksheets(“Analyse”).Range(“E” & i) = “” Then

ThisWorkbook.Worksheets(“Analyse”).Range(“E” & i) = “Libre”

ThisWorkbook.Worksheets(“Analyse”).Range(“F” & i) = “”

End If

Next i

MsgBox “Fin Processing -OK-”

Call Refresh

End Sub

Sub Refresh()

F3 = ThisWorkbook.Worksheets(“Analyse”).Range(“F3”)

F4 = ThisWorkbook.Worksheets(“Analyse”).Range(“F4”)

F5 = ThisWorkbook.Worksheets(“Analyse”).Range(“F5”)

ThisWorkbook.Worksheets(“Analyse”).Range(“F6”) = WorksheetFunction.CountA(Range(“A11:A1048576”))

LR = ThisWorkbook.Worksheets(“Analyse”).Range(“A” & Rows.Count).End(xlUp).Row

'Libre 10

ThisWorkbook.Worksheets(“Analyse”).Range(“G3”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F3), “Libre”)

'Libre 20

ThisWorkbook.Worksheets(“Analyse”).Range(“G4”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F4), “Libre”)

'Libre 30

ThisWorkbook.Worksheets(“Analyse”).Range(“G5”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F5), “Libre”)

'Libre All

ThisWorkbook.Worksheets(“Analyse”).Range(“G6”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & LR), “Libre”)

'Couple 10

ThisWorkbook.Worksheets(“Analyse”).Range(“H3”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F3), “Couple”)

'Couple 20

ThisWorkbook.Worksheets(“Analyse”).Range(“H4”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F4), “Couple”)

'Couple 30

ThisWorkbook.Worksheets(“Analyse”).Range(“H5”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F5), “Couple”)

'Couple All

ThisWorkbook.Worksheets(“Analyse”).Range(“H6”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & LR), “Couple”)

'Trio 10

ThisWorkbook.Worksheets(“Analyse”).Range(“I3”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F3), “Trio”)

'Trio 20

ThisWorkbook.Worksheets(“Analyse”).Range(“I4”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F4), “Trio”)

'Trio 30

ThisWorkbook.Worksheets(“Analyse”).Range(“I5”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F5), “Trio”)

'Trio All

ThisWorkbook.Worksheets(“Analyse”).Range(“I6”) = _

WorksheetFunction.CountIfs(Range(“E11:E” & LR), “Trio”)

'-----------------------//------------

'Numbre

'Libre 10

'For n = 11 To 20

'V = ThisWorkbook.Worksheets(“Analyse”).Cells(2, n)

'ThisWorkbook.Worksheets(“Analyse”).Cells(3, n).Value = _

'Application.WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F3), “Libre”, Range(“F11:F” & 10 + F3), V)

'Libre 20

'ThisWorkbook.Worksheets(“Analyse”).Cells(4, n).Value = _

'Application.WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F4), “Libre”, Range(“F11:F” & 10 + F4), V)

'Libre 30

'ThisWorkbook.Worksheets(“Analyse”).Cells(5, n).Value = _

'Application.WorksheetFunction.CountIfs(Range(“E11:E” & 10 + F5), “Libre”, Range(“F11:F” & 10 + F5), V)

'Libre All

'ThisWorkbook.Worksheets(“Analyse”).Cells(6, n).Value = _

'Application.WorksheetFunction.CountIfs(Range(“E11:E” & LR), “Libre”, Range(“F11:F” & LR), V)

'Next n

'-------------------------/OK/---------

Dim DT3, DT4, DT5, DT6 As Integer

DT3 = ThisWorkbook.Worksheets(“Analyse”).Range(“F3”) + 10

DT4 = ThisWorkbook.Worksheets(“Analyse”).Range(“F4”) + 10

DT5 = ThisWorkbook.Worksheets(“Analyse”).Range(“F5”) + 10

DT6 = ThisWorkbook.Worksheets(“Analyse”).Range(“F6”) + 10

’ Line 3

For n = 11 To 42

V = ThisWorkbook.Worksheets(“Analyse”).Cells(2, n)

If n > 10 And n < 21 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“K1”) '“Libre”

End If

If n > 21 And n < 32 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“V1”) '“couple”

End If

If n > 32 And n < 43 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“AG1”) '“Trio”

End If

ThisWorkbook.Worksheets(“Analyse”).Cells(3, n).Value = _

Application.WorksheetFunction.CountIfs(Range(“E11:E” & DT3), sit, Range(“F11:F” & DT3), V)

If sit = “Libre” Then

ThisWorkbook.Worksheets(“Analyse”).Cells(3, n).Value = _

Application.WorksheetFunction.CountIfs(Range(“B11:D” & DT3), V)

End If

Next n

’ Line 4

For n = 11 To 42

V = ThisWorkbook.Worksheets(“Analyse”).Cells(2, n)

If n > 10 And n < 21 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“K1”) '“Libre”

End If

If n > 21 And n < 32 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“V1”) '“couple”

End If

If n > 32 And n < 43 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“AG1”) '“Trio”

End If

ThisWorkbook.Worksheets(“Analyse”).Cells(4, n).Value = _

Application.WorksheetFunction.CountIfs(Range(“E11:E” & DT4), sit, Range(“F11:F” & DT4), V)

If sit = “Libre” Then

ThisWorkbook.Worksheets(“Analyse”).Cells(4, n).Value = _

Application.WorksheetFunction.CountIfs(Range(“B11:D” & DT4), V)

End If

Next n

’ Line 5

For n = 11 To 42

V = ThisWorkbook.Worksheets(“Analyse”).Cells(2, n)

If n > 10 And n < 21 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“K1”) '“Libre”

End If

If n > 21 And n < 32 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“V1”) '“couple”

End If

If n > 32 And n < 43 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“AG1”) '“Trio”

End If

ThisWorkbook.Worksheets(“Analyse”).Cells(5, n).Value = _

Application.WorksheetFunction.CountIfs(Range(“E11:E” & DT5), sit, Range(“F11:F” & DT5), V)

If sit = “Libre” Then

ThisWorkbook.Worksheets(“Analyse”).Cells(5, n).Value = _

Application.WorksheetFunction.CountIfs(Range(“B11:D” & DT5), V)

End If

Next n

’ Line 6

For n = 11 To 42

V = ThisWorkbook.Worksheets(“Analyse”).Cells(2, n)

If n > 10 And n < 21 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“K1”) '“Libre”

End If

If n > 21 And n < 32 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“V1”) '“couple”

End If

If n > 32 And n < 43 Then

sit = ThisWorkbook.Worksheets(“Analyse”).Range(“AG1”) '“Trio”

End If

ThisWorkbook.Worksheets(“Analyse”).Cells(6, n).Value = _

Application.WorksheetFunction.CountIfs(Range(“E11:E” & DT6), sit, Range(“F11:F” & DT6), V)

If sit = “Libre” Then

ThisWorkbook.Worksheets(“Analyse”).Cells(6, n).Value = _

Application.WorksheetFunction.CountIfs(Range(“B11:D” & DT6), V)

End If

Next n

'-------------------------//-------------

MsgBox “Fin Refresh -Ok-”

End Sub

Provenance : Courrier pour Windows 10