Fonction execl

Bonjour,
jai 2 feuille excel la feuille BA et la feuille 2018-2019
-dans BA j'ai la colone D qui correspont a la date du debut du contrat
-dans BA j'ai la colone E qui correspont a la date du fin du contrat
-dans 2018-2019 j'ai la colone A qui correspont au mois (jan , fev,.. sous forme 01/01/2018 , 01/02/2018 ....)
jaimerais mettre dans la colone B de la feuille 2018-2019 le nombre de contrat actif (compris entre la date de la colpnne D et E de la feuille BA)
je nai pas reussis a le faire avec une formul alors jai essaye de le faire avec une formule que jai cree en vba mais sa me met une erreure de valeur (#valeur!)
si vous avez uen solution pour une formul existante ou pour arranger mon code je serais ravis sa fais 3 jours je suis dessus
merci bcp



Public Function numberofc(m As Integer) As Integer

Dim x As Integer
Dim z As Integer
dim i As Integer

z = 0

x = Sheets("BA").ListObjects(1).Rows.Count

For i = 2 To x

If Sheets("BA").Cells(D, i) < Sheets("2018-2019").Range(a, m) & Sheets("BA").Range(e, i) >= Sheets("2018-2019").Cells(a, m + 1) Then

z = z + 1

End If

i = i + 1

Next

Sheets("2018-2019").Cells(b, m).Value = z

Debug.Print Var

End Function

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    Peux tu envoyer un bout de ton fichier sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
    1) Tu vas dans https://www.cjoint.com/
    2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
    3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
    4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
    en bleu souligné ; tu le sélectionnes et tu fais "Copier"
    5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse tu fais "Coller".

    Cdlmnt
    1. je vais voire comment on fai sa merci de votre aide
  2. bonjour,

    quelques erreurs de syntaxes :
    For i = 2 To x
    
    If Sheets("BA").Cells(i, 4) < Sheets("2018-2019").Range("A"&m) & Sheets("BA").Range("E"& i) >= Sheets("2018-2019").Cells(m+1,  1) Then
    'cells indique une cellule ligne, colonne "en nombre" (A2 = Cells(2,1)) alors que range s'indique avec colonne, ligne (A2 = Range("A2"))
    z = z + 1
    
    End If
    
    'pas besoin d'incrémenter le compteur (i en l'occurence) dans un For
    
    Next i 'c'est pas mal de dire de quel next tu parles : c'est plus lisible quand tu imbrique plusieurs boucles

    à corriger sur l'ensemble de ton code

    1. mercii bcp je vai corriger