Sub RechercheMot()

  • Initiateur de la discussion muriel
  • Date de début
M

muriel

Guest
bonjour à tous,

je suis un débutant dans VB, mais j'ai réussi à trouver un code qui permet de rechercher un mot dans tout les classeur, mais par contre je n'ai pas réussi à comprendre tout le code et moi je voudrais juste qui cherche un mot dans la colonne B, C et D, et en esperant ne pas abuser je voudraissavoir aussi comment c'est possible de faire que quant il selectionne un mot à la place de juste se mettre dessus avec le curseur lui donner une couleur rouge ou autre.

d'avance merci pour votre aide à tous,

mike
 
M

mike

Guest
c'est parfait, absolument comme je le désirais, merci beaucoup michel pour ton aide.

Bon je profite d'avoir un crack des formules visual basic, pour me permettre de te demander une autre question, en espérant ne pas abuser une nouvelle fois, je désirais avoir une autre macro en plus de celle là qui puisse rechercher de la meme manière mais qui puisse aussi inserer un mot à la place du mot trouver ?

c'est très sympa de ta part michel,
bonne nuit,

mike

PS: si c'est possible de trier ensuite par ordre alphabétique apres l'insertion et de mettre les mots en majuscule dans la meme macro, ce serait absolument extraordinaire.
 
M

mike

Guest
C'est le code que j'ai pour l'insertion mais que je n'arrive pas inclure avec ta formule:

Sub Inserer()
'
' Macro1 Macro
'

