VBA Excel: rechercher une cellule qui contient...

cs_socrate88 Messages postés 2 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 1 juin 2009 - 1 juin 2009 à 10:03
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,

4 réponses

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 juin 2009 à 00:20
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.
1
cs_socrate88 Messages postés 2 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 13:00
up
0
cs_Persons Messages postés 11 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 1 juin 2009
1 juin 2009 à 13:27
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.
@+

 
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 juin 2009 à 13:35
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 
0
Rejoignez-nous