sélectionner toutes les cellules contenant le mot "bidule"

francois17

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant sur Excel mais je voudrais réaliser une application à l'aide de ce formidable outil.

Voici ma première question:
Je dispose d'un tableau dont les champs sont déjà remplis de textes en tous genres. Je voudrais pouvoir sélectionner toutes les cellules contenant le mot bidule au sein du texte, les copier puis les coller dans un autre tableau, de telle sorte que mon tableau final ne contienne que des cellules contenant au moins une fois le mot bidule.

Je crois qu'il faut faire une espèce de boucle, mais étant vraiment débutant, je vous laisse évidemment répondre comme bon vous semble.

Merci beaucoup pour vos réponses! :)

François

Remarque: j'utilise Excel 2007 sous Windows XP. Veuillez m'expliquer en détail ce qu'il faut faire, je ne suis pas familier avec les formules, macros et autres merveilles. merci :)
Excusez-moi si la question a déjà été posée, je n'ai pas trouvé de réponse en cherchant sur le forum.
 

C@thy

XLDnaute Barbatruc
Re : sélectionner toutes les cellules contenant le mot "bidule"

Merci Pierrot,

mon problème c'est que dans la cellule par exemple il y a "comptoir de l'industrie et du commerce", et ça, c'est bon, je dois récupérer cette cellule

je recherche tout ce qui contient le mot industrie en entier et que industrie, (pas le mot industriel ou industrielle), mais au milieu d'autres mots...:rolleyes:

damned... Ca existe pô???

Bizz

C@thy
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : sélectionner toutes les cellules contenant le mot "bidule"

Bonsoir à tous

Et on peut pas faire avec " industrie ", en rajoutant une ou deux conditions avec "industrie " en début de phrase et " industrie" en fin de phrase ?

@ plus
 

Si...

XLDnaute Barbatruc
Re : sélectionner toutes les cellules contenant le mot "bidule"

salut

Si... le mot est suivi d'un espace, dans la page de code de la feuille de recherche avec une autre boucle :
Code:
Option Explicit
Private Sub CommandButton1_Click()
  Dim C As Range, L As Long
  For Each C In Range("K2", Cells(Rows.Count, 11).End(xlUp))
    If C Like "*industrie *" Then
      L = L + 1
      Feuil2.Cells(L, 1).Value = C(1, -9).Value
      'pour l'avoir sous les yeux
      C(1, 0).Value = C(1, -9).Value
    End If
  Next
End Sub
 

Pièces jointes

  • Recherche(VBA).xls
    34 KB · Affichages: 75
  • Recherche(VBA).xls
    34 KB · Affichages: 88
  • Recherche(VBA).xls
    34 KB · Affichages: 87

C@thy

XLDnaute Barbatruc
Re : sélectionner toutes les cellules contenant le mot "bidule"

Merci vous deux, je n'y avais pas pensé!

L'expérience prouve qu'on est beaucoup plus intelligents à plusieurs que tout seul!

En fait, la recherche peut se faire sur mot-clé composé de plusieurs mots (par input box ou usf, je vais voir..)

ex. ''département de l'industrie'', mais dans le cas de recherche d'un seul mot je mettrai un espace après,
en espérant que le mot cherché ne soit pas le dernier de la cellule...

Merci à vous tous

C@thy
 
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : sélectionner toutes les cellules contenant le mot "bidule"

Oups! Si..., je t'avais pas vu, merci à toi aussi.

Cela dit, le mot-clé doit rester une variable, on ne le connait pas à l'avance

C@thy
 
Dernière édition:

vmatthieu

XLDnaute Occasionnel
Re : sélectionner toutes les cellules contenant le mot "bidule"

re,
si tu as la crainte que ce soit le dernier mot de la cellule, tu peux reprendre chaque cellule et tu teste le dernier caractère
i=len(cells(ta cellule sans doute avec une boucle)
if mid(ta cellule,i,1)<> " " then
ta cellule= tacellule & " "
else
end if
en théorie tu as un espace en fin de chaine donc plus de source d'erreur
 

Si...

XLDnaute Barbatruc
Re : sélectionner toutes les cellules contenant le mot "bidule"

re

à toi d'initialiser la variable Mot (sans espace au début et à la fin)
Code:
Option Explicit
Private Sub CommandButton1_Click()
  Dim C As Range, L As Long, Mot As String
  Mot = "industrie" 'par exemple
  For Each C In Range("K2", Cells(Rows.Count, 11).End(xlUp))
    If C Like "*" & Mot & " *" Or C Like "*" & Mot Then
      L = L + 1
      Feuil2.Cells(L, 1).Value = C(1, -9).Value
      'pour l'avoir sous les yeux
      C(1, 0).Value = C(1, -9).Value
    End If
  Next
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : sélectionner toutes les cellules contenant le mot "bidule"

Bonjour Cathy, le forum,

En reprenant le format "DUPOND en col. K : sté Truc $ 2010 $2012 $ sté Bidule$ 2012 $ $ blablabla blabla", un essai vite fait pour extraire le nom de l'employé et les dates associées (avec l'hypothèse du $ comme séparateur).

En R1 choisir la société recherchée, puis cliquer sur le bouton "Société ?"

le code:
VB:
Private Sub CommandButton1_Click()
  Dim xcell As Range, Mots, i As Long, j As Long, aTrouver As String
  
  aTrouver = LCase(Trim(Cells(1, "r")))
  For Each xcell In Range("K2", Cells(Rows.Count, 11).End(xlUp))
    Mots = Split(LCase(Trim(xcell)), "$")
    For i = 0 To UBound(Mots)
      Range(Cells(xcell.Row, "l"), Cells(xcell.Row, "o")) = Array("", "", "", "")
      If Mots(i) = aTrouver Or Mots(i) Like aTrouver & " *" _
         Or Mots(i) Like "* " & aTrouver & " *" Or Mots(i) Like "* " & aTrouver _
         Or Mots(i) Like "*'" & aTrouver & " *" Or Mots(i) Like "*'" & aTrouver Then
        Cells(xcell.Row, "l") = Cells(xcell.Row, "a")
        Cells(xcell.Row, "m") = Mots(i)
        j = i + 1
        If j <= UBound(Mots) Then
          If IsNumeric(Trim(Mots(j))) Then Cells(xcell.Row, "n") = CLng(Mots(j))
        End If
        j = i + 2
        If j <= UBound(Mots) Then
          If IsNumeric(Trim(Mots(j))) And (Trim(Mots(j - 1)) = "" Or IsNumeric(Trim(Mots(j - 1)))) Then Cells(xcell.Row, "o") = CLng(Mots(j))
        End If
        Exit For
      End If
    Next i
  Next xcell
End Sub

Version: v2 correction pour traiter des dates absentes.
 

Pièces jointes

  • Recherche vba v2.xls
    45.5 KB · Affichages: 86
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 990
Membres
103 420
dernier inscrit
eric.wallet46