OVH Cloud OVH Cloud

Recherche

10 réponses
Avatar
Jacky
Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot soit cachées
et éventuellement copiées dans une feuille rajoutée automatiquement les
lignes ou ce mot est contenu.

Merci et bonne journée
JJ

10 réponses

Avatar
Philippe.R
Bonjour Jacky,
Il y a peut être une piste de réponse à ta question (qui s'est donc collée à la suite d'un fil initié le
03/12/2003)
avec l'utilisation du filtre, tout du moins pour ce qui est de masquer ; tout dépends si le mot peut se
trouver dans n'importe quelle colonne ou toujours dans la même.
Par ailleurs, n'oublie pas que l'enregistreur de macros est ton ami.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Jacky" a écrit dans le message de
news:%23z%
Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot soit cachées
et éventuellement copiées dans une feuille rajoutée automatiquement les
lignes ou ce mot est contenu.

Merci et bonne journée
JJ






Avatar
azerty
Bonsoir Philippe

Il y a peut être une piste de réponse à ta question (qui s'est donc collée
à la suite d'un fil initié le

03/12/2003)
Chez moi, il est apparu dans le bon fil, mais à 17:27


Pour ce qui concerne ma recherche, le mot peut se trouver dans n'importe
quelle colonne et toutes les lignes.
J'ai essayé avec le filtre élaboré, sans succès. Je n'ai pas beaucoup
d'experience avec les filtres.

Salutations
JJ

"Philippe.R" a écrit dans le message news:

Bonjour Jacky,
Il y a peut être une piste de réponse à ta question (qui s'est donc collée
à la suite d'un fil initié le

03/12/2003)
avec l'utilisation du filtre, tout du moins pour ce qui est de masquer ;
tout dépends si le mot peut se

trouver dans n'importe quelle colonne ou toujours dans la même.
Par ailleurs, n'oublie pas que l'enregistreur de macros est ton ami.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Jacky" a écrit dans le message de
news:%23z%
Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot soit
cachées


et éventuellement copiées dans une feuille rajoutée automatiquement les
lignes ou ce mot est contenu.

Merci et bonne journée
JJ










Avatar
Frédéric Sigonneau
Bonjour,


Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot soit cachées


Ce code peut faire cela :

Sub ChercheEtCache()
Dim DerLi&, i&, Libre&, Mot$

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
DerLi = Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Range("A" & i & ":O" & i), "*" & Mot & "*") = 0 Then
Range("A" & i).EntireRow.Hidden = True
End If
Next i
If Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Cells.EntireRow.Hidden = False
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

et éventuellement copiées dans une feuille rajoutée automatiquement les
lignes ou ce mot est contenu.


Pour cette alternative, utilise plutôt ce code :

Sub ChercheEtCopie()
Dim DerLi&, i&, Libre&, Mot$
Dim Source As Worksheet, Cible As Worksheet

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
Set Source = ActiveSheet
Sheets.Add
Set Cible = ActiveSheet
Cible.Range("A1:O1").Value = Source.Range("A1:O1").Value
DerLi = Source.Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End If
Next i
If Cible.Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Application.DisplayAlerts = False
Cible.Delete
Application.DisplayAlerts = True
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

Merci et bonne journée
JJ


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Avatar
Jacky
Bonjour Frédéric
J'ai du faire une recherche pour ta réponse, je ne sais pas ce qui ce passe,
mais les messages de news ne s'affichent pas correctement chez moi en ce
moment .

Merci pour les codes qui fonctionnent parfaitement.
Pourrais-je abuser de ta compétence pour quelques explications sur:

If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End


Je ne connais pas "CountIf", et ne comprend pas les "*"
Serait ce fameux SOMMEPROD, si souvent employé ici ?

Merci et bonne journée
JJ

"Frédéric Sigonneau" a écrit dans le message
news:
Bonjour,


Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot soit
cachées



Ce code peut faire cela :

Sub ChercheEtCache()
Dim DerLi&, i&, Libre&, Mot$

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
DerLi = Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Range("A" & i & ":O" & i), "*" & Mot & "*") = 0 Then
Range("A" & i).EntireRow.Hidden = True
End If
Next i
If Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Cells.EntireRow.Hidden = False
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

et éventuellement copiées dans une feuille rajoutée automatiquement les
lignes ou ce mot est contenu.


Pour cette alternative, utilise plutôt ce code :

