Probleme de test des noms de feuilles

bonjour a tous je suis fasse a un petit soucis

j'essaye d'optimiser un petit code sous win xp office 2007 et cela ne me semblais pas si difficile que cela ...

dans le principe j'ai une feuille 1 qui contient le nom des onglets a testé

j'ai une macro qui test a partir d'une liste de nom pour savoir si l'onglet existe et si ce dernier existe je fais des choses,

donc deux boucles une pour scruté les lignes de la feuille 1 (j) une autre boucle pour passer en revu les onglets un par un (k)

j'ai volontairement épurée le code de la procedure

si je fais

test1 = Workbooks(nom_fichier_source).Sheets(k).Name
test2 = Workbooks(nom_fichier_source).Sheets(feuille_temporaire).Range("A" & j)
If test1 = test2 Then
MsgBox ("le test en decomposition est ok pour la feuille : " & Sheets(k).Name)
End If/code]

'cela marche tres bien quelque soit le nom du l'onglet a tester. mais je trouve cela pas tres "propre" !!!
si je fais ceci : 
[code] If Workbooks(nom_fichier_source).Sheets(feuille_temporaire).Range("A" & j) = Workbooks(nom_fichier_source).Sheets(k).Name Then
MsgBox ("le test en une ligne est ok pour la feuille : " & Sheets(k).Name)
End If

cela ne fonctionne pas pour les onglets dont le nom est composé uniquement de chiffres exemple "12"

si vous avez une idée de pourquoi cela ne fonctionne pas je suis preneur

vous trouverez un fichier test complet ci joint

merci

fred

12fichier-test.xlsm (20.51 Ko)

Bonjour,

        For k = 4 To Workbooks(nom_fichier_source).Sheets.Count
            test1 = Workbooks(nom_fichier_source).Sheets(k).Name

Quand tu fais Sheets(k) tu t'adresses à l'index de la feuille et non à son nom, je n'ai pas l'impression que c'est ce que tu veux.

Utilises plutôt cette fonction pour tester l'existence d'une feuille par son nom :

Function existSheet(nomFeuille As String) As Long
    On Error Resume Next
    existSheet = Sheets(nomFeuille).Index
End Function

Si tu t'adresses à un autre classeur que celui qui est actif il faudrait compléter la fonction.

eric

merci Eric c'est exactement ce que je voulais

j 'ai donc adapter ta fonction car en effet ce n’était pas le classeur actif....

je vais abuser de tes connaissances si tu veux bien

est-il possible de faire un tri par VBA sans etre obligé d'activer le classeur et la feuille au prealable ???

        Range("$A:$B").Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
    

merci pour tout

fred

à ma connaissance non.

Mais si mets screenupdating=false ça passe inaperçu.

eric

Tant pis

merci quand meme pour la réponse

sujet clos

fred

Rechercher des sujets similaires à "probleme test noms feuilles"