'
UserForm1.Show
Range("B4").Select
Selection.Sort Key1:=Range("B4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
 
M

michel

Guest
Bonjour Mike

pour la mise en majuscule j'ai interprété qu'il s'agissait de tout le tableau et pas uniquement du mot trouvé ...j'espere que j'ai bien compris ...

ci joint une autre version du fichier , avec remplacement du mot trouvé , mise en majuscule de tout le tableau et tri à partir de la cellule B1

bonne journée
Michel
 

Pièces jointes

  • trouver_et_remplacer_une_valeur.zip
    13.8 KB · Affichages: 13
M

mike

Guest
je me permet de te tutoiyer pour te dire que tu es vraiment sensationnel.
Vraiment je te remerci pour ton aide.
Pour les majuscules c'etait bien pensé et tu as eu raison, j'ai juste un problème quand je clique pour rechercher et ensuite inserer si je ne veux rien changer il m'efface le mot, si c'etait possible qu'il ne le fasse pas ce serait vraiment parfait.

voilà apres cette parti sera fini,

merci encore merci et remercie

mike
 
@

@+Thierry

Guest
Bonjour ce Fil

Pour Michel, juste comme tu sais que je suis à cheval sur les déclaration de variable... Dans ton Module1 de ton dernier fichier...

Dim cell As Range
Dim Val As String
Dim val2 As String

Sinon tout est en Variant...

Et pour Mike heureux de cette happy end, tu as de la chance que Michel ait eu le temps et la patience de pouvoir répondre à toutes tes demandes, car pour ma part, il semble que tu n'aies même pas vu mon post du 08-08-03 15:58

Bon Week End à tous et toutes
@+Thierry
 
M

michel

Guest
Bonjour à tous

j'aurais du tester le fichier un peu plus longtemps avant de te l'envoyer . Effectivement il y a un petit soucis quand l'inputbox est validé sans valeur .

Cette nouvelle version devrait ( j'espère) résoudre l'anomalie .

…j'ai aussi mis à jour les déclarations de variable …;o)

@+Thierry … ….je n'ai aucune excuse …;o(…surtout qu'il y a à peine deux semaines tu m'as donné un lien vers une fichier pdf très explicatif sur les déclarations de variable…
d'autre part c'est vrai que le fichier"usf listbox à la volée" répondait bien aux questions de Mike

Bon week end
Michel
 

Pièces jointes

  • trouver_et_remplacer_une_valeur_V02.zip
    13.8 KB · Affichages: 14
M

mike

Guest
c'est magnifique, ça marche très très bien et merci aussi à thierry pour ces precieux conseilles.

Je ne sais pas si je dois t'expliquer mon autre macros ???

bon aller je me lance, au pire je n'aurais pas de réponse !!!

dans les colonnes b, c, d j'ai des nom et dans les colonnes h, i, j je dois mettre des nombres, alors si b et rempli mettre 1 dans la colonnes h, en restant sur la meme ligne, si c et aussi rempli en restant toujours sur la meme ligne je dois mettre 2 dans la colonne i, et je dois effacer le 1 dans la colonne h, si la colonne d et rempli aussi je dois mettre 3 dans la colonne j, effacer 2 dans la colonne i et tout cela en restant sur la meme ligne, et ainsi dessuite sur 300 lignes environs.

j'espère avoir été comprehensible dans mon explication.

je te souhaite un bon Week end en espérant avoir une réponse.

@++
 
M

mike

Guest
juste une petit chose michel sur le dernier module il s'arrete au premier mot trouvé il ne continue pas.

et apres se sera parfait, absolument ce que je désirai et que tu as su faire.

merci d'avance,

mike
 
M

michel

Guest
rebonjour mike

peux tu donner quelques explications complementaires sur "il s'arrete au premier mot trouvé " . je viens de refaire des essais et je ne vois pas de probleme particulier

une idée :
est ce que cela arrive quand , aprés avoir trouvé un mot , tu ne saisis pas de mot de remplacement ? dans ce cas c'est normal car la procedure est écrite dans ce sens

si ton probleme viens de là , je vais voir si je peux améliorer ce point


Michel
 
M

mike

Guest
sorry, michel

oui tu as raison c'est quand j'annule insertion mais supposons que ce soit pas le bon nom trouvé la personne peut continuer sa recherche.

tres, tres, content de t'avoir pour m'aider, merci beaucoup,

mike
 
M

michel

Guest
rebonjour Mike

dans la procédure "Touver", peux tu remplacer la ligne :

val2 = InputBox("indiquez le mot de remplacement : ")

par

val2 = InputBox("indiquez le mot de remplacement : ", , Val)

ainsi par défaut , dans l'inputbox de remplacement du mot , tu auras la valeur d'origine . si tu ne veux pas la modifier , tu cliques directement sur ok et la procedure continueras sur le mot suivant
( la mise en majuscule se fera en fin de procedure )


bon après midi
Michel
 
M

mike

Guest
On y est presque....

mais le probleme c'est que supposons que ma recherche soit "toto"
mais que le vrai nom soit "totos" et que je ne veuille pas qu'il efface quoi que ce soit au mot, ou par exemple ma recherche c'est "fra" parce que je ne sais pas si je cherche "framboise" ou "fraise" et la au final il m'efface "fraise" pour mettre "fra" !!!

je souhaite que mon explication soit plus claire que la precedente
merci pour le temps que tu passes sur mon probleme,

mike
 
@

@+Thierry

Guest
RE Salut Mike, Michel et le Forum !

Pas bientôt fini ce fil !! lol

Bon ben fais ceci :

Sub trouver()
Dim Cell As Range
Dim Val As String, val2 As String, ValOrigine As String
Dim i As Byte

Val = Application.InputBox("Saisir le mot à trouver : ")

If Val = "" Then Exit Sub

With Columns("B:D")
Set Cell = .Find(Val, LookIn:=xlValues)
If Not Cell Is Nothing Then
firstAddress = Cell.Address
Do

Cell.Select
Cell.Interior.ColorIndex = 3
ValOrigine = Cell.Value
i = i + 1

val2 = InputBox("indiquez le mot de remplacement : ", , ValOrigine)
If val2 = "" Then Exit Sub

Selection.Value = val2

Set Cell = .FindNext(After:=ActiveCell)
Loop While Not Cell Is Nothing And Cell.Address <> firstAddress
End If
End With

If i = 0 Then MsgBox "Valeur " & Val & " Non trouvée"

Call majuscule_et_tri

End Sub


(J'ai modifié la macro de Base aussi pour le error Goto qui ne servait plus depuis les évolutions dans les versions de Michel...)

Bon Travail Mike
@+Thierry
 
M

mike

Guest
merci thierry de donner un coup de main à michel, parce que depuis la fin de la matinée il n'arrete pas de travailler pour moi, on va y arriver j'en suis sur, alors là ok il ne m'efface plus le mot si je tape "s" il va sur "satanas" et là il ne change rien c'est parfait mais supposons que en tapant "s" le mot "satanas" ne corresponde pas et que ce soit le mot d'en dessous qui s'appelle "super" il coince sur le premier mot correspondant à ma recherche exemple "s" il ne va pas à la ligne suivante !!!

en esperant que ce soit possible ?

des que cela marche, alors le fil pourra enfin s'arreter, lol!

à tres bientot

mike
 

Statistiques des forums

Discussions
314 085
Messages
2 105 630
Membres
109 401
dernier inscrit
LE CLUB