bonjour ,
J'ai une colonne dans une feuille excel, a partir de cette colonne je repli
un listbox
selon le critere que j'ai saisie dans un textBox
avec le code ci dessous , cela fonctionne
Le problème est que le résultat ne contient que l'expression du critere
je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve"
dans mon lisbox , je veux toutes les cellules qui contiennent
etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere
lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click()
Dim c
Dim premier
If txtCritere.Value = "" Then
MsgBox "Vous devez saisir un critère !."
Else
lstResultat.Clear
Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
intI = 0
Do
With lstResultat
.AddItem
.List(intI, 1) = c.Value
.List(intI, 0) = c.Offset(0, -1).Value
Set c = Range("O:O").FindNext(c)
intI = intI + 1
End With
Loop While Not c Is Nothing And c.Address <> premier
End If
End If
lblNbElement = intI & " élements trouvés."
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JB
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0 Me.ListBox1.Clear For Each c In Range([O2], [O65000].End(xlUp)) If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = c.Value Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value i = i + 1 End If Next c
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "eeeeoeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- wrote:
bonjour , J'ai une colonne dans une feuille excel, a partir de cette colonne je rep li un listbox selon le critere que j'ai saisie dans un textBox avec le code ci dessous , cela fonctionne Le problème est que le résultat ne contient que l'expression du crite re je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve" dans mon lisbox , je veux toutes les cellules qui contiennent etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click() Dim c Dim premier If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else
lstResultat.Clear Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xlValu es) If Not c Is Nothing Then premier = c.Address intI = 0 Do With lstResultat .AddItem .List(intI, 1) = c.Value .List(intI, 0) = c.Offset(0, -1).Value Set c = Range("O:O").FindNext(c) intI = intI + 1 End With Loop While Not c Is Nothing And c.Address <> premier End If End If lblNbElement = intI & " élements trouvés." End Sub
Si vous avez une idee Merci René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0
Me.ListBox1.Clear
For Each c In Range([O2], [O65000].End(xlUp))
If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value
i = i + 1
End If
Next c
Function sansAccent(chaine)
codeA = "ÉÈÊËÔéèêëàçùôûïî"
codeB = "eeeeoeeeeacuouii"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
sansAccent = temp
End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- <R...@discussions.microsoft.com> wrote:
bonjour ,
J'ai une colonne dans une feuille excel, a partir de cette colonne je rep li
un listbox
selon le critere que j'ai saisie dans un textBox
avec le code ci dessous , cela fonctionne
Le problème est que le résultat ne contient que l'expression du crite re
je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve"
dans mon lisbox , je veux toutes les cellules qui contiennent
etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere
lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click()
Dim c
Dim premier
If txtCritere.Value = "" Then
MsgBox "Vous devez saisir un critère !."
Else
lstResultat.Clear
Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xlValu es)
If Not c Is Nothing Then
premier = c.Address
intI = 0
Do
With lstResultat
.AddItem
.List(intI, 1) = c.Value
.List(intI, 0) = c.Offset(0, -1).Value
Set c = Range("O:O").FindNext(c)
intI = intI + 1
End With
Loop While Not c Is Nothing And c.Address <> premier
End If
End If
lblNbElement = intI & " élements trouvés."
End Sub
Une solution simple si la liste n'est pas trop longue:
i = 0 Me.ListBox1.Clear For Each c In Range([O2], [O65000].End(xlUp)) If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = c.Value Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value i = i + 1 End If Next c
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "eeeeoeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- wrote:
bonjour , J'ai une colonne dans une feuille excel, a partir de cette colonne je rep li un listbox selon le critere que j'ai saisie dans un textBox avec le code ci dessous , cela fonctionne Le problème est que le résultat ne contient que l'expression du crite re je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve" dans mon lisbox , je veux toutes les cellules qui contiennent etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click() Dim c Dim premier If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else
lstResultat.Clear Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xlValu es) If Not c Is Nothing Then premier = c.Address intI = 0 Do With lstResultat .AddItem .List(intI, 1) = c.Value .List(intI, 0) = c.Offset(0, -1).Value Set c = Range("O:O").FindNext(c) intI = intI + 1 End With Loop While Not c Is Nothing And c.Address <> premier End If End If lblNbElement = intI & " élements trouvés." End Sub
Si vous avez une idee Merci René
-- RG --
bonjour, Pour l'instant je n'ai pas le temps de faire un essai avec ton code par contre je ne comprends pas pourquoi tu supprimes les accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0 Me.ListBox1.Clear For Each c In Range([O2], [O65000].End(xlUp)) If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = c.Value Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value i = i + 1 End If Next c
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "eeeeoeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- wrote:
bonjour , J'ai une colonne dans une feuille excel, a partir de cette colonne je repli un listbox selon le critere que j'ai saisie dans un textBox avec le code ci dessous , cela fonctionne Le problème est que le résultat ne contient que l'expression du critere je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve" dans mon lisbox , je veux toutes les cellules qui contiennent etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click() Dim c Dim premier If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else
lstResultat.Clear Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xlValues) If Not c Is Nothing Then premier = c.Address intI = 0 Do With lstResultat .AddItem .List(intI, 1) = c.Value .List(intI, 0) = c.Offset(0, -1).Value Set c = Range("O:O").FindNext(c) intI = intI + 1 End With Loop While Not c Is Nothing And c.Address <> premier End If End If lblNbElement = intI & " élements trouvés." End Sub
Si vous avez une idee Merci René
bonjour,
Pour l'instant je n'ai pas le temps de faire un essai
avec ton code
par contre je ne comprends pas pourquoi tu supprimes les
accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0
Me.ListBox1.Clear
For Each c In Range([O2], [O65000].End(xlUp))
If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value
i = i + 1
End If
Next c
Function sansAccent(chaine)
codeA = "ÉÈÊËÔéèêëàçùôûïî"
codeB = "eeeeoeeeeacuouii"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
sansAccent = temp
End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- <R...@discussions.microsoft.com> wrote:
bonjour ,
J'ai une colonne dans une feuille excel, a partir de cette colonne je repli
un listbox
selon le critere que j'ai saisie dans un textBox
avec le code ci dessous , cela fonctionne
Le problème est que le résultat ne contient que l'expression du critere
je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve"
dans mon lisbox , je veux toutes les cellules qui contiennent
etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere
lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click()
Dim c
Dim premier
If txtCritere.Value = "" Then
MsgBox "Vous devez saisir un critère !."
Else
lstResultat.Clear
Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
intI = 0
Do
With lstResultat
.AddItem
.List(intI, 1) = c.Value
.List(intI, 0) = c.Offset(0, -1).Value
Set c = Range("O:O").FindNext(c)
intI = intI + 1
End With
Loop While Not c Is Nothing And c.Address <> premier
End If
End If
lblNbElement = intI & " élements trouvés."
End Sub
bonjour, Pour l'instant je n'ai pas le temps de faire un essai avec ton code par contre je ne comprends pas pourquoi tu supprimes les accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0 Me.ListBox1.Clear For Each c In Range([O2], [O65000].End(xlUp)) If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = c.Value Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value i = i + 1 End If Next c
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "eeeeoeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- wrote:
bonjour , J'ai une colonne dans une feuille excel, a partir de cette colonne je repli un listbox selon le critere que j'ai saisie dans un textBox avec le code ci dessous , cela fonctionne Le problème est que le résultat ne contient que l'expression du critere je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve" dans mon lisbox , je veux toutes les cellules qui contiennent etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click() Dim c Dim premier If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else
lstResultat.Clear Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xlValues) If Not c Is Nothing Then premier = c.Address intI = 0 Do With lstResultat .AddItem .List(intI, 1) = c.Value .List(intI, 0) = c.Offset(0, -1).Value Set c = Range("O:O").FindNext(c) intI = intI + 1 End With Loop While Not c Is Nothing And c.Address <> premier End If End If lblNbElement = intI & " élements trouvés." End Sub
Si vous avez une idee Merci René
JB
Bonjour,
Solution rapide:
http://cjoint.com/?cln2hFm6GI
Private Sub CommandButton1_Click() If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else lstResultat.Clear Set c = Range("O:O").Find(Rmp(Me.txtCritere), LookIn:=xlValues) If Not c Is Nothing Then premier = c.Address Inti = 0 Do If sansAccent(Me.txtCritere) = sansAccent(c) Then Me.lstResultat.AddItem Me.lstResultat.List(Inti, 0) = c.Value Inti = Inti + 1 End If Set c = Range("O:O").FindNext(c) Loop While Not c Is Nothing And c.Address <> premier End If End If End Sub
Function Rmp(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïîeouci" codeB = "*********************" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next Rmp = temp End Function
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "EEEEOeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
JB
On 11 fév, 10:00, -- RG -- wrote:
bonjour, Pour l'instant je n'ai pas le temps de faire un essai avec ton code par contre je ne comprends pas pourquoi tu supprimes les accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0 Me.ListBox1.Clear For Each c In Range([O2], [O65000].End(xlUp)) If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = c.Value Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value i = i + 1 End If Next c
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "eeeeoeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- wrote:
bonjour , J'ai une colonne dans une feuille excel, a partir de cette colonne je repli un listbox selon le critere que j'ai saisie dans un textBox avec le code ci dessous , cela fonctionne Le problème est que le résultat ne contient que l'expression du c ritere je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve" dans mon lisbox , je veux toutes les cellules qui contiennent etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click() Dim c Dim premier If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else
lstResultat.Clear Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xl Values) If Not c Is Nothing Then premier = c.Address intI = 0 Do With lstResultat .AddItem .List(intI, 1) = c.Value .List(intI, 0) = c.Offset(0, -1).Value Set c = Range("O:O").FindNext(c) intI = intI + 1 End With Loop While Not c Is Nothing And c.Address <> premier End If End If lblNbElement = intI & " élements trouvés." End Sub
Si vous avez une idee Merci René- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Solution rapide:
http://cjoint.com/?cln2hFm6GI
Private Sub CommandButton1_Click()
If txtCritere.Value = "" Then
MsgBox "Vous devez saisir un critère !."
Else
lstResultat.Clear
Set c = Range("O:O").Find(Rmp(Me.txtCritere),
LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
Inti = 0
Do
If sansAccent(Me.txtCritere) = sansAccent(c) Then
Me.lstResultat.AddItem
Me.lstResultat.List(Inti, 0) = c.Value
Inti = Inti + 1
End If
Set c = Range("O:O").FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
End If
End Sub
Function Rmp(chaine)
codeA = "ÉÈÊËÔéèêëàçùôûïîeouci"
codeB = "*********************"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
Rmp = temp
End Function
Function sansAccent(chaine)
codeA = "ÉÈÊËÔéèêëàçùôûïî"
codeB = "EEEEOeeeeacuouii"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
sansAccent = temp
End Function
JB
On 11 fév, 10:00, -- RG -- <R...@discussions.microsoft.com> wrote:
bonjour,
Pour l'instant je n'ai pas le temps de faire un essai
avec ton code
par contre je ne comprends pas pourquoi tu supprimes les
accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0
Me.ListBox1.Clear
For Each c In Range([O2], [O65000].End(xlUp))
If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value
i = i + 1
End If
Next c
Function sansAccent(chaine)
codeA = "ÉÈÊËÔéèêëàçùôûïî"
codeB = "eeeeoeeeeacuouii"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
sansAccent = temp
End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- <R...@discussions.microsoft.com> wrote:
bonjour ,
J'ai une colonne dans une feuille excel, a partir de cette colonne je repli
un listbox
selon le critere que j'ai saisie dans un textBox
avec le code ci dessous , cela fonctionne
Le problème est que le résultat ne contient que l'expression du c ritere
je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve"
dans mon lisbox , je veux toutes les cellules qui contiennent
etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere
lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click()
Dim c
Dim premier
If txtCritere.Value = "" Then
MsgBox "Vous devez saisir un critère !."
Else
lstResultat.Clear
Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xl Values)
If Not c Is Nothing Then
premier = c.Address
intI = 0
Do
With lstResultat
.AddItem
.List(intI, 1) = c.Value
.List(intI, 0) = c.Offset(0, -1).Value
Set c = Range("O:O").FindNext(c)
intI = intI + 1
End With
Loop While Not c Is Nothing And c.Address <> premier
End If
End If
lblNbElement = intI & " élements trouvés."
End Sub
Si vous avez une idee
Merci René- Masquer le texte des messages précédents -
Private Sub CommandButton1_Click() If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else lstResultat.Clear Set c = Range("O:O").Find(Rmp(Me.txtCritere), LookIn:=xlValues) If Not c Is Nothing Then premier = c.Address Inti = 0 Do If sansAccent(Me.txtCritere) = sansAccent(c) Then Me.lstResultat.AddItem Me.lstResultat.List(Inti, 0) = c.Value Inti = Inti + 1 End If Set c = Range("O:O").FindNext(c) Loop While Not c Is Nothing And c.Address <> premier End If End If End Sub
Function Rmp(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïîeouci" codeB = "*********************" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next Rmp = temp End Function
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "EEEEOeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
JB
On 11 fév, 10:00, -- RG -- wrote:
bonjour, Pour l'instant je n'ai pas le temps de faire un essai avec ton code par contre je ne comprends pas pourquoi tu supprimes les accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0 Me.ListBox1.Clear For Each c In Range([O2], [O65000].End(xlUp)) If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = c.Value Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value i = i + 1 End If Next c
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "eeeeoeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
Cordialement JB
On 10 fév, 17:50, -- RG -- wrote:
bonjour , J'ai une colonne dans une feuille excel, a partir de cette colonne je repli un listbox selon le critere que j'ai saisie dans un textBox avec le code ci dessous , cela fonctionne Le problème est que le résultat ne contient que l'expression du c ritere je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve" dans mon lisbox , je veux toutes les cellules qui contiennent etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click() Dim c Dim premier If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else
lstResultat.Clear Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xl Values) If Not c Is Nothing Then premier = c.Address intI = 0 Do With lstResultat .AddItem .List(intI, 1) = c.Value .List(intI, 0) = c.Offset(0, -1).Value Set c = Range("O:O").FindNext(c) intI = intI + 1 End With Loop While Not c Is Nothing And c.Address <> premier End If End If lblNbElement = intI & " élements trouvés." End Sub
Si vous avez une idee Merci René- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
JB
On 11 fév, 10:00, -- RG -- wrote:
bonjour, Pour l'instant je n'ai pas le temps de faire un essai avec ton code par contre je ne comprends pas pourquoi tu supprimes les accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0 Me.ListBox1.Clear For Each c In Range([O2], [O65000].End(xlUp)) If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = c.Value Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value i = i + 1 End If Next c
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "eeeeoeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
CordialementJB
On 10 fév, 17:50, -- RG -- wrote:
bonjour , J'ai une colonne dans une feuille excel, a partir de cette colonne je repli un listbox selon le critere que j'ai saisie dans un textBox avec le code ci dessous , cela fonctionne Le problème est que le résultat ne contient que l'expression du c ritere je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve" dans mon lisbox , je veux toutes les cellules qui contiennent etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click() Dim c Dim premier If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else
lstResultat.Clear Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xl Values) If Not c Is Nothing Then premier = c.Address intI = 0 Do With lstResultat .AddItem .List(intI, 1) = c.Value .List(intI, 0) = c.Offset(0, -1).Value Set c = Range("O:O").FindNext(c) intI = intI + 1 End With Loop While Not c Is Nothing And c.Address <> premier End If End If lblNbElement = intI & " élements trouvés." End Sub
Si vous avez une idee Merci René- Masquer le texte des messages précédents -
On 11 fév, 10:00, -- RG -- <R...@discussions.microsoft.com> wrote:
bonjour,
Pour l'instant je n'ai pas le temps de faire un essai
avec ton code
par contre je ne comprends pas pourquoi tu supprimes les
accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0
Me.ListBox1.Clear
For Each c In Range([O2], [O65000].End(xlUp))
If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value
i = i + 1
End If
Next c
Function sansAccent(chaine)
codeA = "ÉÈÊËÔéèêëàçùôûïî"
codeB = "eeeeoeeeeacuouii"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
sansAccent = temp
End Function
CordialementJB
On 10 fév, 17:50, -- RG -- <R...@discussions.microsoft.com> wrote:
bonjour ,
J'ai une colonne dans une feuille excel, a partir de cette colonne je repli
un listbox
selon le critere que j'ai saisie dans un textBox
avec le code ci dessous , cela fonctionne
Le problème est que le résultat ne contient que l'expression du c ritere
je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve"
dans mon lisbox , je veux toutes les cellules qui contiennent
etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere
lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click()
Dim c
Dim premier
If txtCritere.Value = "" Then
MsgBox "Vous devez saisir un critère !."
Else
lstResultat.Clear
Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xl Values)
If Not c Is Nothing Then
premier = c.Address
intI = 0
Do
With lstResultat
.AddItem
.List(intI, 1) = c.Value
.List(intI, 0) = c.Offset(0, -1).Value
Set c = Range("O:O").FindNext(c)
intI = intI + 1
End With
Loop While Not c Is Nothing And c.Address <> premier
End If
End If
lblNbElement = intI & " élements trouvés."
End Sub
Si vous avez une idee
Merci René- Masquer le texte des messages précédents -
bonjour, Pour l'instant je n'ai pas le temps de faire un essai avec ton code par contre je ne comprends pas pourquoi tu supprimes les accents avec ta fonction 'SansAccent' ?
Merci d'avoir répondu
René
Bonsoir,
Une solution simple si la liste n'est pas trop longue:
i = 0 Me.ListBox1.Clear For Each c In Range([O2], [O65000].End(xlUp)) If SansAccent(c.Offset(0, 2)) = SansAccent(Me.txtCritere) Then Me.ListBox1.AddItem Me.ListBox1.List(i, 0) = c.Value Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value i = i + 1 End If Next c
Function sansAccent(chaine) codeA = "ÉÈÊËÔéèêëàçùôûïî" codeB = "eeeeoeeeeacuouii" temp = chaine For i = 1 To Len(temp) p = InStr(codeA, Mid(temp, i, 1)) If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1) Next sansAccent = temp End Function
CordialementJB
On 10 fév, 17:50, -- RG -- wrote:
bonjour , J'ai une colonne dans une feuille excel, a partir de cette colonne je repli un listbox selon le critere que j'ai saisie dans un textBox avec le code ci dessous , cela fonctionne Le problème est que le résultat ne contient que l'expression du c ritere je voudrais dans le listbox les cellules accentuées ou non
Exemple avec le critère :"etuve" dans mon lisbox , je veux toutes les cellules qui contiennent etuve ,étuve ,ètuve ou ëtuve
Mon code
txtCritere > textbox pour la saisie du critere lst Resultat listbox contient le résultat de la recheche
Private Sub btnRechercher_Click() Dim c Dim premier If txtCritere.Value = "" Then MsgBox "Vous devez saisir un critère !." Else
lstResultat.Clear Set c = Range("O:O").Find(Me.txtCritere.Value, LookIn:=xl Values) If Not c Is Nothing Then premier = c.Address intI = 0 Do With lstResultat .AddItem .List(intI, 1) = c.Value .List(intI, 0) = c.Offset(0, -1).Value Set c = Range("O:O").FindNext(c) intI = intI + 1 End With Loop While Not c Is Nothing And c.Address <> premier End If End If lblNbElement = intI & " élements trouvés." End Sub
Si vous avez une idee Merci René- Masquer le texte des messages précédents -