occurence dans listbox

zesuila

XLDnaute Occasionnel
Bonjour à tous
Hier pour la première fois j'ai ENFIN pu aider un excelien

Mais aujourd'hui c'est moi qui demande votre aide
EN faisant une recherche sur la façon de faire une listbox de recherche j'étais tombé su un post de Evelynetfrancois aidé par Vériland et Michel

Lien supprimé

Et voilà ce qui m'a intéressé

Private Sub TextBox1_Change()
Dim Plage As Range, Cell As Range
Dim Recherche As String, Adresse As String
Dim Ligne As Integer, N As Integer
Dim C As Range
ListBox1.Clear
N = 0

Recherche = TextBox1.Value
Range('A1').Select
Ligne = Feuil1.Range('B' & '65536').End(xlUp).Row
Set Plage = Feuil1.Range('B' & '2:' & 'B' & Ligne)
With Plage
Set C = .Find(Recherche)
If Not C Is Nothing Then
Adresse = C.Address
Do
ListBox1.AddItem C.Offset(0, -1), N
ListBox1.List(N, 1) = C
ListBox1.List(N, 2) = C.Offset(0, 1)
ListBox1.List(N, 3) = C.Offset(0, 2)
ListBox1.List(N, 4) = C.Offset(0, 3)
N = N + 1


Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> Adresse
End If
End With

End Sub

Cela concerne donc pour mon cas perso la recherche d'un article sur la colonne B et le résultat se met dans la textbox avec en A le code, en B, la désignation, en C le secteur et en D la page.

Mais voilà, je voudrais que cela concerne la recherche en colonne A
et là j'ai un message d'erreur sur la ligne 'ListBox1.AddItem C.Offset(0, -1), N'
J'ai bien changé la colonne ici
Ligne = Feuil1.Range('B' & '65536').End(xlUp).Row
Set Plage = Feuil1.Range('B' & '2:' & 'B' & Ligne)

mais rien n'y fait
Je crois que cela vient de listebox add item mais je n'arrive pas à trouver.

Alors si Vériland, Michel passe dans le coin (ou un autre ami excelien bien sûr ) je suis preneur. Et si en même temps on peut m'expliquer le truc cela serait génial.

D'avance Merci
Zesuila ;)
 

2passage

XLDnaute Impliqué
Bonjour,

Joli message.. bien rédigé.. avec des remerciements, tout... non ,c'est bien... en même temps, l'objet de ton message, c'est une devinette, c'est ça, hein ? si je résume, c'est 'Devinez donc le texte de mon message d'erreur' :)

Ceci dit, sans autre info, je serais tenté (vu le offset -1 et la notion de colonne A) de dire que tu essayes de donner une valeur qui est à gauche du bord de la feuille

A+
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

essaies comme ceci

Private Sub TextBox1_Change()
Dim Plage As Range, Cell As Range
Dim Recherche As String, Adresse As String
Dim Ligne As Integer, N As Integer, LigneFin as Integer
Dim C As Range
ListBox1.Clear
N = 0

Recherche = TextBox1.Value
Range('A1').Select
LigneFin = Feuil1.Range('A65536').End(xlUp).Row
Set Plage = Feuil1.Range('A2:A' & LigneFin)
With Plage
Set C = .Find(Recherche)
If Not C Is Nothing Then
Ligne = C.Row
Do
ListBox1.AddItem Feuil1.Range('A' & Ligne)
ListBox1.List(N, 1) = Feuil1.Range('B' & Ligne)
ListBox1.List(N, 2) = Feuil1.Range('CA' & Ligne)
ListBox1.List(N, 3) = Feuil1.Range('D' & Ligne)
ListBox1.List(N, 4) = Feuil1.Range('E' & Ligne)
N = N + 1


Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> Adresse
End If
End With

End Sub

Message édité par: Pascal76, à: 27/07/2005 10:29
 

zesuila

XLDnaute Occasionnel
Re bonjour 2passage, Pascal76, le forum

