XL 2010 Boucle For/Next dans un With, est-ce possible ?

g.milano

XLDnaute Junior
Bonjour,

Je viens de faire cette partie de code :
VB:
    With YaFoomu.UsedRange
        For i = 0 To UBound(ranmei)
                   Columns(Split(.Rows(1).Find(ranmei(i), lookat:=xlWhole).Address, "$")(1)).Hidden = True
        Next i
        .SpecialCells(xlCellTypeVisible).Delete
        .EntireColumn.Hidden = False
    End With
Mais le hidden ne s'applique pas au classeur du "With"(YaFoomu.UsedRange) mais a la feuille active (celle qui se trouve a l’écran lors du débogage car dernier fichier ouvert)
Par contre, les commandes après le Next (le .delete) s'applique correctement.

Sur le coup, je me demande si ce n'est pas un problème de langage. Peut-on mettre une boucle dans un with ? Et plus généralement, y'a-t-il des commandes qui ne fonctionnent pas dans un with ? J'ai rien trouve de probant concernant cela sur le net (j'ai peut-être mal cherche aussi, les résultats étant principalement en anglais, j'ai un peu de mal avec cette langue)

Merci
 
Solution
Bonjour g.milano

Peut-être en essayant simplement ceci :
.Columns(Split(.Rows(1).Find(ranmei(i), lookat:=xlWhole).Address, "$")(1)).Hidden = True

En effet, lorsque tu ecris Columns(Split(.Rows(1).Find(ranmei(i), lookat:=xlWhole).Address, "$")(1)).Hidden = True, le .Hidden s'applique aux colonnes de la feuille active. En rajoutant le point "." devant Columns, le.Hidden s'appliquera a la feuille decrite dans le With.

Fred0o

XLDnaute Barbatruc
Bonjour g.milano

Peut-être en essayant simplement ceci :
.Columns(Split(.Rows(1).Find(ranmei(i), lookat:=xlWhole).Address, "$")(1)).Hidden = True

En effet, lorsque tu ecris Columns(Split(.Rows(1).Find(ranmei(i), lookat:=xlWhole).Address, "$")(1)).Hidden = True, le .Hidden s'applique aux colonnes de la feuille active. En rajoutant le point "." devant Columns, le.Hidden s'appliquera a la feuille decrite dans le With.
 

Discussions similaires