Recherche une valeur dans toutes les feuilles sauf ne

Fermé
arca2001 Messages postés 7 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 septembre 2016 - 11 sept. 2016 à 14:16
arca2001 Messages postés 7 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 septembre 2016 - 11 sept. 2016 à 15:38
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

<> 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

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
11 sept. 2016 à 15:25
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

1
arca2001 Messages postés 7 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 septembre 2016
11 sept. 2016 à 15:38
Merci beaucoup
0
arca2001 Messages postés 7 Date d'inscription mercredi 17 janvier 2007 Statut Membre Dernière intervention 11 septembre 2016
11 sept. 2016 à 14:18
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
0