Sub ChercheEtCopie()
Dim DerLi&, i&, Libre&, Mot$
Dim Source As Worksheet, Cible As Worksheet

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
Set Source = ActiveSheet
Sheets.Add
Set Cible = ActiveSheet
Cible.Range("A1:O1").Value = Source.Range("A1:O1").Value
DerLi = Source.Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End If
Next i
If Cible.Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Application.DisplayAlerts = False
Cible.Delete
Application.DisplayAlerts = True
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

Merci et bonne journée
JJ


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !




Avatar
Frédéric Sigonneau
Bonjour,

CountIf, c'est NB.SI. Il est possible en VBA d'utiliser les fonctions de feuille
de calcul (avec leur nom anglais) en utilisant soit
Application.WorksheetFunction soit Application tout court. Les * sont des
caractères génériques acceptés par NB.SI. Ils permettent de rechercher une
chaîne de caractères (ici dans la variable Mot) qui peut être précédée et/ou
suivie d'un ou plusieurs autres caractères dans une chaîne plus importante.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric
J'ai du faire une recherche pour ta réponse, je ne sais pas ce qui ce passe,
mais les messages de news ne s'affichent pas correctement chez moi en ce
moment .

Merci pour les codes qui fonctionnent parfaitement.
Pourrais-je abuser de ta compétence pour quelques explications sur:

If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End


Je ne connais pas "CountIf", et ne comprend pas les "*"
Serait ce fameux SOMMEPROD, si souvent employé ici ?

Merci et bonne journée
JJ

"Frédéric Sigonneau" a écrit dans le message
news:
Bonjour,


Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot soit
cachées



Ce code peut faire cela :

Sub ChercheEtCache()
Dim DerLi&, i&, Libre&, Mot$

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
DerLi = Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Range("A" & i & ":O" & i), "*" & Mot & "*") = 0 Then
Range("A" & i).EntireRow.Hidden = True
End If
Next i
If Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Cells.EntireRow.Hidden = False
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

et éventuellement copiées dans une feuille rajoutée automatiquement les
lignes ou ce mot est contenu.


Pour cette alternative, utilise plutôt ce code :

Sub ChercheEtCopie()
Dim DerLi&, i&, Libre&, Mot$
Dim Source As Worksheet, Cible As Worksheet

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
Set Source = ActiveSheet
Sheets.Add
Set Cible = ActiveSheet
Cible.Range("A1:O1").Value = Source.Range("A1:O1").Value
DerLi = Source.Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End If
Next i
If Cible.Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Application.DisplayAlerts = False
Cible.Delete
Application.DisplayAlerts = True
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

Merci et bonne journée
JJ


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !






Avatar
Jacky
OK. Merci Frédéric

Bonne nuit


"Frédéric Sigonneau" a écrit dans le message
news:
Bonjour,

CountIf, c'est NB.SI. Il est possible en VBA d'utiliser les fonctions de
feuille

de calcul (avec leur nom anglais) en utilisant soit
Application.WorksheetFunction soit Application tout court. Les * sont des
caractères génériques acceptés par NB.SI. Ils permettent de rechercher une
chaîne de caractères (ici dans la variable Mot) qui peut être précédée
et/ou

suivie d'un ou plusieurs autres caractères dans une chaîne plus
importante.


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric
J'ai du faire une recherche pour ta réponse, je ne sais pas ce qui ce
passe,


mais les messages de news ne s'affichent pas correctement chez moi en ce
moment .

Merci pour les codes qui fonctionnent parfaitement.
Pourrais-je abuser de ta compétence pour quelques explications sur:

If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End


Je ne connais pas "CountIf", et ne comprend pas les "*"
Serait ce fameux SOMMEPROD, si souvent employé ici ?

Merci et bonne journée
JJ

"Frédéric Sigonneau" a écrit dans le
message


news:
Bonjour,


Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot soit
cachées



Ce code peut faire cela :

Sub ChercheEtCache()
Dim DerLi&, i&, Libre&, Mot$

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
DerLi = Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Range("A" & i & ":O" & i), "*" & Mot & "*") = 0 Then
Range("A" & i).EntireRow.Hidden = True
End If
Next i
If Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Cells.EntireRow.Hidden = False
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

et éventuellement copiées dans une feuille rajoutée automatiquement
les




lignes ou ce mot est contenu.


Pour cette alternative, utilise plutôt ce code :

