Après l’aide utile de gcc et qq efforts de plus, je suis arrivé au programme ci-dessous.
il me permet de copier les lignes de la feuille “donnee”, dans lesquelles il trouve le mot clé entré dans l’inputbox, dans la feuille “recherche”
le pb: si je cherche le mot “Essai” dans ma feuille excel, il ne me trouve pas le même mot “essai”, histoire de majuscule… or je veux qu’il le trouve!!!
NB: avant InStr, j’utilisais UCase qui ne posais pas de pb mais je ne trouvais pas “essai” dans une cellule avec plusieurs mots comme “essai ok bla bla”
Vous avez une idée!?
Option Explicit
Sub Macro1()
Dim Cel As Range
Dim Mot As String
Dim R As Range
Sheets(“Recherche”).Range(“A3:V200”).Clear
Set R = Sheets(“Recherche”).Range(“A3”)
Sheets(“Donnee”).Activate
Mot = InputBox(“Mot à rechercher ?”)
If Mot = “” Then
Range(“n3”).Select
Exit Sub
Else
For Each Cel In ActiveSheet.Range(“N3:X167”)
If InStr(Cel, Mot) Then
Cel.EntireRow.Copy R
Set R = R.Offset(1)
End If
Next Cel
Range(“n3”).Select
Sheets(“Recherche”).Select
End If
tout bête, ca fonctionne avec ce que tu écris Jacky67.
GCC, de quelle aide en ligne tu parles? l’aide sur le net? l’aide de VB ne me renseigne pas comme je le voudrais. il me dit:
Function InStr([Start], [String1], [String2], [Compare As VbCompareMethod = vbBinaryCompare])
quand tu es en edition de code VBA, sous excel, tu sélectionnes le mot (la fonction) pour laquelle tu désires des explications, et tu appuies sur F1
L’aide va s’ouvrir sur la page de la fonction en question
Une fois la page bien lue dans tous les sens, n’hésite pas à explorer les liens “exemple” et “voir aussi” lorsqu’ils existent
Sinon, si ton mot n’est pas reconnu, tu peux le taper dans le volet de gauche et choisir ensuite parmi les propositions
le prog fonctionne mais j’ai vérifié de quelle manière ca tournait si je filtrais une colonne avant de le lancer
malheureusment, il ne plante pas mais copie bizarrement, en sautant des colonnes. rien ne semble logique.
pourquoi ce problème?
Option Explicit
Sub Macro1()
Dim Cel As Range
Dim Mot, Mots As String
Dim R As Range
Sheets(“Recherche”).Range(“A3:m167”).ClearContents
Set R = Sheets(“Recherche”).Range(“A3”)
Sheets(“Donnee”).Activate
Mot = InputBox(“Mot à rechercher ?”)
If Mot = “” Then
Range(“A3”).Select
Exit Sub
Else
For Each Cel In ActiveSheet.Range(“m3:m167”)
If InStr(UCase(Cel), UCase(Mot)) Then
Cel.EntireRow.Copy R
Set R = R.Offset(1)
End If
Next Cel
Range(“A3”).Select
Application.CutCopyMode = False
Sheets(“Recherche”).Activate
Sheets(“Recherche”).Range(“A3”).Select
End If