Prob code vba

Bonjour,

Je vous di tt de suite je suis pas une flèche en vba... mais j'essaye
J'ai tapé un petit programme cependant il me souligne en jaune la partie : For i = 11 To 65536
Je c pas pk ?

QQn pourrai m'aider? Merci

Voila mon code :

Private Sub CommandButton2_Click()

Dim i As Integer
Dim j As Integer
Dim k As Integer

j = 0
For i = 11 To 65536
If i > j Then
For k = 11 To 65536
j = i + 23
Range("Ai") = Sheets("Historique Energie et Pmax").Range("Ak")
Range("Bi") = Sheets("Historique Energie et Pmax").Range("Bk")
Range("Ci") = Sheets("Historique Energie et Pmax").Range("Ck")
Range("Di") = Sheets("Historique Energie et Pmax").Range("Dk")
Range("Ei") = Sheets("Historique Energie et Pmax").Range("Ek")
Range("Fi") = Sheets("Historique Energie et Pmax").Range("Fk")
Range("Hi:Hj").Min = Sheets("Historique Energie et Pmax").Range("Gk")
Range("Hi:Hj").Max = Sheets("Historique Energie et Pmax").Range("Hk")
Range("Ii:Ij").Summary = Sheets("Historique Energie et Pmax").Range("Kk")
Range("Ii:Ij").Max = Sheets("Historique Energie et Pmax").Range("Lk")
Next k
End If
Next i

End Sub
Configuration: Windows XP Internet Explorer 6.0

9 réponses

  1. En VBA le membre de gauche reçoit le résultat de la fonction qui se trouve à droite du signe =
    je n'ai pas tout suivi mais cela ne marche pas parce que ta fonction est à gauche.
    Essaye ça!
    A+

    Dim i As Long
    Dim j As Long
    Dim k As Long
    
    j = 0
    For i = 11 To 65536
        If Cells(i, 1) <> "" And i > j Then
            For k = 11 To 65536
                j = i + 23
                Cells(i, 1) = Sheets("Feuil1").Cells(k, 1)
                Cells(i, 2) = Sheets("Feuil1").Cells(k, 2)
                Cells(i, 3) = Sheets("Feuil1").Cells(k, 3)
                Cells(i, 4) = Sheets("Feuil1").Cells(k, 4)
                Cells(i, 5) = Sheets("Feuil1").Cells(k, 5)
                Cells(i, 6) = Sheets("Feuil1").Cells(k, 6)
                Sheets("Feuil1").Cells(k, 7) = WorksheetFunction.Min(Range("H" & i & ":H" & j))
                Sheets("Feuil1").Cells(k, 8) = WorksheetFunction.Max(Range("H" & i & ":H" & j))
                Sheets("Feuil1").Cells(k, 9) = WorksheetFunction.Sum(Range("I" & i & ":I" & j))
                Sheets("Feuil1").Cells(k, 10) = WorksheetFunction.Max(Range("I" & i & ":I" & j))
            Next k
        End If
    Next i
    0
    1. Exact, j'ai lu le code un peu vite. Bonne remarque.
      0
  2. Je viens d'essayer mais il me dit : affectation a une constante non autorisé en m'indiquant .Min(Range("H" & i & ":H" & j)) =
    0
    1. Oui il faut mettre Range("H" & i &":H" & j) au lieu de Range("Hi:Hj")
      0
      1. Salut,

        Voila la modification de mon code mais il ne comprend tjs pas!!

        Dim i As Long
        Dim j As Long
        Dim k As Long

        j = 0
        For i = 11 To 65536
        If Cells(i, 1) <> "" And i > j Then
        For k = 11 To 65536
        j = i + 23
        Cells(i, 1) = Sheets("Historique Energie et Pmax").Cells(k, 1)
        Cells(i, 2) = Sheets("Historique Energie et Pmax").Cells(k, 2)
        Cells(i, 3) = Sheets("Historique Energie et Pmax").Cells(k, 3)
        Cells(i, 4) = Sheets("Historique Energie et Pmax").Cells(k, 4)
        Cells(i, 5) = Sheets("Historique Energie et Pmax").Cells(k, 5)
        Cells(i, 6) = Sheets("Historique Energie et Pmax").Cells(k, 6)
        WorksheetFunction.Min(Range("Hi:Hj")) = Sheets("Historique Energie et Pmax").Cells(k, 7)
        WorksheetFunction.Max(Range("Hi:Hj")) = Sheets("Historique Energie et Pmax").Cells(k, 8)
        WorksheetFunction.Sum(Range("Ii:Ij")) = Sheets("Historique Energie et Pmax").Cells(k, 9)
        WorksheetFunction.Max(Range("Ii:Ij")) = Sheets("Historique Energie et Pmax").Cells(k, 10)
        Next k
        End If
        Next i

        Il ne comprend pas cette partie : .Min(Range("Hi:Hj"))
        Est ce possible d'écrire Range("Hi:Hj")
        0
        1. Pour les fonctions, tu peux utiliser WorksheetFunction.Min(Range("H11:H20")) le calcul sera plus rapide.
          Idem avec Max et Sum
          0
          1. Ok merci pour tes conseils ;) ca va m'etre très utile
            Je te dirai si ca marche

            Ciao ;)
            0
            1. Pour les min & max, il te faut comparer les valeurs de cellules une à une et stocker la valeur la plus petite/grande dans une variable. Le mieux est de passer par une boucle.

              Pour la somme, tu boucles de 11 à 20 (compris), et à chaque passage de la boucle tu ajoutes la valeur de la cellule dans une variable.
              0
              1. Merci, en effet c t le problème, par contre je ne sais pas comment effectuer les opérations suivantes avec vba :
                - min(H11:H20)
                - max(H11:H20)
                - somme(H11:H20)

                Merci :D
                0
                1. Essaie de définir tes variables en Long et non en Integer.

                  Il semblerait que tu ai un dépassement de capacité. De mémoire un integer ne peux pas dépasser 32 000 et des poussières.
                  0