POur 2passage
Oups c'est vrai j'ai oublié de mettre le message d'erreur :woohoo:
le voici :'erreur d'execution 1004'
'erreur définie par l'application ou par l'objet' et ça bloque sur
ListBox1.AddItem C.Offset(0, -1), N

Pour Pascal76
Le tri se fait bien mais toujours sur la colonne désignation, et non pas sur la colonne 'code' (1ere col)

:eek:
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Alors tu es suûr de bien avoir repris le code car là la recherche s'effectue sur la colonne A

J'ai fait une petite edition car j'ai vu un petit truc inutile donc reprends le nouveau code mais cela ne change rien au fait que la recherche s'effectue sur colonne A

Message édité par: Pascal76, à: 27/07/2005 10:30
 

2passage

XLDnaute Impliqué
re,

tant qu'on y est... :
quel est l'interêt de
Feuil1.Range('A' & '2:' & 'A' & Ligne)
par rapport à Feuil1.Range('A2:A' & Ligne)

[Han ! un edit en fourbe pendant que je pose la question...]

ou par rapport à

Feuil1.Range('A2:A' & Feuil1.Range('A65536').End(xlUp).Row)

A+
 

zesuila

XLDnaute Occasionnel
Pour 2passage : Je ne sais pas c'est simplement un copier collé que j'ai fais et mis à ma sauce, étant donné que je ne suis pas un crack du vb
Mais en copiant ta ligne, j'ai le même message d'erreur que ci dessus)

Pour Pascal76 :

J'ai bien noté , mais toujours l'erreur !
Je vous envoie le fichier light pour vous aider à m'aider :p
et pour résumer le bouton 'article' fonctionne bien
le bouton 'code' c'est lui qui ne veut pas bosser pour moi :evil: [file name=savED.zip size=48242]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/savED.zip[/file]
 

Pièces jointes

  • savED.zip
    47.1 KB · Affichages: 20

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Petard il faisait 51 ko zippé

Bon je t'ai retiré des produits tu remettras tout [file name=savED_20050727112207.zip size=50952]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/savED_20050727112207.zip[/file]
 

Pièces jointes

  • savED_20050727112207.zip
    49.8 KB · Affichages: 17

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Petard il faisait 51 ko zippé

Bon je t'ai retiré des produits tu remettras tout [file name=savED_20050727112539.zip size=37960]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/savED_20050727112539.zip[/file]
 

Pièces jointes

  • savED_20050727112539.zip
    37.1 KB · Affichages: 16

zesuila

XLDnaute Occasionnel
B) Génial !
Merci beaucoup Pascal76
J'ai remarqué que tu avais changé pas mal de chose par rapport au bouton 'article'. Si tu as le temps peux tu m'expliquer ce que tu as fait . Pour que je puisse comprendre, analyser, bref pour être un peu moins bête en vba.:sick:
Encore merci ;)
 

PascalXLD

XLDnaute Barbatruc
Modérateur
alors en fait pour ne pas créer 2 Userform de recherche :
j'ai mis une variable public boolean qui prend la valeur true si c'est un article et false si c'est le code (Module 1 pour la déclaration de la variable puis regarder le code des boutons sur feuille 1)

ensuite à l'initialisation de ton userform je modifies le titre en fonction de cette variable

puis sur la macro que tu avais en fonction toujours de cette variable je trie sur la colonne B quand c'est true (articles) et sur la colonne A quand c'est false (code)

Sinon j'ai retiré quelques truc inutiles
Ligne = Feuil1.Range('B' & '65536').End(xlUp).Row
Set Plage = Feuil1.Range('B' & '2:' & 'B' & Ligne)
Par
Ligne = Feuil1.Range('B65536').End(xlUp).Row
Set Plage = Feuil1.Range('B2:B' & Ligne)

Bon là on pourrait peut-être optimiser encore mais pas trop le temps
 

Discussions similaires

Statistiques des forums

Discussions
312 827
Messages
2 092 559
Membres
105 453
dernier inscrit
Xim