vba:Comparer lignes de bdd et afficher résultats

Provence Vintage

XLDnaute Occasionnel
Bonjour le Forum,

j'ai une bdd avec en première ligne des valeurs à comparer avec les autres lignes de ma bdd de l4 à l65536.
Je voudrais afficher les lignes identiques dans une ListBox.

Cette première ligne comprends plusieurs plages de comparaison::p

plage1 = Colonne C (= Prix), qui doit être comparé avec les autres lignes avec une recherche à + ou - 5% (car sinon les résultats ne seront jamais identiques)

plage2 = Colonne P à T

plage3 = Colonne V

plage4 = Colonne X à AB

plage5 = Colonne AD

plage6 = Colonne AE à AP; avec une particularité*:eek:

*Si dans ces colonnes la valeur X est trouvée dans la même colonne qu'en ligne 1, alors les autres colonnes peuvent comporter des différences (X ou rien)

Le fichier exemple met en avant que la ligne 143 au minimum devrait sortir comme résultat!:D

Cijoint.fr - Service gratuit de dépôt de fichiers


j'ai quelques pistes via le forum avec:

#"OptionExplicit
OptionCompareText
Dim Plage As Range, Cell As Range, Lastrow As Integer, I AsByte

Dim MyString As String
MyString = Maplage1(maligne, 1) & " " & Maplage1(maligne, 2)
l1 As Long, l2 As Long, MesLignes As Integer

si MyString =MyString2 alors"#

mais je suis trop débutant pour savoir l'écrire.....

Merci d'avance à toutes celles et ceux qui voudront bien m'aider!
bonne journée
 

Provence Vintage

XLDnaute Occasionnel
Re : vba:Comparer lignes de bdd et afficher résultats

fhoest, Bebere, le Fil

Bonjour Bebere,:)

En continuant à bosser dessus, les conclusions pour l'instant sont les suivantes:

1° en recherche automatique comme je souhaitais le faire au départ

si l'on part du postulat suivant:
Trouver les lignes identiques dans le tableau à la ligne 1, maintenant ça fonctionne:D

Trouver les lignes dans le tableau en fonction de plage de critères, "identiques ou approchant" des valeurs de certaines plages de la ligne 1
on trouve jusque maintenant toutes les lignes comprises entre -5 et + 5% de la première plage de comparaison de la ligne 1 à savoir "C1" dans le restant du tableau!

Par la suite, toujours en tenant compte de la première plage de critères "C1", le postulat de départ (mal formulé:() était de continuer la recherche avec les plages de critères suivantes:

Soit avec Plage 1 & Plage 2(col P à T), chercher maintenant en plus dans les lignes correspondantes avec la première plage de critères celles et seulement celles qui vont contenir le résultat en Plage 2 de la ligne 1, à savoir dans l'exemple: "Villa":
Donc toutes les lignes comprises entre -5% et +5% De "C1", et contenant "Villa"

And so on
Toutes les lignes contenant : -5%<"C1">+5% + "Villa" + "T4" . . .

ET Là ça merdouille, par VBA et par le Filtre!:eek:

Si c trop compliqué, on en reste là pour la recherche auto!

:confused: Reste néanmoins la question suivante:
Comment peux t'on améliorer la lecture des résultats de la ListBox,
on ne sait pas en regardant les résultats à quoi correspondent les "X" par exemple(Garage, Parking,...?), Faut'il et est'il possible de le voir par des titres, ou autre solution, double clicker pour obtenir ligne correspondante et me renvoyer vers un de mes USF de consultation avec TextBox et CheckBox?

il faut alors penser la construction en recherche manuelle, soit mon:

2° Recherche manuellement et affiner en fonction des mêmes plages de critères, de la même ligne, dans les autres lignes du tableau les lignes correspondantes

Ce qui si j'ai bien compris se construit avec des combo "en cascade", alimentant une ListBox pour la vision des résultats!

je suis en train de bosser dessus via la recherche du forum;
ma difficulté est pour l'instant pour un critère, d'arriver à définir + colonnes!

Si vous avez des idées par rapport à cet échange!
Merci à tous les deux et au fil pour votre attention!
et votre temps:)

NB: pour l'instant je continu avec le fichier de fhoest car j'ai du mal à me dépatouiller du filtre élaboré, et de là à le convertir en VBA...:rolleyes:

FICHIER REACTUALISE AVEC COMMENTAIRES:
 
Dernière édition:

Provence Vintage

XLDnaute Occasionnel
Re : vba:Comparer lignes de bdd et afficher résultats

Bonsoir bebere, fhoest, le fil,

Bebere,

via le filtre que tu viens de proposer, ça va déjà beaucoup mieux en effet;:D

la seule interrogation reste:
pourquoi MDV apparait alors que ne devrait apparaitre que villa, puisque cette plage de critère était exclusive!? (juste à l'identique de ligne 1)

Comment peux t'on formaliser cela via VBA?
Et faire apparaitre les résultats dans une ListBox?

Merci en tous les cas, on progresse...plutôt bien grâce à vous.
Bonne soirée:)

Re Edit: Oups, je viens d'essayer via alt F11, j'ai un bout de ma réponse via VBA, par contre ça ne donne pas tout à fait les mêmes résultats, et ça merde pareil avec "MDV" ....

Re Re Edit: La ListBox1 au fur et à mesure ne repart pas à vide à chaque Recherche!?