Sub ChercheEtCopie()
Dim DerLi&, i&, Libre&, Mot$
Dim Source As Worksheet, Cible As Worksheet

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
Set Source = ActiveSheet
Sheets.Add
Set Cible = ActiveSheet
Cible.Range("A1:O1").Value = Source.Range("A1:O1").Value
DerLi = Source.Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End If
Next i
If Cible.Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Application.DisplayAlerts = False
Cible.Delete
Application.DisplayAlerts = True
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

Merci et bonne journée
JJ


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !










Avatar
Jacky
re Frédéric
Je viens de remarquer que sur les cellules qui comprennent des dates,
celles-ci changent de format et passent du format français au format anglais
?????????
As-tu une explication ??
JJ


"Jacky" <news.microsoft.com> a écrit dans le message news:

OK. Merci Frédéric

Bonne nuit


"Frédéric Sigonneau" a écrit dans le
message

news:
Bonjour,

CountIf, c'est NB.SI. Il est possible en VBA d'utiliser les fonctions de
feuille

de calcul (avec leur nom anglais) en utilisant soit
Application.WorksheetFunction soit Application tout court. Les * sont
des


caractères génériques acceptés par NB.SI. Ils permettent de rechercher
une


chaîne de caractères (ici dans la variable Mot) qui peut être précédée
et/ou

suivie d'un ou plusieurs autres caractères dans une chaîne plus
importante.


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric
J'ai du faire une recherche pour ta réponse, je ne sais pas ce qui ce
passe,


mais les messages de news ne s'affichent pas correctement chez moi en
ce



moment .

Merci pour les codes qui fonctionnent parfaitement.
Pourrais-je abuser de ta compétence pour quelques explications sur:

If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End


Je ne connais pas "CountIf", et ne comprend pas les "*"
Serait ce fameux SOMMEPROD, si souvent employé ici ?

Merci et bonne journée
JJ

"Frédéric Sigonneau" a écrit dans le
message


news:
Bonjour,


Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot
soit





cachées

Ce code peut faire cela :

Sub ChercheEtCache()
Dim DerLi&, i&, Libre&, Mot$

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
DerLi = Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Range("A" & i & ":O" & i), "*" & Mot & "*") = 0 Then
Range("A" & i).EntireRow.Hidden = True
End If
Next i
If Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Cells.EntireRow.Hidden = False
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

et éventuellement copiées dans une feuille rajoutée
automatiquement





les
lignes ou ce mot est contenu.


Pour cette alternative, utilise plutôt ce code :

Sub ChercheEtCopie()
Dim DerLi&, i&, Libre&, Mot$
Dim Source As Worksheet, Cible As Worksheet

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
Set Source = ActiveSheet
Sheets.Add
Set Cible = ActiveSheet
Cible.Range("A1:O1").Value = Source.Range("A1:O1").Value
DerLi = Source.Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End If
Next i
If Cible.Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Application.DisplayAlerts = False
Cible.Delete
Application.DisplayAlerts = True
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

Merci et bonne journée
JJ


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !














Avatar
Frédéric Sigonneau
Bonsoir,

Non, pas d'explication. Il n'y a pas de raison, a priori, de rencontrer ce
problème en copiant des données d'une feuille de calcul à une autre (d'autant
qu'on ne fait pas vraiment de copie dans le code proposé), dans le même
classeur, sur la même machine...
C'est un problème rencontré quand on récupère en VBA des dates d'un fichier
texte ou csv, ou qu'on envoie des dates entrées dans un contrôle qui n'accepte
que du texte (textbox d'un userform ou inputbox par exemple) dans une feuille de
calcul sans les convertir en date valide (avec la fonction CDate par ex).
Tu es peut-être dans ce cas si ton projet comprend d'autres éléments que ceux
exposés au départ dans ta question.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


re Frédéric
Je viens de remarquer que sur les cellules qui comprennent des dates,
celles-ci changent de format et passent du format français au format anglais
?????????
As-tu une explication ??
JJ

"Jacky" <news.microsoft.com> a écrit dans le message news:

OK. Merci Frédéric

Bonne nuit


"Frédéric Sigonneau" a écrit dans le
message

news:
Bonjour,

CountIf, c'est NB.SI. Il est possible en VBA d'utiliser les fonctions de
feuille

de calcul (avec leur nom anglais) en utilisant soit
Application.WorksheetFunction soit Application tout court. Les * sont
des


caractères génériques acceptés par NB.SI. Ils permettent de rechercher
une


chaîne de caractères (ici dans la variable Mot) qui peut être précédée
et/ou

suivie d'un ou plusieurs autres caractères dans une chaîne plus
importante.


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric
J'ai du faire une recherche pour ta réponse, je ne sais pas ce qui ce
passe,


mais les messages de news ne s'affichent pas correctement chez moi en
ce



moment .

Merci pour les codes qui fonctionnent parfaitement.
Pourrais-je abuser de ta compétence pour quelques explications sur:

If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End


Je ne connais pas "CountIf", et ne comprend pas les "*"
Serait ce fameux SOMMEPROD, si souvent employé ici ?

Merci et bonne journée
JJ

"Frédéric Sigonneau" a écrit dans le
message


news:
Bonjour,


Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot
soit





cachées

Ce code peut faire cela :

Sub ChercheEtCache()
Dim DerLi&, i&, Libre&, Mot$

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
DerLi = Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Range("A" & i & ":O" & i), "*" & Mot & "*") = 0 Then
Range("A" & i).EntireRow.Hidden = True
End If
Next i
If Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Cells.EntireRow.Hidden = False
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

