Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Bonjour.
Qu'est-ce que tu cherches à faire au juste ?
Cordialement.
DanielSub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx",
After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Bonjour.
Qu'est-ce que tu cherches à faire au juste ?
Cordialement.
Daniel
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx",
After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Bonjour.
Qu'est-ce que tu cherches à faire au juste ?
Cordialement.
DanielSub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx",
After:¬tiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" a écrit dans le message de groupe de discussion :
49858976$0$18750$
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" <esox38@hotmail.com> a écrit dans le message de groupe de discussion :
49858976$0$18750$426a74cc@news.free.fr...
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" a écrit dans le message de groupe de discussion :
49858976$0$18750$
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" a écrit dans le message de groupe de discussion :
49858976$0$18750$
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" <esox38@hotmail.com> a écrit dans le message de groupe de discussion :
49858976$0$18750$426a74cc@news.free.fr...
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" a écrit dans le message de groupe de discussion :
49858976$0$18750$
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Le paramètre "Match" de la méthode "Find" est là
justement pour ça. Si tu veux qu'il respecte la casse,
tu lui passes la valeur True sinon tu lui attribue la valeur False
Dans cette ligne de code de la procédure, utilise True ou False
selon ce que tu désires :
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, True)
"Esox38" a écrit dans le message de groupe de discussion :
4985af59$0$7886$
Bonjour michdenis,
Merci pour ta procédure, elle répond en partie à ma demande, le problème
est que si la valeur rechercher est écrite différemment (majuscule ou
non...) alors la valeur n'est pas trouvée.
Esox
michdenis a écrit :Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" a écrit dans le message de groupe de discussion :
49858976$0$18750$
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Le paramètre "Match" de la méthode "Find" est là
justement pour ça. Si tu veux qu'il respecte la casse,
tu lui passes la valeur True sinon tu lui attribue la valeur False
Dans cette ligne de code de la procédure, utilise True ou False
selon ce que tu désires :
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, True)
"Esox38" <esox38@hotmail.com> a écrit dans le message de groupe de discussion :
4985af59$0$7886$426a34cc@news.free.fr...
Bonjour michdenis,
Merci pour ta procédure, elle répond en partie à ma demande, le problème
est que si la valeur rechercher est écrite différemment (majuscule ou
non...) alors la valeur n'est pas trouvée.
Esox
michdenis a écrit :
Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" <esox38@hotmail.com> a écrit dans le message de groupe de discussion :
49858976$0$18750$426a74cc@news.free.fr...
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Le paramètre "Match" de la méthode "Find" est là
justement pour ça. Si tu veux qu'il respecte la casse,
tu lui passes la valeur True sinon tu lui attribue la valeur False
Dans cette ligne de code de la procédure, utilise True ou False
selon ce que tu désires :
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, True)
"Esox38" a écrit dans le message de groupe de discussion :
4985af59$0$7886$
Bonjour michdenis,
Merci pour ta procédure, elle répond en partie à ma demande, le problème
est que si la valeur rechercher est écrite différemment (majuscule ou
non...) alors la valeur n'est pas trouvée.
Esox
michdenis a écrit :Quand tu boucles sur chaque cellule de la plage
la méthode Find va nécessairement au moins une
occurrence, soit celle de la cellule où origine la recherche.
Même si tu indiques de débuter la recherche sur la cellule
suivante (ce qu'elle fait d'ailleurs par défaut), sa boucle se
termine pas la cellule d'où elle est partie et ce dans le cas
où elle n'a pas trouvé ailleurs dans la feuille. Est-ce réellement
le rôle que tu veux faire jouer à la méthode "Find"
'-------------------------------
Sub test()
Dim DerLig As Long, DerCol As Integer
Dim Rg As Range, C As Range
On Error Resume Next
With ActiveSheet
'Définit l'étendue de la plage de la feuille
'Dernière ligne
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Dernière colonne
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
'Attribue à une variable objet seulement
'les cellules n'affichant pas "" ou vide
'de la plage
Set Rg = .Range("A1", .Cells(DerLig, DerCol)). _
SpecialCells(xlCellTypeConstants, 23)
End With
With Rg
'Boucle sur chacune des cellules de la plage
For Each C In .Cells
'voir explication du fil
Set trouve = .Find(C, , xlValues, xlPart, , xlNext, False)
If C = trouve Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
End With
End Sub
'-------------------------------
"Esox38" a écrit dans le message de groupe de discussion :
49858976$0$18750$
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Il y a 2 façons de faire une recherche:
soit avec une boucle qui passe par toutes les cellules de la sélection
For Each cel In Selection
If cel.Value = "aaa" Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
soit avec les méthodes FIND et FINDNEXT
Set Sh = Worksheets("Feuil1")
With Sh
With .Range("a1:G200")
Set Trouve = .Find(Mot, , xlValues, xlWhole)
If Not Trouve Is Nothing Then
Adr1 = Trouve.Address
While Adr <> Adr1
Mot = Sh.Cells(Trouve.Row, "E").Value
MsgBox Trouve.Address & " " & Mot
Set Trouve = .FindNext(Trouve)
Adr = Trouve.Address
Wend
End If
End With
End With
Utiliser la méthode FIND dans la boucle For Each cel In Selection
me semble ne conduire nulle part.
Mishell
"Esox38" wrote in message
news:49858976$0$18750$Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Il y a 2 façons de faire une recherche:
soit avec une boucle qui passe par toutes les cellules de la sélection
For Each cel In Selection
If cel.Value = "aaa" Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
soit avec les méthodes FIND et FINDNEXT
Set Sh = Worksheets("Feuil1")
With Sh
With .Range("a1:G200")
Set Trouve = .Find(Mot, , xlValues, xlWhole)
If Not Trouve Is Nothing Then
Adr1 = Trouve.Address
While Adr <> Adr1
Mot = Sh.Cells(Trouve.Row, "E").Value
MsgBox Trouve.Address & " " & Mot
Set Trouve = .FindNext(Trouve)
Adr = Trouve.Address
Wend
End If
End With
End With
Utiliser la méthode FIND dans la boucle For Each cel In Selection
me semble ne conduire nulle part.
Mishell
"Esox38" <esox38@hotmail.com> wrote in message
news:49858976$0$18750$426a74cc@news.free.fr...
Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox
Il y a 2 façons de faire une recherche:
soit avec une boucle qui passe par toutes les cellules de la sélection
For Each cel In Selection
If cel.Value = "aaa" Then
MsgBox ("Ok") 'message de test ok ou non
End If
Next
soit avec les méthodes FIND et FINDNEXT
Set Sh = Worksheets("Feuil1")
With Sh
With .Range("a1:G200")
Set Trouve = .Find(Mot, , xlValues, xlWhole)
If Not Trouve Is Nothing Then
Adr1 = Trouve.Address
While Adr <> Adr1
Mot = Sh.Cells(Trouve.Row, "E").Value
MsgBox Trouve.Address & " " & Mot
Set Trouve = .FindNext(Trouve)
Adr = Trouve.Address
Wend
End If
End With
End With
Utiliser la méthode FIND dans la boucle For Each cel In Selection
me semble ne conduire nulle part.
Mishell
"Esox38" wrote in message
news:49858976$0$18750$Bonjour à tous,
J'ai fait ce bout de code pour rechercher une valeur (avec ou sans
majuscule)dans une sélection de cellule mais j'ai une erreur 424 type
objet requis.
Sub test()
Dim cel As Range
...
If LeftParam = "Oui" Then
ActiveSheet.UsedRange.Select
For Each cel In Selection
If cel.Text = Cells.Find(What:="xxxxxx", After:¬tiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Activate Then
MsgBox ("Ok")'message de test ok ou non
End If
Next
End If
End Sub
Je vois pas en quoi il manque un objet? vous avez un idée.
Merci
Esox