La méthode rows de l'objet _global a échoué

Bonjour

lorsqu'on fait une recherche dans listbox par ce code, un erreur se produit

NB: Classeur ou fenêtre doit rester en cache (masquée )

erreur d'execution 1004 :l a méthode rows de l'objet _global a échoué

Merci

Dim i&, aa, bb, cc, a&, y&

         aa = Feuil1.Range("A2:C" & Feuil1.Range("A" & Rows.Count).End(xlUp).Row)
    y = 1
    ReDim bb(3, y)
    For i = 1 To UBound(aa)
        If IsError(aa(i, 1)) Then GoTo 1
        If aa(i, 1) & aa(i, 2) & aa(i, 3) Like "*" & TextBox1 & "*" Then
            ReDim Preserve bb(3, y)
            For a = 1 To 3
                bb(a, y) = aa(i, a)
            Next a
            y = y + 1
        End If
1   Next i
    ReDim cc(UBound(bb, 2), UBound(bb))
    For i = 1 To UBound(bb, 2)
        For a = 1 To UBound(bb)
            cc(i, a) = bb(a, i)
        Next a
    Next i
    With ListBox1
        .List = cc
        End With
12rechercher.xlsm (23.51 Ko)

Bonjour,

Le soucis bient justement du fait que la feuille est masquée, si elle est masquée VBA ne peut pas travailler avec, je suppose qu'Excel décharge la feuille quand on la masque, j'avais le même soucis il y a peu, peut-être que certaines personnes connaissent la solution, sinon il faudra que tu remontre la feuille temporairement et la recacher ensuite...

Sinon peut-être un soucis du genre :

Quand la feuille est montrée : pas besoin de préciser dans quel classeur aller chercher

Quand classeur masqué :

préciser Classeur.Feuil1

Essaye en mettant le parent de ta feuille pour voir si ça fonctionne...

Bonjour,

Ce n'est pas bien le multipostage sans alerter !...

Cdlt.

Bonjour,

merci Jean-eric, je passe donc à la demande suivante sans attendre

eric

merci Ausecour

Bien cordialement

Par curiosité, une des 2 propositions fonctionne? Si oui, laquelle? Je suis curieux de savoir

Bonjour Ausecour

Désolé pour le retard

Un ami m'a dit ce solution

Mettez :

aa = Feuil1.Range("A2:C" & Feuil1.Range("A" & Feuil1.Rows.Count).End(xlUp).Row)

Notez que moi je préfère :

aa = Feuil1.Range("A2:C" & Feuil1.Cells(Feuil1.Rows.Count, "A").End(xlUp).Row)

Ou encore :

aa = Feuil1.Range("A2:C2").Resize(Feuil1.Cells(1000000, "A").End(xlUp).Row - 1)

Mais que j'écris abrégé en :

aa = Feuil1.[A2:C2].Resize(Feuil1.[A1000000].End(xlUp).Row - 1)

Ah je vois, le problème viendrait du Rows.Count du coup? Parce que c'est la seule modification qu'il a fait, remarque qu'avec un With Feuil1 tu peux éviter d'écrire tous les Feuil1 en laissant juste ce qui suit avec le point

Et ça marche en rajoutant Feuil1.rows.count ?

oui ça marche

Rechercher des sujets similaires à "methode rows objet global echoue"