Recherche d'un mot et addition des répétitons sur plage de valeurs

baptbapt

XLDnaute Occasionnel
Bonjour

voila la petite formule que je doit passé en VBA
toute simple bien sur
elle recherche le nom entry dans ma colonne et additionne le nombre de fois que je l'ai, durant un interval de valeur

=SOMMEPROD(($C$5:$C$1147>H5)*($C$5:$C$1147<=I5)*($E$5:$E$1147="Entry"))

http://cjoint.com/?hflumxOzFY

Je joint la page avec les valeurs

Comment la convertir en VBA
 
Dernière édition:

baptbapt

XLDnaute Occasionnel
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

Si quelqu'un a une autre méthode, qui serait adaptable en VBA

du genre

boucle d'itération
if heure colonne A > heure colonne B then
if heure colonne A < heure colonne C then
verifier si on a entry et je les sommes
else
passé a la plage suivante
end if
else
passé a la plage suivante
end if
end sub

désolé c'est juste un exemple

valeur de départ 12:01:03 colonne A

valeur colonne B 12:00:00
valeur colonne c 12:01:00

-->A>B donc Ok
mais A>C donc faux
on passe a la plage suivante

colonne B 12:01:00
colonne C 12:02:00

-->A>B donc Ok
et A<C donc Ok
et compte le nombre entry

...
 

baptbapt

XLDnaute Occasionnel
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

Voila en VBA, se que sa doit donner, amis je ne sait pas comment faire le somme du nombre d'entry et bien sur savoir si c'est entry or exit

Sub entry()
Dim i As Variant
Dim g As Range
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)

'nettoyer avant de recommencer'
Range("G5:G" & Range("G65536").End(xlUp).Row).Select
Selection.ClearContents
Range("G5").Select

'calculs en boucle sur toutes les cellules de 1 à i'
For Each g In Range("G5:G" & i + 4)
If Range("A" & g.Row).Value > Range("D" & g.Row).Value Then
If Range("A" & g.Row).Value > Range("E" & g.Row).Value Then
Next g
Else
'calcul somme des entry
End If
Else
Next g
End If
Next g
End Sub
 

porcinet82

XLDnaute Barbatruc
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

re baptbapt,

Pas sur d'avoir tout compris, mais j'ai modifier le code pour que ca fasse ce que j'ai compris, meme si dans ton second post tu parles des colonnes A, B eet C et que dans le début de code que tu proposes, ca ne correspond pas.

PHP:
Sub entry()
Dim i As Variant
Dim g As Range, x%
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
'nettoyer avant de recommencer'
Range("G5:G" & Range("G65536").End(xlUp).Row).Select
Selection.ClearContents
Range("G5").Select
'calculs en boucle sur toutes les cellules de 1 à i'
For Each g In Range("G5:G" & i + 4)
    If Range("A" & g.Row).Value > Range("D" & g.Row).Value Then
        If Range("A" & g.Row).Value < Range("E" & g.Row).Value Then
            x = x + 1 'calcul somme des entry
        End If
    End If
Next g
MsgBox "il y a " & x & "entry"
End Sub

Je te laisse regarder les modif, si tu as des questions n'hesite pas.

@+
 

baptbapt

XLDnaute Occasionnel
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

oui je sait les cellules ne correspondent pas, c'est que pour me faciliter la tache, j'ai recréée une page excel comprenant uniquement la plage de donnée que je veu utiliser, plus simple.

Je vien de tester ton prog, mais il me renvoi le valeur 4 entry, alors que j'en ai beaucoup plus, et ne me note aucune valeur dans ma colonne G

http://cjoint.com/?hfoVJVawnK

voila la page simplifier

en G, il faut mettre le macro qui doit calculer
=SOMMEPROD(($C$5:$C$1147>H5)*($C$5:$C$1147<=I5)*($ E$5:$E$1147="Entry"))

en H, c'est les données que l'on devrait avoir réellement

en A, c'est l'heure de passage de l'avion dans un secteur(j'ai retiré la colonne du secteur)
en B, la situation de l'avion Entry or Exit

en D et E, les heures de comparaisons
je regarde combien d'avion sont Entry durant chaque interval d'une minute

Pour plus de détail, je suis la
 
Dernière édition:

porcinet82

XLDnaute Barbatruc
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

re,

Heu... là je pige pas tout sur ta feuille excel!!!
Tu dis dans ton code,
Si A>D alors
Si A<E alors c'est OK

Or sur ta feuille, dès la seconde ligne tu as en colonne A 15:02:32, en colonne D 15:02:00 et en colonne E 15:03:00

Donc tu as bien A>D mais en aucun cas A<E, donc pourquoi mets tu 1 dans la colonne Entry (colonne H) ???

Tiens moi au courant, j'ai du raté quelque chose.

@+
 

baptbapt

XLDnaute Occasionnel
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

Il ne faut pas se fier au ligne, j'avais oublié de le dire.

les lignes de départ, ne correspondent pas au ligne d'interval pour les calculs

l'avion en A6 est dans l'interval D7/E7
mais pourrait etre dans un autre

ce que je recherche, c'est combien d'avion est dans quel interval, il se trouve

