EXCEL à VBA

Résolu
Bonjour,

je travaille sur excel et vba, je voudrai savoir comment intégrer la fonction countif (nb.si) dans l'éditeur VBA.
J'en ai besoin, parce que je fais une boucle et dans le calcul il y a countif.

Merci d'avance
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. erreur de ma part, ça marche !!
    OUF !!!
    0
    1. c'est bon, les parenthèses étaient mal placées.
      Merci Michel_m
      est ce que je peux encore abusé de ton aide?

      quand j'écris:

      Function Conso_jour(numero_colonne As Integer, utilite As String)

      ' Déclaration des variables

      Dim somme As Integer
      Dim a As Integer
      Dim i As Integer

      ' Boucle de calculs

      For i = 6 To 51 Step 3
      If Application.CountIf(Range(ListeOp), Cells(i, numero_colonne)) = 0 Then
      a = 0

      ElseIf Application.CountIf(Range(ListeEqt), Cells(i + 1, 1)) = 0 Then
      a = 0

      Else: a = Debit(Cells(i, numero_colonne), Cells(i + 1, numero_colonne))

      End If

      somme = somme + a
      a = 0

      Next

      Conso_jour = somme

      End Function

      il n'arrive pas à calculer, je ne sais pas ou est l'erreur, je ne suis pas sure qu'il sache qu'elle est la colonne selectionnée pour le calcul.
      pourtant c'est un paramètre de la fonction.
      0
      1. Contributeur
        si listeop est un nom de variable
        Application.CountIf(Range(ListeOp), Cells(i, numero_colonne)) = 0 Then

        si listeop est un nom de groupe de cellule
        Application.CountIf(Range("ListeOp"), Cells(i, numero_colonne)) = 0 Then
        edit: 14:23h
        effectivement, je m'étais planté dans les parenthèses (et encore maintenant... )Donc, excuses moi pour mon coup de gueule.
        0
        1. non, désolé, je croyais que ça marchait mais non!! il met la ligne en rouge mais je ne comprends pas pourquoi, c'est pour ça que j'ai cru que c'était countif.

          voilà ce que j'ai écrit (numero_colonne est un paramètre de la fonction)

          For i = 6 To 51 Step 3
          If Application.CountIf(Range(ListeOp, Cells(i, numero_colonne)) = 0 Then
          a = 0
          ElseIf Application.CountIf(Range(ListeEqt, Cells(i+1,1)) = 0 Then
          a = 0
          Else: a = Debit(Cells(i, numero_colonne), Cells(i + 1, numero_colonne), Vapeur)

          End If

          somme = somme + a
          a = 0

          Next
          0