et éventuellement copiées dans une feuille rajoutée
automatiquement





les
lignes ou ce mot est contenu.


Pour cette alternative, utilise plutôt ce code :

Sub ChercheEtCopie()
Dim DerLi&, i&, Libre&, Mot$
Dim Source As Worksheet, Cible As Worksheet

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
Set Source = ActiveSheet
Sheets.Add
Set Cible = ActiveSheet
Cible.Range("A1:O1").Value = Source.Range("A1:O1").Value
DerLi = Source.Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0 Then
Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End If
Next i
If Cible.Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Application.DisplayAlerts = False
Cible.Delete
Application.DisplayAlerts = True
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

Merci et bonne journée
JJ


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
















Avatar
Jacky
Merci Frédéric
Les données sont entrées par la fonction "GRILLE" de Excel et celles qui ne
sont pas formatées correctement sont certainement celles ou une erreur
d'entrée avait été faite et modifiées par la suite, donc reconnue comme
texte, je pense
Je vais essayer de transformer les colonnes contenant des dates

Cordialement
JJ
"Frédéric Sigonneau" a écrit dans le message
news:
Bonsoir,

Non, pas d'explication. Il n'y a pas de raison, a priori, de rencontrer ce
problème en copiant des données d'une feuille de calcul à une autre
(d'autant

qu'on ne fait pas vraiment de copie dans le code proposé), dans le même
classeur, sur la même machine...
C'est un problème rencontré quand on récupère en VBA des dates d'un
fichier

texte ou csv, ou qu'on envoie des dates entrées dans un contrôle qui
n'accepte

que du texte (textbox d'un userform ou inputbox par exemple) dans une
feuille de

calcul sans les convertir en date valide (avec la fonction CDate par ex).
Tu es peut-être dans ce cas si ton projet comprend d'autres éléments que
ceux

exposés au départ dans ta question.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


re Frédéric
Je viens de remarquer que sur les cellules qui comprennent des dates,
celles-ci changent de format et passent du format français au format
anglais


?????????
As-tu une explication ??
JJ

"Jacky" <news.microsoft.com> a écrit dans le message news:

OK. Merci Frédéric

Bonne nuit


"Frédéric Sigonneau" a écrit dans le
message

news:
Bonjour,

CountIf, c'est NB.SI. Il est possible en VBA d'utiliser les
fonctions de




feuille
de calcul (avec leur nom anglais) en utilisant soit
Application.WorksheetFunction soit Application tout court. Les *
sont




des
caractères génériques acceptés par NB.SI. Ils permettent de
rechercher




une
chaîne de caractères (ici dans la variable Mot) qui peut être
précédée




et/ou
suivie d'un ou plusieurs autres caractères dans une chaîne plus
importante.


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric
J'ai du faire une recherche pour ta réponse, je ne sais pas ce qui
ce





passe,
mais les messages de news ne s'affichent pas correctement chez moi
en





ce
moment .

Merci pour les codes qui fonctionnent parfaitement.
Pourrais-je abuser de ta compétence pour quelques explications
sur:






If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0
Then






Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End


Je ne connais pas "CountIf", et ne comprend pas les "*"
Serait ce fameux SOMMEPROD, si souvent employé ici ?

Merci et bonne journée
JJ

"Frédéric Sigonneau" a écrit dans
le





message
news:
Bonjour,


Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce
mot







soit
cachées

Ce code peut faire cela :

Sub ChercheEtCache()
Dim DerLi&, i&, Libre&, Mot$

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
DerLi = Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Range("A" & i & ":O" & i), "*" & Mot & "*") = 0 Then
Range("A" & i).EntireRow.Hidden = True
End If
Next i
If Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Cells.EntireRow.Hidden = False
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

et éventuellement copiées dans une feuille rajoutée
automatiquement





les
lignes ou ce mot est contenu.


Pour cette alternative, utilise plutôt ce code :

Sub ChercheEtCopie()
Dim DerLi&, i&, Libre&, Mot$
Dim Source As Worksheet, Cible As Worksheet

Mot = InputBox("Mot à chercher :")
If Mot = "" Then Exit Sub
Set Source = ActiveSheet
Sheets.Add
Set Cible = ActiveSheet
Cible.Range("A1:O1").Value = Source.Range("A1:O1").Value
DerLi = Source.Cells(Rows.Count, "A").End(xlUp).Row
For i = DerLi To 2 Step -1
If Application.CountIf _
(Source.Range("A" & i & ":O" & i), "*" & Mot & "*") > 0
Then






Libre = Cible.Cells(Rows.Count, "A").End(xlUp).Row + 1
Cible.Range("A" & Libre & ":O" & Libre).Value = _
Source.Range("A" & i & ":O" & i).Value
End If
Next i
If Cible.Cells(Rows.Count, "A").End(xlUp).Row = 1 Then
Application.DisplayAlerts = False
Cible.Delete
Application.DisplayAlerts = True
MsgBox "'" & Mot & "' n'a pas été trouvé !"
End If
End Sub

Merci et bonne journée
JJ


FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !




















Avatar
Patrick Catarsi
Le 24/01/04 17:41, dans ,
«  » <news.microsoft.com> a écrit :

Bonsoir Philippe

Il y a peut être une piste de réponse à ta question (qui s'est donc collée
à la suite d'un fil initié le

03/12/2003)
Chez moi, il est apparu dans le bon fil, mais à 17:27


Pour ce qui concerne ma recherche, le mot peut se trouver dans n'importe
quelle colonne et toutes les lignes.
J'ai essayé avec le filtre élaboré, sans succès. Je n'ai pas beaucoup
d'experience avec les filtres.

Salutations
JJ

"Philippe.R" a écrit dans le message news:

Bonjour Jacky,
Il y a peut être une piste de réponse à ta question (qui s'est donc collée
à la suite d'un fil initié le

03/12/2003)
avec l'utilisation du filtre, tout du moins pour ce qui est de masquer ;
tout dépends si le mot peut se

trouver dans n'importe quelle colonne ou toujours dans la même.
Par ailleurs, n'oublie pas que l'enregistreur de macros est ton ami.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Jacky" a écrit dans le message de
news:%23z%
Bonjour à tous

J'ai un tableau de données(15col * 250 Lig(modifiable))
Je sélectionne un mot à travers un inputbox
Je voudrais que toutes les lignes qui ne comprennent PAS ce mot soit
cachées


et éventuellement copiées dans une feuille rajoutée automatiquement les
lignes ou ce mot est contenu.

Merci et bonne journée
JJ










Slt,

Désolé pour le temps de la réponse mais j'ai voulu vérifier quelque chose
Je crois que tu peut résoudre ton problème avec le filtre élaboré
Tu dois créer une zone critères contenant toutes tes colonnes
exemple:
Nom Prénom etc etc etc
Voiture
voiture
voiture
voiture
voiture
Cet exemple sigifie que tu vas rechercher dans chaque colonne le mot
"voiture". Et tu extrait sur une zone d'extraction qui comporte les colonnes
souhaitées les lignes qui comprendront dans une des colonnes au moins le mot
voiture.
Quand tu vas lancer le filtre élaboré la base de données sera ton tableau,
la zone de critéres comprendra la ligne d'entête plus toutes les lignes
voiture et la zone critères sera désigné par toi à un endroit. Ne pas
oublier de cocher la case extraction
Pour simplifier la recherche tu peut remplacer le mot "Voiture" dans chaque
colonne de la zone de critères par la référence à une cellule dans laquelle
tu entrerai le mot recherché(Voiture dans l'exemple).
La zone de critère ainsi sélectionner va se comporter comme une fonction
"ou" alors que sur une ligne identique ce serait une fonction "et".
Je suis à ton service pour des renseignements ultérieurs
patrick