Les bases de mon programme sont fausses.
Il faudrait que je compare l'ensemble de mes valeurs de la colonne A par rapport a la colonne D, puis par rapport a la colonne E.

sur mon prog, je comparait les valeur suivant les lignes, donc résultat, on a bien 4 Entry.
 
Dernière édition:

porcinet82

XLDnaute Barbatruc
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

re,

J'ai modifié la macro et cette fois ca devrait le faire :
PHP:
Sub entry()
Dim i As Variant
Dim g As Range, x%
Range("G5:G" & Range("G65536").End(xlUp).Row).Select
Selection.ClearContents
For k = 5 To Range("A65536").End(xlUp).Row
    For Each g In Range("D5:D" & i + 4)
        If Cells(k, 1).Value > Range("D" & g.Row).Value Then
            If Cells(k, 1).Value < Range("E" & g.Row).Value Then
                Cells(g.Row, 7).Value = Cells(g.Row, 7).Value + 1
                Exit For
            End If
        End If
    Next g
Next k
End Sub

Par contre je ne trouve pas les même résultats que toi, et je pense que c'est la macro qu a raison. Tiens moi au courant.

@+
 

baptbapt

XLDnaute Occasionnel
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

Moi je n'arrive pas a la lancer, du moins, sa la lance, mais rien ne s'affiche dans les cellules de la colonnes G

Mes calculs sur la colonne H sont exacts, ils ont été réalisées a l'aide de la formules sommeprod, et vérifié un à un par calcul élémentaire.

Il faut comparer l'ensemble des valeurs de la colonne A selon les plages d'interval, puis vérifier si le système est entry ou exit
et les contabiliser
 

baptbapt

XLDnaute Occasionnel
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

Donc faire
If A5:A... > Di then
If A5:A... < Ei then
verifier si Entry et faire la somme sur chaque plage

cela dans une boucle d'itération

Il faut donc comparer toute les valeurs de la colonne A par rapport a D1 et E1
puis l'ensemble des valeurs par rapport a D2 et E2
et ainsi de suite

et ajouter la condition que si des valeurs, se trouvent dans l'interval D'E
verifier qu'ils sont Entry dans la colonne B
et en faire la somme
 

baptbapt

XLDnaute Occasionnel
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

C'est bon, j'ai réussi a le faire tourner, il manquait l'itération, mais je sais pourquoi les valeurs ne sont pas les bonnes.

La macro, ne fait pas la différence entre entry et exit.
elle les additionne directement

Voila la macro modifier, mais il reste a déterminer comment prendre en compte uniquement les entry

Sub entry()
Dim i As Variant
Dim g As Range, x%

'Saisie du nombre d'itération de la boucle
Do
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
Loop Until (Val(i) > 0) And (Val(i) < 257)

Range("G5:G" & Range("G65536").End(xlUp).Row).Select
Selection.ClearContents

For k = 5 To Range("A65536").End(xlUp).Row
For Each g In Range("D5:D" & i + 4)
If Cells(k, 1).Value > Range("D" & g.Row).Value Then
If Cells(k, 1).Value < Range("E" & g.Row).Value Then
Cells(g.Row, 7).Value = Cells(g.Row, 7).Value + 1
Exit For
End If
End If
Next g
Next k
End Sub
 

porcinet82

XLDnaute Barbatruc
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

Salut baptbapt,

J'allais justement regardé ton problème, je répondais à d'autres posts avant car je n'ai plus acces a ton fichier se trouvant sur Cjoint.
Je n'avais pas compris qu'il fallait tenir compte de la colonne B et donc du Entry. En rajoutant une condition de la manière suivante 'si mes souvenirs sont bon puisque je ne plus tester) ca devrait passer :

PHP:
If Cells(k, 1).Value < Range("E" & g.Row).Value Then
      If Cells(k, 2).Value = "Entry" Then
            Cells(g.Row, 7).Value = Cells(g.Row, 7).Value + 1
            Exit For
      End If
End If

@+
 

baptbapt

XLDnaute Occasionnel
Re : Recherche d'un mot et addition des répétitons sur plage de valeurs

Sub ext()
Dim i As Variant
Dim g As Range, x%

'Saisie du nombre d'itération de la boucle
Do
i = InputBox("Indiquez le nombre de valeurs à caluler de 1 à 256", "Nombre de valeurs", 90)
Loop Until (Val(i) > 0) And (Val(i) < 257)

Range("J5:J" & Range("J65536").End(xlUp).Row).Select
Selection.ClearContents

For k = 5 To Range("A65536").End(xlUp).Row
For Each g In Range("D5:D" & i + 4)
If Cells(k, 1).Value > Range("D" & g.Row).Value Then
If Cells(k, 1).Value < Range("E" & g.Row).Value Then
If Cells(k, 2).Value = "Exit" Then
Cells(g.Row, 10).Value = Cells(g.Row, 10).Value + 1
Exit For
End If
End If
End If
Next g
Next k
End Sub

et voila, sa marche super bien.
dommage qu'on ne puisse pas utiliser exit, pour le nom de la macro
enfin

merci
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 344
Membres
102 865
dernier inscrit
FreyaSalander