Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

paramètre de la fonction Array

6 réponses
Avatar
Michel MTO
Bonjour à toutes et à tous,

je voudrais écrire ceci, où MonAnnée et MaRecherche sont des variables, mais
la synthaxe n'est pas bonne :

Sheets(Array("Janvier " & MonAnnée , "Février " & MonAnnée, "Mars " _
& MonAnnée, "Avril " & MonAnnée, "Mai " & MonAnnée, "Juin " & MonAnnée,
"Juillet " _
& MonAnnée, "Août " & MonAnnée, "Septembre " & MonAnnée, "Octobre " _
& MonAnnée, "Novembre " & MonAnnée, "Décembre " &
MonAnnée)).Find(What:=MaRecherche, after:=ActiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=False) _
.Activate

L'erreur retournée : Erreur d'exécution 438, Propriété ou méthode non gérée
par cet objet !!

Pourriez vous m'indiquez la synthaxe exacte.

Merci par avance

Michel MTO

6 réponses

Avatar
michdenis
Bonjour,

Pour reprendre un exemple simple :

Ceci fonctionne
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Mais tu ne peux utiliser la propriété "Activate" à un tableau de feuille
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Activate

Sauf si toutes tes feuilles sont sélectionnées et que tu veux rendre
active une feuille particulière tout en conservant la sélection intacte
alors tu peux écrire :
Sheets("Feuil2").Activate


"Michel MTO" a écrit dans le message de groupe de
discussion : hu02r8$hvo$
Bonjour à toutes et à tous,

je voudrais écrire ceci, où MonAnnée et MaRecherche sont des variables, mais
la synthaxe n'est pas bonne :

Sheets(Array("Janvier " & MonAnnée , "Février " & MonAnnée, "Mars " _
& MonAnnée, "Avril " & MonAnnée, "Mai " & MonAnnée, "Juin " & MonAnnée,
"Juillet " _
& MonAnnée, "Août " & MonAnnée, "Septembre " & MonAnnée, "Octobre " _
& MonAnnée, "Novembre " & MonAnnée, "Décembre " &
MonAnnée)).Find(What:=MaRecherche, after:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse) _
.Activate

L'erreur retournée : Erreur d'exécution 438, Propriété ou méthode non gérée
par cet objet !!

Pourriez vous m'indiquez la synthaxe exacte.

Merci par avance

Michel MTO
Avatar
Michel MTO
Bonjour Denis,

Ce que je cherche à faire :
1) Sélectionner toutes les feuilles de janvier à décembre (avec la variante
sur l'année), qui se trouve dans mon classeur, dans lequel d'autres feuilles
existent.
2) Je propose une invite (MaRecherche=inputbox"(Entrer votre recherche"))
avec le texte à rechercher
3)Je recherche Dans les 12 feuilles de l'année et j'active la 1ère cellule
trouvée.
4) je fait apparaitre un msbox = > est ce bien la cellule que vous
recherchez, si oui exit de la procèdure, sinon on continue la recherche
toujours dans les 12 feuilles et j'active l'occurence suivante trouvée => le
message réapparait => est ce bien la cellule que vous recherchez, si oui
exit de la procèdure, sinon on continue la recherche toujours dans les 12
feuilles et j'active l'occurence suivante trouvée, etc...

J'espère être clair

Merci

Michel MTO

"michdenis" a écrit dans le message de
news:
Bonjour,

Pour reprendre un exemple simple :

Ceci fonctionne
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Mais tu ne peux utiliser la propriété "Activate" à un tableau de feuille
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Activate

Sauf si toutes tes feuilles sont sélectionnées et que tu veux rendre
active une feuille particulière tout en conservant la sélection intacte
alors tu peux écrire :
Sheets("Feuil2").Activate


"Michel MTO" a écrit dans le message de groupe


de
discussion : hu02r8$hvo$
Bonjour à toutes et à tous,

je voudrais écrire ceci, où MonAnnée et MaRecherche sont des variables,


mais
la synthaxe n'est pas bonne :

Sheets(Array("Janvier " & MonAnnée , "Février " & MonAnnée, "Mars " _
& MonAnnée, "Avril " & MonAnnée, "Mai " & MonAnnée, "Juin " &


MonAnnée,
"Juillet " _
& MonAnnée, "Août " & MonAnnée, "Septembre " & MonAnnée, "Octobre " _
& MonAnnée, "Novembre " & MonAnnée, "Décembre " &
MonAnnée)).Find(What:=MaRecherche, after:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse) _
.Activate

L'erreur retournée : Erreur d'exécution 438, Propriété ou méthode non


gérée
par cet objet !!

Pourriez vous m'indiquez la synthaxe exacte.

Merci par avance

Michel MTO

Avatar
michdenis
Je te propose une procédure qui devrait faire ce que tu recherches.

Au sujet de la recherche, si la recherche doit se faire sur le contenu de la
cellule entière plutôt que sur une partie de son contenu, tu dois modifier
le paramètre suivant :
LookAt:=xlPart pour LookAt:=xlWhole

'-------------------------------------
Sub SearchAllSheets()
Dim strSearchString As String
Dim ws As Worksheet
Dim foundCell As Range
Dim returnValue As Variant
Dim loopAddr As String

strSearchString = InputBox(Prompt:= _
"Entrer la chaîne recherchée.", _
Title:=ThisWorkbook.Name)
For Each ws In Worksheets
With ws
.Activate
Set foundCell = .Cells.Find( _
What:=strSearchString, _
LookIn:=xlValues, _
LookAt:=xlPart)
If Not foundCell Is Nothing Then
loopAddr = foundCell.Address
Do
foundCell.Activate
returnValue = MsgBox("Trouvé """ & strSearchString & _
""" à " & foundCell.Address, _
vbOKCancel, ActiveSheet.Name)
If returnValue = vbCancel Then Exit For
Set foundCell = .Cells.FindNext( _
After:=foundCell)
Loop While Not foundCell Is Nothing And _
foundCell.Address <> loopAddr
End If
End With
Next ws
End Sub
'-------------------------------------





"Michel MTO" a écrit dans le message de groupe de
discussion : hu0em2$302$
Bonjour Denis,

Ce que je cherche à faire :
1) Sélectionner toutes les feuilles de janvier à décembre (avec la variante
sur l'année), qui se trouve dans mon classeur, dans lequel d'autres feuilles
existent.
2) Je propose une invite (MaRecherche=inputbox"(Entrer votre recherche"))
avec le texte à rechercher
3)Je recherche Dans les 12 feuilles de l'année et j'active la 1ère cellule
trouvée.
4) je fait apparaitre un msbox = > est ce bien la cellule que vous
recherchez, si oui exit de la procèdure, sinon on continue la recherche
toujours dans les 12 feuilles et j'active l'occurence suivante trouvée => le
message réapparait => est ce bien la cellule que vous recherchez, si oui
exit de la procèdure, sinon on continue la recherche toujours dans les 12
feuilles et j'active l'occurence suivante trouvée, etc...

J'espère être clair

Merci

Michel MTO

"michdenis" a écrit dans le message de
news:
Bonjour,

Pour reprendre un exemple simple :

Ceci fonctionne
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Mais tu ne peux utiliser la propriété "Activate" à un tableau de feuille
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Activate

Sauf si toutes tes feuilles sont sélectionnées et que tu veux rendre
active une feuille particulière tout en conservant la sélection intacte
alors tu peux écrire :
Sheets("Feuil2").Activate


"Michel MTO" a écrit dans le message de groupe


de
discussion : hu02r8$hvo$
Bonjour à toutes et à tous,

je voudrais écrire ceci, où MonAnnée et MaRecherche sont des variables,


mais
la synthaxe n'est pas bonne :

Sheets(Array("Janvier " & MonAnnée , "Février " & MonAnnée, "Mars " _
& MonAnnée, "Avril " & MonAnnée, "Mai " & MonAnnée, "Juin " &


MonAnnée,
"Juillet " _
& MonAnnée, "Août " & MonAnnée, "Septembre " & MonAnnée, "Octobre " _
& MonAnnée, "Novembre " & MonAnnée, "Décembre " &
MonAnnée)).Find(What:=MaRecherche, after:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse) _
.Activate

L'erreur retournée : Erreur d'exécution 438, Propriété ou méthode non


gérée
par cet objet !!

Pourriez vous m'indiquez la synthaxe exacte.

Merci par avance

Michel MTO

Avatar
isabelle
bonjour Michel,

Sub Recherche_et_next()
For Each f In Sheets(Array("Feuil1", "Feuil2", "Feuil3", "Feuil4",
"Feuil5"))
Sheets(f.Name).Select
With f.Cells
Set c = .Find(What:="toto")
If Not c Is Nothing Then
Range(c.Address).Select
firstaddress = c.Address
rep = MsgBox("adresse - " & c.Address & " - trouver,
voulez-vous continuer ?", vbYesNo)
If rep <> 6 Then Exit Sub
Set c = .FindNext(c)
Do While c.Address <> firstaddress And Not c Is Nothing
Range(c.Address).Select
rep = MsgBox("adresse - " & c.Address & " - trouver,
voulez-vous continuer ?", vbYesNo)
If rep <> 6 Then Exit Sub
Set c = .FindNext(c)
Loop
End If
End With
Next
End Sub

isabelle

Le 2010-05-31 09:48, Michel MTO a écrit :
Bonjour Denis,

Ce que je cherche à faire :
1) Sélectionner toutes les feuilles de janvier à décembre (avec la variante
sur l'année), qui se trouve dans mon classeur, dans lequel d'autres feuilles
existent.
2) Je propose une invite (MaRecherche=inputbox"(Entrer votre recherche"))
avec le texte à rechercher
3)Je recherche Dans les 12 feuilles de l'année et j'active la 1ère cellule
trouvée.
4) je fait apparaitre un msbox => est ce bien la cellule que vous
recherchez, si oui exit de la procèdure, sinon on continue la recherche
toujours dans les 12 feuilles et j'active l'occurence suivante trouvée => le
message réapparait => est ce bien la cellule que vous recherchez, si oui
exit de la procèdure, sinon on continue la recherche toujours dans les 12
feuilles et j'active l'occurence suivante trouvée, etc...

J'espère être clair

Merci

Michel MTO

"michdenis" a écrit dans le message de
news:

Bonjour,

Pour reprendre un exemple simple :

Ceci fonctionne
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select

Mais tu ne peux utiliser la propriété "Activate" à un tableau de feuille
Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Activate

Sauf si toutes tes feuilles sont sélectionnées et que tu veux rendre
active une feuille particulière tout en conservant la sélection intacte
alors tu peux écrire :
Sheets("Feuil2").Activate


"Michel MTO" a écrit dans le message de groupe



de

discussion : hu02r8$hvo$
Bonjour à toutes et à tous,

je voudrais écrire ceci, où MonAnnée et MaRecherche sont des variables,



mais

la synthaxe n'est pas bonne :

Sheets(Array("Janvier "& MonAnnée , "Février "& MonAnnée, "Mars " _
& MonAnnée, "Avril "& MonAnnée, "Mai "& MonAnnée, "Juin "&



MonAnnée,

"Juillet " _
& MonAnnée, "Août "& MonAnnée, "Septembre "& MonAnnée, "Octobre " _
& MonAnnée, "Novembre "& MonAnnée, "Décembre "&
MonAnnée)).Find(What:=MaRecherche, after:¬tiveCell, LookIn:=xlValues,
LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:úlse) _
.Activate

L'erreur retournée : Erreur d'exécution 438, Propriété ou méthode non



gérée

par cet objet !!

Pourriez vous m'indiquez la synthaxe exacte.

Merci par avance

Michel MTO






Avatar
Michel MTO
Merci encore une fois, au poil.

Je m'était mal orienté dans la rédaction de ma procèdure, je m'appuyais sur
le code généré par l'enregistrement auto !!

à bientôt sur answers ? ou ponx ?

Michel MTO

"michdenis" a écrit dans le message de
news:
Je te propose une procédure qui devrait faire ce que tu recherches.

Au sujet de la recherche, si la recherche doit se faire sur le contenu de


la
cellule entière plutôt que sur une partie de son contenu, tu dois modifier
le paramètre suivant :
LookAt:=xlPart pour LookAt:=xlWhole

'-------------------------------------
Sub SearchAllSheets()
Dim strSearchString As String
Dim ws As Worksheet
Dim foundCell As Range
Dim returnValue As Variant
Dim loopAddr As String

strSearchString = InputBox(Prompt:= _
"Entrer la chaîne recherchée.", _
Title:=ThisWorkbook.Name)
For Each ws In Worksheets
With ws
.Activate
Set foundCell = .Cells.Find( _
What:=strSearchString, _
LookIn:=xlValues, _
LookAt:=xlPart)
If Not foundCell Is Nothing Then
loopAddr = foundCell.Address
Do
foundCell.Activate
returnValue = MsgBox("Trouvé """ & strSearchString & _
""" à " & foundCell.Address, _
vbOKCancel, ActiveSheet.Name)
If returnValue = vbCancel Then Exit For
Set foundCell = .Cells.FindNext( _
After:=foundCell)
Loop While Not foundCell Is Nothing And _
foundCell.Address <> loopAddr
End If
End With
Next ws
End Sub
'-------------------------------------





"Michel MTO" a écrit dans le message de groupe


de
discussion : hu0em2$302$
Bonjour Denis,

Ce que je cherche à faire :
1) Sélectionner toutes les feuilles de janvier à décembre (avec la


variante
sur l'année), qui se trouve dans mon classeur, dans lequel d'autres


feuilles
existent.
2) Je propose une invite (MaRecherche=inputbox"(Entrer votre recherche"))
avec le texte à rechercher
3)Je recherche Dans les 12 feuilles de l'année et j'active la 1ère cellule
trouvée.
4) je fait apparaitre un msbox = > est ce bien la cellule que vous
recherchez, si oui exit de la procèdure, sinon on continue la recherche
toujours dans les 12 feuilles et j'active l'occurence suivante trouvée =>


le
message réapparait => est ce bien la cellule que vous recherchez, si oui
exit de la procèdure, sinon on continue la recherche toujours dans les 12
feuilles et j'active l'occurence suivante trouvée, etc...

J'espère être clair

Merci

Michel MTO

"michdenis" a écrit dans le message de
news:
> Bonjour,
>
> Pour reprendre un exemple simple :
>
> Ceci fonctionne
> Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
>
> Mais tu ne peux utiliser la propriété "Activate" à un tableau de feuille
> Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Activate
>
> Sauf si toutes tes feuilles sont sélectionnées et que tu veux rendre
> active une feuille particulière tout en conservant la sélection intacte
> alors tu peux écrire :
> Sheets("Feuil2").Activate
>
>
> "Michel MTO" a écrit dans le message de groupe
de
> discussion : hu02r8$hvo$
> Bonjour à toutes et à tous,
>
> je voudrais écrire ceci, où MonAnnée et MaRecherche sont des variables,
mais
> la synthaxe n'est pas bonne :
>
> Sheets(Array("Janvier " & MonAnnée , "Février " & MonAnnée, "Mars "


_
> & MonAnnée, "Avril " & MonAnnée, "Mai " & MonAnnée, "Juin " &
MonAnnée,
> "Juillet " _
> & MonAnnée, "Août " & MonAnnée, "Septembre " & MonAnnée, "Octobre "


_
> & MonAnnée, "Novembre " & MonAnnée, "Décembre " &
> MonAnnée)).Find(What:=MaRecherche, after:¬tiveCell, LookIn:=xlValues,
> LookAt:= _
> xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
> MatchCase:úlse) _
> .Activate
>
> L'erreur retournée : Erreur d'exécution 438, Propriété ou méthode non
gérée
> par cet objet !!
>
> Pourriez vous m'indiquez la synthaxe exacte.
>
> Merci par avance
>
> Michel MTO
>
Avatar
Michel MTO
Bonjour Isabelle,
Je te remercie pour ta proposition, qui m'a l'air également intéressante.

je regarde çà, en détail.

Michel MTO