[VBA] Boucle complexe, je ne sais pas faire..

Bonjour,

Je cherche à appliquer une formule excel avec une boucle, malheureusement je ne sais pas du tout comment faire...

En fait j'ai dans une de mes feuille appelé "Dates" un tableau de deux colonnes comme suit: (et nomé "mamat")

123 | 1
234 | 2
184 | 3

notons que datef = 123
datet = 184

J'aimerai appliquer cette formule pour toutes les dates comprises entre datef et datet (datef non comprise)

=SI(OU((K10<(RECHERCHEV(datet;'Dates'mamat;2;FAUX)))*ET(J10=datet));1;0)

je ne sais pas si c'est possible, j'ai entendu parler de VBA mais j'avoue que je ne sais pas vraiment ce que c'est :s

Merci beaucoup à vous de votre aide.

Cordialement,

5 réponses

  1. Bonjour,

    VBA pour Visual Basic for Application est un langage code comme C ou HTML.

    Dans Excel on appel cela des Macros ceci te permet de travailler t'es fichier excel automatiquement pour des taches répétitives ou carrément crée un logiciel dans excel.

    Ce code est d'un niveau facile a comprendre il y a plein de tutoriel dirige toi vers https://openclassrooms.com/fr/recherche/
    0
    1. Bah le tutoriel n'explique pas comment faire des rechercheV en VBA ou comment utiliser une variable que j'ai défini "à la main", en fait je veux bien essayer d'apprendre le VBA c'est pas un soucis, mais je cherche un moyen de trouver une solution à mon problème (VBA ou pas si c'est possible)... Sans qu'on me dise tout le temps mais c'est facile, parce que tu sais faire et pas moi...
      0
      1. bonjour

        peux tu envoyer ton fichier sans données confidentielles et au format excel 2003 sur cjoint.com (tu joins le lien obtenu à ton prochain message) avec quelques explications sur ce qu tu souhaites obtenir

        bonne suite
        0
        1. Le lien ne va rester que 4 jours car le fichier est trop volumineux pour cijoint

          concernant le format excel 2003 je ne peux pas car il y a des maccros

          http://cjoint.com/?3EepXwYjqNn

          En fait ce que je cherche à faire c'est de savoir combien de nouvelles factures sont arrivées depuis la dernière date de financement (case G7 de Balance) et la datet (case B6)

          En gros toutes les nouvelles factures qui sont rentrées dans le système ET qui sont encore à la datet, mais sans avoir les doublons ou triplets ou autre...

          voilà, j'espère que vous avez compris

          merci beaucoup,

          au cas ou je met mon adresse mail si quelqu'un prend très a coeur mon problème:

          yop029(at)gmail(dot)com
          0
          1. Contributeur
            Bonsoir,

            avec une fonction personnalisée :
            Function nbFact(plage_factures As Range, plage_date As Range, dateF As Date, dateT As Date) As Long 
                Dim lig As Long, dict 
                Set dict = CreateObject("Scripting.Dictionary") 
                For lig = 1 To plage_factures.Cells.Count 
                    If plage_date.Cells(lig, 1) >= dateF And plage_date.Cells(lig, 1) <= dateT Then 
                        If plage_factures.Cells(lig, 1) <> "" And Not dict.Exists(CInt(plage_factures.Cells(lig, 1))) Then 
                            dict(CInt(plage_factures.Cells(lig, 1))) = CInt(plage_factures.Cells(lig, 1)) 
                        End If 
                    End If 
                Next lig 
                nbFact = dict.Count 
            End Function

            ex syntaxe :
            =nbFact(A10:A636;F10:F636;datef;datet)

            La prochaine fois réduit le nombre de ligne à 20, c'est suffisant.
            Je posterai le fichier exemple plus tard, l'upload dure trop...

            eric

            edit: https://www.cjoint.com/?BEewa7A3Uqx
            0