Recherche une valeur dans toutes les feuilles sauf ne
arca2001
Messages postés
7
Statut
Membre
-
arca2001 Messages postés 7 Statut Membre -
arca2001 Messages postés 7 Statut Membre -
Bonjour,
je cherche a faire une macro qui me recherche un numero de compte situe n importe ou dans toutes les feuilles et qu'il m'ouvre ensuite cette feuille en se positionnant sur la cellule. j'ai trouver des trucs mais ca plante. je ne dois pas bien m y prendre.
voici mon code
je cherche a faire une macro qui me recherche un numero de compte situe n importe ou dans toutes les feuilles et qu'il m'ouvre ensuite cette feuille en se positionnant sur la cellule. j'ai trouver des trucs mais ca plante. je ne dois pas bien m y prendre.
voici mon code
<> sub recup()
Dim MyArray() As String
Dim i As Integer, X As Byte
'CCr = cellule dans la laquelle ce trouve le compte a rechercher dans le classeur
Dim CCr As Range
'vr = valleur recherchée
Dim vr As String
Dim Rng As Range
'input box pour savoir quoi chercher
Set CCr = Application.InputBox("Sélectionner le compte à rechercher :", Type:=8)
vr = Rng.Text
' pour partir de la feuille 2 jusqu'a la derniere definir cet ensemble comme etant myarray(x) et agir sur chaque feuille de cette ensembl
For i = 2 To Sheets.Count
ReDim Preserve MyArray(X)
MyArray(X) = Sheets(i).Name
X = X + 1
'recherche dans chaque feuilles
Set Rng = MyArray(X).Range("A1:z10000").Find(What:=vr)
'se positionne
Cells(Rng).Select
Next
End Sub
2 réponses
-
Bonjour Arca, bonjour le forum,
Essaie comme ça :
Public Sub Macro2() Dim CVC As Range 'déclare la variable CVC (Cellule de la Valeur Cherchée) Dim VC As String 'déclare la variable VC (Valeur Cherchée) Dim R As Range 'déclare la variable R (Recherche) Dim NOA As String 'déclare la variable NOA (Nom de l'Onglet Actif) Dim O As Worksheet 'déclare la variable O (Onglet) Set CVC = Application.InputBox("Sélectionner le compte à rechercher :", Type:=8) 'définit la variable CVC If CVC.Value = "" Then 'condition : si la valeur de CVC est vide Exit Sub 'sort de la procédure Else 'sinon VC = CVC.Value 'définit la variable VC End If 'fin de la condition NOA = ActiveSheet.Name 'définit le nom de l'onglet actif NOA For Each O In Sheets 'boucle sur tous les onglets du classeur If Not O.Name = NOA Then 'condition 1 : si le nom de l'onglet de la boucle n'est pas NOA Set R = O.Cells.Find(VC, , xlValues, xlWhole) 'définit la recherche R If Not R Is Nothing Then 'condition 2 : si il existe au moins une occurrence trouvée O.Select 'sélectionne l'onglet O R.Select 'sélectionne la première occurrence trouvée Exit Sub 'sort de la procédure End If 'fin de la condition 2 End If 'fin de la condition 1 Next O 'prochain onglet de la boucle End Sub
-
oups j'ai validé trop vite, donc il plante il veut pas d'un find sur un array, je dois utiliser quoi alors? s'il cherche dans toute les feuilles il va s'arreter sur la première.
d'avance merci beaucoup de votre aide