note de ce matin:
#For c = 16 To 20 'p à t
If Tbl(i, c) = "X" Then
Maplage = Maplage & "-" & Tbl(1, c)
Else: Maplage = Maplage & "-"
End If
Next c#
c à ce niveau de code que l'on arrive pas à indiquer la même col que celle ou X en L1 pour le reste du tableau
 
Dernière édition:

fhoest

XLDnaute Accro
Re : vba:Comparer lignes de bdd et afficher résultats

bonsoir
je ne sais pas si ce que je commence a faire et c'est que tu veux mais jette un oeil avant que je continue ( combobox1,2,3,4) apres bouton recherche
Cijoint.fr - Service gratuit de dépôt de fichiers
A+
 

Provence Vintage

XLDnaute Occasionnel
Re : vba:Comparer lignes de bdd et afficher résultats

bonjour fhoest, bebere, le fil,

Non, en effet, l'idée de départ c'est d'avoir la base d'affiché et au fur et à mesure de la sélection des combo, l'affichage s'affine, (en jouant différemment sur les leviers de recherche)

Un peu sur le principe de cet exemple:
Cijoint.fr - Service gratuit de dépôt de fichiers

Bonne journée
a+ sur le fil
 

Provence Vintage

XLDnaute Occasionnel
Re : vba:Comparer lignes de bdd et afficher résultats

Re fhoest,

C juste un fichier sur lequel je faisais des essais,
(je pense que l'on peux garder celui sur lequel on fait les échanges jusque maintenant)
J'ai bien vu les modifs, mais la recherche fourchette de prix ne donne rien,
de plus il va falloir caler les 3 autres combo de recherche!

Est-ce que tu pense que la méthode mise en exemple et bonne, ou vois tu d'autres approches pour la recherche en cascade?

Merci
a+
 

fhoest

XLDnaute Accro
Re : vba:Comparer lignes de bdd et afficher résultats

je pense que l'on peut continuer sur cette voie d'autre part je ne voyais pas les deux listbox comme des fouchettes de prix ainsi il faut revoir un peu le code
je regarderai lorsque j'aurais un peu de temps
A bientot.
 

fhoest

XLDnaute Accro
Re : vba:Comparer lignes de bdd et afficher résultats

inscrit plutot cette ligne qui precede le with listboxlocataire a la place de l'autre
If Range("c" & lgLigDeb).Value > (Critere1 & " €") And Range("c" & lgLigDeb).Value < (Critere2 & " €") Then
With ListBoxLocataire
A+
 

Provence Vintage

XLDnaute Occasionnel
Re : vba:Comparer lignes de bdd et afficher résultats

Bonsoir Bebere,

Qu'un mot, woua!!!
Avant de décripter le code, j'vais prendre une petite cuite :D

Quelques retours à chaud,



j'ai testé avec des données pas présentes dans le tableau et là ça bug,
ici:
#.Cells(2, 1).Value = "= ('bdd vendeurs'! C4 >=" & CCur(Me.TextBox2) & ")*('bdd vendeurs'!C4 <=" & CCur(Me.TextBox1) & ")" '-"#

j'ai mis par exemple:
413526; T2; Appart

Vu que l'on a pas dans la base, il faudrait une sortie msg box n'existe pas!



Ensuite, sur le même principe, j'ai mis 201720; T4; MDV, et là il me sort
2 lignes 1 à 370000 et 1 à 353010!

et là pour corriger, j'avoue que vu le code, ...:confused:

En tous les cas, un grand merci, super boulot
a toute peux être,
sinon bonne nuit

(Doit y avoir de la neige en belgique et les pingouins dehors?):)

Re: Edit

Comprends pas du tout ce bout de code:
#Private Sub UserForm_Initialize()
Dim Rng As Range
With Sheets("bdd vendeurs")
L = .Range("B3").End(xlDown).Row
Set Rng = .Range("A3:AP" & L)
Rng.Name = "Bdd" 'voir nom défini
Tbl = .Range("C4:C" & L)
End With#

Pourquoi B3?
Merci à toi
A bientôt
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : vba:Comparer lignes de bdd et afficher résultats

bonjour Provence,Fhoest
With Sheets("bdd vendeurs")
L = .Range("B3").End(xlDown).Row
Set Rng = .Range("A3:AP" & L)
Rng.Name = "Bdd" 'voir nom défini
Tbl = .Range("C4:C" & L)
End With#
donne un nom aux données de bdd vendeurs' voir nom défini
ta question pourquoi B(il n'y a pas de lignes vides dans la colonne B et limite mieux la base)
en c il y a des formules,tu peux mettre .Range("B65536").End(xlup).Row
et puis il y a la touche F1(le curseur sur le mot et F1)
c'est un début,j'espère aller plus loin avec de l'aide peut être
en même temps je me fais une étude sur le filtre élaboré
à bientôt
 

fhoest

XLDnaute Accro
Re : vba:Comparer lignes de bdd et afficher résultats

bonjour bebere et provence
je suis occuper de bosser sur ton fichier une petite question pourquoi plusieur colonne de x a ab alors que se sont chaque fois les memes villes?
comprend pas alors qu'il sagit du meme bien il sera forcément dans la meme ville?
explique moi svp
A+
 

Discussions similaires

Réponses
3
Affichages
593

Statistiques des forums

Discussions
312 753
Messages
2 091 667
Membres
105 039
dernier inscrit
rouibi