Recherche sur une partie des critères saisis (reprise du fil de imej-clavier du 06/08 20:23)
Le
Michel.P

Bonjour à toutes et tous
Je reprends la suite du fil en objet à mon compte
;-) qui est très intéressant pour moi. (merci à
BJ-RaMA ChrisV entre autres)
Je suis en train de travailler sur ce bout de VBA
qui pour l'instant me compte le nombre de fois
que "critere" est inscrit dans ma base
Ce que je recherche : que le "critère" puisse
être une partie du contenu de cellule. ex : dans
des cellules de ma base " renault super 5 - 1998"
donc si en critère je tape "super 5" la recherche
devra se faire sur une partie du contenu des
cellules et me donnera le nombre de fois
que "super 5" est inscrit. que se soit en
majuscules ou minuscules.
Merci d'avance
Sub Cherche()
Dim Compteur, Critere As String
Call Base
Critere = InputBox(" Saisissez un critère ")
Compteur = 0
For Each Cell In Range("base_ecriture")
'recherche dans ma base de données
If Cell = Critere Then
Compteur = Compteur + 1
End If
Next Cell
If Compteur > 0 Then
MsgBox (" Il y a " & Compteur & " fois le
critère " & Critere & " dans la base ")
Else
MsgBox (" Il n'y a pas le critère recherché
dans la base ")
End If
Range("b12").Select
End Sub
--
Amicalement
Michel . P
(un jour, serai Calife à la place du Calife)
Je reprends la suite du fil en objet à mon compte
;-) qui est très intéressant pour moi. (merci à
BJ-RaMA ChrisV entre autres)
Je suis en train de travailler sur ce bout de VBA
qui pour l'instant me compte le nombre de fois
que "critere" est inscrit dans ma base
Ce que je recherche : que le "critère" puisse
être une partie du contenu de cellule. ex : dans
des cellules de ma base " renault super 5 - 1998"
donc si en critère je tape "super 5" la recherche
devra se faire sur une partie du contenu des
cellules et me donnera le nombre de fois
que "super 5" est inscrit. que se soit en
majuscules ou minuscules.
Merci d'avance
Sub Cherche()
Dim Compteur, Critere As String
Call Base
Critere = InputBox(" Saisissez un critère ")
Compteur = 0
For Each Cell In Range("base_ecriture")
'recherche dans ma base de données
If Cell = Critere Then
Compteur = Compteur + 1
End If
Next Cell
If Compteur > 0 Then
MsgBox (" Il y a " & Compteur & " fois le
critère " & Critere & " dans la base ")
Else
MsgBox (" Il n'y a pas le critère recherché
dans la base ")
End If
Range("b12").Select
End Sub
--
Amicalement
Michel . P
(un jour, serai Calife à la place du Calife)
faire tourner en bourrique le moindre MVP...
comment vont-ils faire, en effet, pour te pondre une de leurs procs
alambiquées dans laquelle ils vont devoir tester si "5" est en majuscules ou
en minuscules...
tu me fais trop penser à cette lointaine cliente à qui je donnais par
téléphone le n° de phone de tel organisme et qui, alors qu'elle le prenait
sous ma dictée, me lança un sublime : "en un seul mot?"
jps
"Michel.P" news:
tu es un vrai champion cf. le dossier que tu m'as envoyé est
"parfait" (mais il faudra m'expliquer..car je n'ai plus 20 ans !!)
mon épouse m'a dit que tu avais continué à pédaler avec obstination ds
excel alors que le tour était fini !! (j'espère que tu te désaltèrais au
moins ..)
mais tu es motivé sans doute par ton ambitieuse signature
* je me prosterne déjà* ;-)
Courrier pris,je repars pour ma dernière semaine, et je te
remercie encore mille fois de ton superbe travail !
Dans mes lectures de sieste, j'ai trouvé un autre site détente
(ne pas louper la circulaire punitive au travail)
http://blog.doctissimo.fr/123_delires/index.php/last/2/last/266
[de garde cette nuit, jackie m'a dit ne pas s'être ennuyée]
Bien cordialement à tous! A bientôt..sdlv!
En mettant "Option Compare Text" en tete de module, la recherche se fait
sans respect de la casse. J'ai un peu modifier ta proc, à toi de voir :
Option Compare Text
Sub Cherche()
Dim Compteur As Integer
Dim Critere As String
Dim Cell As Range
base
Critere = InputBox(" Saisissez un critère ", _
"Recherche.")
If Critere = "" Then Exit Sub
For Each Cell In Range("base_ecriture")
'recherche dans ma base de données
If InStr(Cell.Text, Critere) <> 0 Then
Compteur = Compteur + 1
End If
Next Cell
If Compteur > 0 Then
MsgBox (" Il y a " & Compteur & _
" fois le critère " & _
Critere & " dans la base ")
Else
MsgBox (" Il n'y a pas le critère" _
& " recherché dans la base ")
End If
Range("B12").Select
Set Cell = Nothing
End Sub
Hervé.
"Michel.P" news:
recommencerai plus (enfin je crois... 8-o )
je ne voulais offusquer personne.
jps avait énoncé :
--
Amicalement
Michel . P
(un jour, serai Calife à la place du Calife...)
ton code fonctionne à merveille sur ma base. Le
but recherché est atteint.
Hervé a exposé le 07/08/2004 :
--
Amicalement
Michel . P
(un jour, serai Calife à la place du Calife...)
Plus 20 ans moi non plus mdr .
1°) Pour le fichier que je t'ai envoyé, tout est
dans les formules de calculs, y'a pas de secret
(à ma connaissance...)
des + et des - et quelques condirions, c'est
tout, Ha aussi peur être une mise en page perso,
mais bon c'est pas bien
compliqué quand on aime les chiffres...enfin
tâcherai de relire tous ça et t'envoyer un mail
avec quelques explications.
2°) C'est vrai je pédalais (je pédale encore, y'a
qu'a voir mes questions... ;-) malgré que le tour
soit fini et pour me désaltérer
pas de problème...., toujours une main de libre
pour attraper un verre de temps en temps... mdr
3°) Mon ambitieuse signature comme tu dis; est là
pour ma motivation. Rien que de la voir, cela me
rappele que je suis dans la cour des "petits" du
VBA et pas prêt de passer à la classe supérieure.
Ce que j'espère, c'est de ne pas redoubler...en
tout cas je progresse....
Bonne fin de semaine à toi et aux tiens, et au
plaisir de se lire.
Michel
COLLIOURE a exprimé avec précision :
--
Amicalement
Michel . P
(un jour, serai Calife à la place du Calife...)
jps
"Michel.P" news:
To be or not to be ......
--
Amicalement
Michel . P
(un jour, serai Calife à la place du Calife...)
Tu peux inclure directement cette façon de faire dans l'instruction Instr.
En une seule ligne:
If InStr(Cell.Text, Critere, 1) Then Compteur = Compteur + 1
MP
"Hervé" news:
En supposant que "base" soit située en A1:B6 (comme dans ton précédent
message)
Sub zaza()
Dim cpT As Integer
With Application
reC = .InputBox("Saisissez un critère", , , , , , , 2 + 1)
cpT = .CountIf([A1:B6], "*" & reC & "*")
If cpT > 0 Then
MsgBox "Il y a " & cpT & " fois le critère """ & reC & _
""" dans la base", vbInformation
Else: MsgBox "Il n'y a pas le critère recherché dans la base",
vbExclamation
End If
End With
End Sub
ChrisV
"Michel.P" news: