Création de requêtes sur Excel

Bonjour à tous,

J aimerai effectué sur Excel une requête pour des fréquences de radar de navire.

J ai déjà une base de données des radars du port du Havre et je voudrais faire en sorte que je rentre la fréquences et la durée d émission intercepté avec un delta de recherche et que ça me sorte les radar possible

Exemple:

Fq: 3,2 Ghz + ou - 0,2 GHZ

Durée d'émission(DE): 200 ms + ou - 20 ms

radars possible:

Radar: Teta 2003 / navire: la sardine/fq: 3,1Ghz/DE: 215ms

merci à tous😁😁

bonjour,

peux-tu mettre un fichier exemple représentatif de tes données ?

Bonjour, étant donné que la nature des données à traiter est sensible je ne peut pas communiquer ma base de donné

désolé

rebonjour,

mets un fichier représentatif de ton fichier avec quelques lignes de données dans lequel tu remplaces tes données réelles par des données fictives.

Parfait, je n aurai accès à mon PC que ce soir par contre :/

Merci encore

6requette-demo.xlsx (23.06 Ko)

voila en gros le projet,

la base de données peut être sur un autre page

j'ai donné des valeur aléatoire pour les Fq et les DE

à savoir que la base de donné à plus de mille acteur

Bonjour,

une proposition via une macro, d'autres solutions sont possibles sans macro (via formules ou filtres)

14requette-demo.xlsm (31.35 Ko)

ok, merci beaucoup,

je vais tester demain au sur mon pc de bureau avec la vraie base de données, je vous tiendrai au courrant

si je souhait ajouté des colones supplémentaire dans la base de donnés comme la nationalité et le port d'attache, quel parti de la macro dois je modifier?

merci

bonsoir,

voici des commentaires additionnels

Sub aargh()
    Set asd = Sheets("feuil1") 'feuille de recherche et résultats
    Set wsd = Sheets("feuil1") 'base de données
    dl = wsd.Cells(Rows.Count, "o").End(xlUp).Row 'nombre de lignes de données
    td = wsd.Range("o3").Resize(dl - 2, 4).Value 'chargement des données dans une array vba (lignes de 4 colonnes)
    With asd
        fq = .Range("C3") 'fréquence
        efq = .Range("F3") 'écart fréquence
        de = .Range("I3") ' DE
        ede = .Range("L3") ' écart DE
        .Range("B16:I1000").ClearContents
        ctr = 15 ' n° de ligne pour le résultat
        For i = 1 To UBound(td) 'recherche des navires
            If td(i, 1) > fq - efq And td(i, 1) < fq + efq Then 'fréquence dans les limites
                If td(i, 2) > de - ede And td(i, 2) < de + ede Then 'DE dans les limites
                    ctr = ctr + 1 'nouvelle ligne résultat pour navire trouvé en ligne i
                    .Cells(ctr, 2) = td(i, 1) 'fréquence en ligne ctr col B
                    .Cells(ctr, 3) = td(i, 2) 'écriture DE en ligne ctr col C
                    .Cells(ctr, 4) = td(i, 3) 'écriture radar en ligne ctr col D
                    .Cells(ctr, 6) = td(i, 4) 'écriture navire en ligne ctr col F
                End If
            End If
        Next i
    End With
End Sub

en cas d'ajout de colonnes supplémentaires, il faut modifier l'instruction de chargement de l'array VBA et les instructions d'écriture des résultats

Bonjour, j ai pu essayer chez moi hier, tout marchait bien

Le problème c est lors de la recopie du programme, j'ai tout recopier, ajouter une page à part pour la base de données et ajouter quelques ligne, Le programme se lance et se termine sans erreurs mais aucun résultat n'est donné.

16221069326025606879546556454194 16221069596795302261269392160365
16221070527574246813845730037720

Désolé pour la qualité mais mon pc de bureau n est pas relier à internet :/

bonjour,

malgré un torticolis, je ne vois pas d'erreur dans ton code. Donc probablement un problème avec les données... et sans avoir le fichier difficile d'en dire plus.

code adapté à ce que j'ai pu comprendre de l'organisation de ton classeur.

12requette-demo.xlsm (34.22 Ko)

Merci infiniment, ça marche au poil😁😁

Rechercher des sujets similaires à "creation requetes"