probleme de test des noms de feuilles Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'215
Appréciations reçues : 47
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 14 juillet 2014, 19:33

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
fichier_test.xlsm
fichier test des noms de feuilles
(20.51 Kio) Téléchargé 7 fois
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'710
Appréciations reçues : 446
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 14 juillet 2014, 19:43

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
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'215
Appréciations reçues : 47
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 14 juillet 2014, 20:32

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
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'710
Appréciations reçues : 446
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 14 juillet 2014, 22:58

à ma connaissance non.
Mais si mets screenupdating=false ça passe inaperçu.

eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'215
Appréciations reçues : 47
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 14 juillet 2014, 23:22

Tant pis
merci quand meme pour la réponse
sujet clos
fred
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message