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

Fermé
Carnage029 - 3 mai 2012 à 16:10
eriiic Messages postés 24452 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 - 4 mai 2012 à 21:44
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

Rastamanbigoud Messages postés 370 Date d'inscription vendredi 4 septembre 2009 Statut Membre Dernière intervention 12 septembre 2013 91
3 mai 2012 à 16:45
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
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
ccm81 Messages postés 10463 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 21 septembre 2022 2 315
4 mai 2012 à 14:40
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24452 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 7 133
Modifié par eriiic le 4/05/2012 à 22:01
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