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.
 

Ubot303

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

Bonjour,

Le fichier de base serait utile pour éviter que nous ayons en plus à créer un jeu de test, qui ne pourrait pas correspondre avec ce que vous souhaitez...
 

ROGER2327

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

Bonjour Ubot303, francois17
Bonjour,

Le fichier de base serait utile pour éviter que nous ayons en plus à créer un jeu de test, qui ne pourrait pas correspondre avec ce que vous souhaitez...
Approuvé !
ROGER2327
#3615


Lundi 16 Merdre 137 (Nativité de Saint Donatien A François, SQ)
14 Prairial An CCXVIII
2010-W22-3T14:50:17Z
 

Ubot303

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

Natorp a raison : je n'avais même pas vu le 2007.
Je peux réaliser un petit truc mais sur 2003...
Cela devrait être compatible, mais j'ai un doute...

De toutes facons, il faudrait le fichier en question ^^
 

francois17

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

Merci pour vos réponses. Je posterai mes prochains messages sur le forum 2007 maintenant que je sais.

Pour ce qui est du fichier, il n'existe pas encore mais j'en ai concocté un simpliste où j'ai inséré le mot bidule dans plusieurs cellules à la main afin de vous donner une idée. Le fichier final comportera sans doute plusieurs milliers de cellules...

Merci :)
François
 

Pièces jointes

  • francois-exemple.xls
    23.5 KB · Affichages: 528

Robert

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

Bonsoir le fil, bonsoir le forum,

peut-être comme ça :
Code:
Sub Macro1()
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)
Dim tr As Range 'déclare la variable tr (Toutes les Recherches)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
 
'récupération des cellules contenant "bidule"
With Sheets("Sheet1") 'prend en compte l'onglet "Sheet1" (à adapter à ton cas)
    Set r = .UsedRange.Find("bidule", , xlValues, xlPart) 'definit la recherche
    If Not r Is Nothing Then 'condition : si il existe au moins une occurrence de r dans les cellules éditées
        pa = r.Address 'définit la première adresse de l'occurrence trouvée
        Set tr = r 'définit la plage de toutes les recherches
        Do 'éxécute
            Set r = .UsedRange.FindNext(r) 'redéfinit la recherche r (Recherhe occurrence suivante)
            Set tr = Application.Union(tr, r) 'redéfinit la plage de Toutes les Recherches
        Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe des occurrences ailleurs qu'en pa
    End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "Sheet1"
 
'copie sur onglet "Sheet2"
For Each cel In tr 'boucle sur toutes les cellules cel de la plage de Toutes les Recherches
    With Sheets("Sheet2") 'prend en compte l'onglet "Sheet2" (à adapter à ton cas)
        If .Range("A1").Value = "" Then 'condition si A1 est vide
            Set dest = .Range("A1") 'la cellule de destination est A1
        Else 'sinon
            Set dest = .Range("A65536").End(xlUp).Offset(1, 0) 'la cellule de destination est la première cellule vide de la colonne A
        End If 'fin de la condition
    End With 'fin de la prise en compte de l'onglet "Sheet2"
    cel.Copy dest 'copy et colle la cellule cel dans la cellule de destination dest
Next cel 'prochaine cellule cel de la boucle
End Sub

Attention nom des onglet à adapter eventuellement...
 

ROGER2327

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

Bonjour à tous
Essayez :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim c, o$, i&, j&, odat(), sdat()
   With Worksheets(1).Range("A1:C6")
      Set c = .Find("bidule", LookIn:=xlValues)
      If Not c Is Nothing Then
         o = c.Address
         Do
            i = i + 1
            ReDim Preserve odat(1 To 1, 1 To i)
            odat(1, i) = c.Value
            Set c = .FindNext(c)
         Loop While Not c Is Nothing And c.Address <> o
      End If
   End With
   ReDim sdat(1 To i, 1 To 1)
   For j = 1 To i
      sdat(j, 1) = odat(1, j)
   Next
   Worksheets(2).Range("A1").Resize(i, 1).Value = sdat
End Sub[/B][/COLOR]
ROGER2327
#3619


Lundi 16 Merdre 137 (Nativité de Saint Donatien A François, SQ)
14 Prairial An CCXVIII
2010-W22-3T16:07:22Z
 

david84

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

Bonjour
ci-joint une version formules à adapter à ton cas.
J'ai nommé les formules au cas où cela créerait un problème sur les versions antérieures à 2007.
Si quelqu'un a une idée pour simplifier les formules qu'il ne se gène pas (au contraire cela m'intéresserait !).
Cordialement
 

Pièces jointes

  • Extraire_motsDansPhrase.xls
    25.5 KB · Affichages: 791

C@thy

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

Bonjour le fil, les amis du fil.

je remonte ce fil car j'ai un peu la même question, mais les données sont légèrement différentes :

en colonne A j'ai le nom des agents
en colonne K la carrière, mais tout mélangé dans des phrases, un peu comme l'exemple.

Je voudrais lister le nom de tous les agents qui ont travaillé dans la boîte bidule.

Ca c'est une première étape.

En réalité ma demande est un peu plus complexe...
en colonne A : DUPOND en col. K : sté Truc $ 2010 $2012 $ sté Bidule 2012 $ $ blablabla blabla
(il arrive que je n'aie pas de date de fin donc entre 2 $ c'est vide)
je souhaite savoir tous ceux qui ont travaillé chez Bidule après 2010 (ça c'est la CSG : la cerise sur le gateau)...
mais déjà savoir tous ceux qui ont travaillé chez Bidule c'est bien.

J'imagine que par un offset on doit pouvoir récupérer le contenu de la col. A le problème est plus dur pour récupérer la date qui suit le $ qui suit bidule...

Merci à vous si vous pouvez m'apporter une aide sur la question.

Bises

C@thy
 

C@thy

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

peut-être en modifiant comme ceci, pour le 1er cas :
Code:
Sub toto()
Dim c, o$, i&, j&, odat(), sdat()
   With Worksheets(1).Range("K1:K" & Range("A65536").End(xlUp).Row)
      Set c = .Find("bidule", LookIn:=xlValues)
      If Not c Is Nothing Then
         o = c.Address
         Do
            i = i + 1
            ReDim Preserve odat(1 To 1, 1 To i)
            odat(1, i) = c.Offset(0, -10).Value
            Set c = .FindNext(c)
         Loop While Not c Is Nothing And c.Address <> o
      End If
   End With
   ReDim sdat(1 To i, 1 To 1)
   For j = 1 To i
      sdat(j, 1) = odat(1, j)
   Next
   Worksheets(2).Range("A1").Resize(i, 1).Value = sdat
End Sub

Bises

C@thy
 
Dernière édition:

C@thy

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

Arf! Ca se corse,

je recherche "industrie", et il me donne aussi tous ceux qui ont industriel ou industrielle...
pas bon...


avec l'enregistreur on ne peut pas rechercher mot entier, il y a juste totalité du contenu de la cellule, ce qui n'est pas mon cas...

C@thy
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi