Recherche dans fichier excel et inscription dans un listview

Résolu
Moritus Messages postés 130 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 23 novembre 2011 - 4 avril 2007 à 01:46
Moritus Messages postés 130 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 23 novembre 2011 - 4 avril 2007 à 03:19
Bonjour,


J'ai un bout de code qui permet de chercher un code dans un fichier
excel et qui inscrit le code et ca description dans un listview.


Mon problème ce situe au niveau d'une recherche infructueuse. Si le
code rechercher n'existe pas et que l'on recherche un nouveau code, il
inscrit une ligne vide dans le listview et une ligne avec le bon code...


Je suis certain que c'est une erreur stupide mais je n'arrive pas à trouver


voici le bout de code

<hr size="2" width="100%" />

Private Sub searchlist()

Dim Ligne   As ListItem

Dim xls As EXCEL.Workbook ' déclaration d'une variable objet de type classeur Excel

Dim var As String

Dim i As Integer

Dim a As Integer

Dim temp

var = "1"


 

 Set xls = GetObject(App.Path + "\inventaire\inventaire.xls")
'instanciation de l'objet (qui devient ici le fichier excel indiqué)

 Set Ligne = ListView1.ListItems.Add


 ' export de données

While var <> ""

    If a = 0 Then

        a = 1

    Else

    End If


var = ""

i = i + 1

var = xls.Worksheets(1).Range("A" & CStr(i)).Value


    temp = Right(var, Len(txtaddtolist.Text))

    If temp = txtaddtolist.Text Then

        searchindex = i

        Ligne.Text = xls.Worksheets(1).Range("A" & CStr(i)).Value

        Ligne.SubItems(1) = xls.Worksheets(1).Range("B" & CStr(i)).Value

        lblListMessage.ForeColor = vbBlack

        lblListMessage.Caption = "Inscription trouvé"

         a = a + 1

        txtaddtolist.Text = ""

        txtaddtolist.SetFocus

        Exit Sub

    Else

    End If


Wend

Set xls = Nothing


lblListMessage.ForeColor = vbRed

lblListMessage.Caption = "Aucune inscription n'a été trouver."

txtaddtolist.Text = ""

txtaddtolist.SetFocus

End Sub
<hr size="2" width="100%" />


Merci

@+

2 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
4 avril 2007 à 02:54
Salut

essaie en mettant  Set Ligne = ListView1.ListItems.Add
après cette ligne :      If temp = txtaddtolist.Text Then

(puis un rajout de Set Ligne = Nothing)

Ca donnerai donc ça :

Private Sub searchlist()
Dim Ligne   As ListItem
Dim xls As EXCEL.Workbook ' déclaration d'une variable objet de type classeur Excel
Dim var As String
Dim i As Integer
Dim a As Integer
Dim temp
var = "1"

 
 Set xls = GetObject(App.Path + "\inventaire\inventaire.xls") 'instanciation de l'objet (qui devient ici le fichier excel indiqué)

' export de données
While var <> ""
    If a = 0 Then
        a = 1
    Else
    End If

var = ""
i = i + 1
var = xls.Worksheets(1).Range("A" & CStr(i)).Value

    temp = Right(var, Len(txtaddtolist.Text))
    If temp = txtaddtolist.Text Then
        Set Ligne = ListView1.ListItems.Add ' chgt donc ICI
           searchindex = i
        Ligne.Text = xls.Worksheets(1).Range("A" & CStr(i)).Value
        Ligne.SubItems(1) = xls.Worksheets(1).Range("B" & CStr(i)).Value
        lblListMessage.ForeColor = vbBlack
        lblListMessage.Caption = "Inscription trouvé"
        a = a + 1
        txtaddtolist.Text = ""
        txtaddtolist.SetFocus
        Set Ligne = Nothing               ' et ICI
        Set xls = Nothing               ' déplacé
        
Exit Sub
    Else               ' inutile
    End If

Wend

        Set Ligne = Nothing            
        Set xls = Nothing
lblListMessage.ForeColor = vbRed
lblListMessage.Caption = "Aucune inscription n'a été trouver."
txtaddtolist.Text = ""
txtaddtolist.SetFocus
End Sub

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
3
Moritus Messages postés 130 Date d'inscription jeudi 22 décembre 2005 Statut Membre Dernière intervention 23 novembre 2011
4 avril 2007 à 03:19
Merci

c'est corrigé!!!


Je le savait, c'étais une stupidité
0
Rejoignez-nous