2009-02-27 9 views
0

Dans une macro, j'applique le même traitement dans chaque feuille de calcul du fichier.Excel VBA - Réinitialiser une plage

Je veux déterminer quelle colonne contient un texte spécifique, qui peut être différent dans chaque feuille de travail.

Le code est le suivant:

For Each Cell_version In Ws.Range("1:1") 
    If Ws.Range(convertir(Cell_version.Column) & "1") = "ICI" Then 
     Column_version = convertir(Cell_version.Column) 
     Trouve_col = True 
     MsgBox (Column_version) 
    End If 
If Trouve_col = True Then Exit For 
Next Cell_version 

Sur la première feuille, tout fonctionne correctement, et trouve le texte dans la colonne appropriée column D. Dans la deuxième feuille de travail, si la colonne est après la colonne D, elle fonctionne également. Toutefois, s'il s'agit de column A, B, or C, il ne renvoie pas la colonne contenant le texte souhaité. Comment puis-je résoudre ce problème?

Répondre

2

Mon VBA est un peu rouillé, mais je préfère toujours la commande Find, car il est le meilleur moyen de rechercher une feuille de calcul, comme celui-ci peut-être:

Sheets("YourSheet").Select 

Cells(1, 1).Select 

Set found = Cells.Find(What:="ICI", After:=ActiveCell, LookIn:=xlValues, _ 
    LookAt:=xlColumn, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False, SearchFormat:=False) 

If Not found Is Nothing Then 
    found.Activate  
    MsgBox(Selection.Row) 
End If 
Questions connexes