VBA Excel: rechercher une cellule qui contient...

Messages postés
2
Date d'inscription
lundi 1 juin 2009
Statut
Membre
Dernière intervention
1 juin 2009
- - Dernière réponse : us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
- 2 juin 2009 à 00:20
Bonjour à tous,

Je débute en VBA, et dans le cadre de mon stage, on me demande de regarder sur un planning de projets ceux qui ont duré plus de 5 jours, noter ces projets et le nombre de jours utilisés.
Comme la liste est assez longue, j'aimerais pouvoir faire quelque chose avec du VBA.
Par exemple, comme outil de vérification j'aimerais pouvoir faire ceci:
-je tape un mot-clé d'un projet
-Excel me cherche toutes les cellules contenant ce mot-clé
-il me les copie dans un classeur
Ce qui facilite le comptage

Ou plus simplement qu'il m'efface toute cellule contenant ce mot-clé, afin que je puisse voir si tous les projets ont été passés en vus.

Par contre j'ai du mal à faire ceci: comment dire à Excel ou VB de me chercher les cellules qui contiennent ce mot-clé (avec éventuellement d'autres mots dans la cellule) et non pas uniquement ce mot?

Merci infiniment et bon lundi de pentecôte,
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
7
1
Merci
Bonsoir,

Ma version... à mettre dans un module...

Sub Macro1()
Dim Plage As Range
Set Plage = Application.InputBox("Sélectionnez une plage !", "Us se débrouille pour vous...", Type:=8)
Dim MotRechercher As String
MotRechercher = InputBox("Entrer la donnée à repérer", "Us")
If MotRechercher = vbNullString Then Exit Sub
Dim Cellule As Range
For Each Cellule In Plage
If InStr(1, Cellule.Value, MotRechercher) > 0 Then
    Range(Cellule.Address).Select
    With Selection.Interior
        .ColorIndex = 6 'jaune
        .Pattern = xlSolid
    End With
End If
Next Cellule
End Sub

Amicalement,
Us.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 0 internautes nous ont dit merci ce mois-ci

Commenter la réponse de us_30
Messages postés
2
Date d'inscription
lundi 1 juin 2009
Statut
Membre
Dernière intervention
1 juin 2009
0
Merci
up
Commenter la réponse de cs_socrate88
Messages postés
11
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
1 juin 2009
0
Merci
Bonjour,
Voici un début de piste:

Dim Maplage As Range
Dim cellule As String

Set Maplage = Feuil1.Range("A1:B100")
cellule = Maplage.Find("r").Address
MsgBox cellule

Ceci n'est qu'une ébauche.
@+

 
Commenter la réponse de cs_Persons
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
28
0
Merci
salut,

coïncidence :



<hr />
'    CHERCHER UN MOT OU UNE PARTIE D'UN MOT DANS UNE COLONNE D'UNE FEUILLE
EXCEL
'    http://www.codyx.org/snippet_chercher-mot-ou-partie-mot-dans-colonne-feuille_788.aspx#2368
'    Posté par [ 401740 PCPT ] le 31/05/2009
<hr />



Public Function 
getWordAdress(
ByVal 
sExpression
As String
,
ByVal
sColumnLetter
As String
,
Optional ByVal
bPartial
As Boolean
=
False
,

Optional ByVal
bSelectResult
As Boolean
=
False
,

Optional
vsSheetName

As Variant
)
As Integer


'   sExpression    
mot(s) ou partie de mot à chercher


'  
sColumnLetter   lettre de la colonne dans laquelle chercher


'   bPartial        choix sur le mot comlet ou partie du
mot


'   bSelectResult   sélectionner la cellule de
la première occurence trouvée


'   vsSheetName    
nom de la feuille dans laquelle cherche, celle active par défaut


'   RETURN          numéro de la ligne de la première occurence
trouvée

    Dim iColStop    As Integer
    Dim i           As Integer
    
    'selection
feuille
    If Not IsMissing(vsSheetName) Then Sheets(vsSheetName).Select
    
    'dernière cellule
    iColStop = Range(sColumnLetter & "65536").End(xlUp).Row
    
    If bPartial Then
        For i = 1 To iColStop
            If Cells(i, sColumnLetter) Like "*" & sExpression & "*" Then
                getWordAdress = i
                If bSelectResult Then Cells(i,
sColumnLetter).Select
                Exit For
            End If
        Next i
    Else
        For i = 1 To iColStop
            If Cells(i, sColumnLetter) = sExpression Then
                getWordAdress = i
                If bSelectResult Then Cells(i,
sColumnLetter).Select
                Exit For
            End If
        Next i
    End If
End Function


'----------------------------------------------------------------



'Remarques :


'MsgBox "Guy est à la ligne " & cstr(getWordAdress("guy",
"B"))



<hr size ="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Commenter la réponse de PCPT