Salut a tous,

Voici un code visual basic, il fonctionne parfaitement mais il est tres lent, au moins 20 secondes . J utilise certainement des commandes trop lourdes.
Une idee? :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
Private Sub CommandButton2_Click()
  Dim y As Integer
  Dim l As Integer
  Dim l2 As Integer
  Dim c2 As Integer
  Dim x As Integer
  Dim o As Integer
  o = 0
  Dim departcol As Integer
  Dim departlig As Integer
  jj = ListBox2.ListCount
  If jj <> 0 Then
    For i = 2 To 100
      For y = 1 To 18
        Sheets("analyse").Cells(i, y) = Null
      Next y
    Next i
    ' un peu de menage avant de mettre les donnees
    x = Sheets("gegevens").Cells(2112, 136)
    l = 1
    For i = 2 To x
      If Sheets("gegevens").Cells(i, 137) = 1 Then
        l = l + 1
        For y = 1 To 18
          Sheets("analyse").Cells(l, y) = Sheets("gegevens").Cells(i, y)
        Next y
      End If
    Next i
    For i = 2 To x
      Sheets("gegevens").Cells(i, 137) = Null
    Next i
    ' remettre les compteurs 0
    Sheets("analyse").Activate
    julien = c
    Unload UserForm2
    Sheets("code").Cells(27, 1) = x96
    Sheets("code").Cells(28, 1) = x06
    Sheets("code").Cells(29, 1) = l - 1
    departcol = 1
    departlig = 11
    For departlig = 11 To 500
      For departcol = 2 To 15 Step 2
        Sheets("tabel").Cells(departlig, departcol) = ""
      Next departcol
    Next departlig
    For i = 11 To 50
      Sheets("tabel").Cells(i, 1) = ""
    Next i
    departcol = 1
    departlig = 11
    For g = 0 To l
      Sheets("tabel").Cells(departlig, departcol) = Sheets("analyse").Cells(g + 2, 18)
      Sheets("tabel").Cells(departlig, departcol + 1) = Sheets("analyse").Cells(g + 2, 6)
      Sheets("tabel").Cells(departlig, departcol + 3) = Sheets("analyse").Cells(g + 2, 8)
      Sheets("tabel").Cells(departlig, departcol + 5) = Sheets("analyse").Cells(g + 2, 11)
      Sheets("tabel").Cells(departlig, departcol + 7) = Sheets("analyse").Cells(g + 2, 13)
      departlig = departlig + 1
    Next g
    o = l - 1 + 11
    Sheets("tabel").Cells(11 + l, departcol) = "Maximum tussen de " & l - 1 & " bladen"
    Sheets("tabel").Cells(11 + l, departcol + 1) = "=max(b11:b" & o & ")"
    Sheets("tabel").Cells(11 + l, departcol + 3) = "=max(d11:d" & o & ")"
    Sheets("tabel").Cells(11 + l, departcol + 5) = "=max(f11:f" & o & ")"
    Sheets("tabel").Cells(11 + l, departcol + 7) = "=max(h11:h" & o & ")"
    Sheets("tabel").Cells(11 + l + 1, departcol) = "Minimum tussen de " & l - 1 & " bladen"
    Sheets("tabel").Cells(11 + l + 1, departcol + 1) = "=min(b11:b" & o & ")"
    Sheets("tabel").Cells(11 + l + 1, departcol + 3) = "=min(d11:d" & o & ")"
    Sheets("tabel").Cells(11 + l + 1, departcol + 5) = "=min(f11:f" & o & ")"
    Sheets("tabel").Cells(11 + l + 1, departcol + 7) = "=min(h11:h" & o & ")"
    Sheets("tabel").Cells(11 + l + 2, departcol) = "Gemiddelde tussen de " & l - 1 & " bladen"
    Sheets("tabel").Cells(11 + l + 2, departcol + 1) = "=GEMIDDELDE(b11:b" & o & ")"
    Sheets("tabel").Cells(11 + l + 2, departcol + 3) = "=GEMIDDELDE(d11:d" & o & ")"
    Sheets("tabel").Cells(11 + l + 2, departcol + 5) = "=GEMIDDELDE(f11:f" & o & ")"
    Sheets("tabel").Cells(11 + l + 2, departcol + 7) = "=GEMIDDELDE(h11:h" & o & ")"
    Sheets("tabel").Select
  Else
    MsgBox ("U moet tenminste een blad kiezen!")
  End If
End Sub
Voila et tant que j y pense encore un autre probleme;
pour cette ligne de code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Sheets("tabel").Cells(11 + l + 2, departcol + 7) = "=GEMIDDELDE(h11:h" & o & ")"
A chaque fois excel affiche #valeur
mais des que je clique sur enter la bonne valeur arrive
c est assez embettant.

Indentations grâcieusement offertes par AlainTech