Je teste la validité d'un fichier Excel contenant des données à importer au moyen de la macro suivante (la célèbre fonction GetValue se trouve dans une autre procédure ) :
Code:
Sub TestGetValue()
sheet = "accueil"
ref = "AB37"
If Mid(GetValue(path, file, sheet, ref), 1, 7) <> "version" Then
MsgBox "Fichier non valide !"
Else
MsgBox "Fichier valide"
End If
End Sub
Lorsqu'un des onglets du fichier à tester porte bien le nom "accueil", tout va bien. Mais lorsqu'aucun des onglets ne porte le nom "accueil", la macro plante !
J'ai remarqué que la feuille renommée conserve son nom de la forme Feuil1(accueil) dans l'Éditeur Visual Basic.
Ma question est la suivante : existe-t-il une syntaxe pour utiliser "Feuil1" (le nom VBA en dur) dans une procédure en lieu et place de "accueil" pour éviter le plantage ?
Re : comment utiliser le nom VBA d'un onglet renommé ?
Bonjour le fil, Pierrot ,
J'ai noté que ta variable s'appelle sheet, or Sheet est utilisé par VBA, peut-être que ça rentre en conflit...
Comme Pierrot, j'ai testé :
Code:
Sub Test()
Dim Feuille As String
Feuille = Feuil1.Name
MsgBox (Feuille)
End Sub
Et ça fonctionne parfaitement.
Bonne journée
PS : Je sais que ce n'est pas conventionnel, mais j'utilise toujours des variables en français, ce qui me permet de les identifier dans mon code facilement, et ça m'évite des conflits avec le VBA.
Re : comment utiliser le nom VBA d'un onglet renommé ?
Merci à tous,
Je vais travailler sur vos pistes ce soir. J'ai bon espoir…
Pour préciser les choses :
1 • Je fournis un fichier Excel A de gestion du temps de travail à mes collègues (horaires, activités, congés, etc.)
Des améliorations et corrections sont régulièrement apportées à ce fichier, donc…
2 • Je fournis un dossier de mise à jour qui contient le nouveau fichier Excel B amélioré ou corrigé et un fichier USF qui va importer les données déjà saisies dans le fichier Excel A.
Le problème est que mes collègues renomment leur propre fichier, je dois donc vérifier que le fichier qu'ils sélectionnent pour la mise à jour est bel et bien le fichier Excel A et pas un autre…
3 • L'USF contrôle donc que le fichier sélectionné pour la mise à jour est bien un fichier Excel valide en testant la valeur de la cellule "AB37" de la feuille "accueil"…
En y réfléchissant, la solution serait peut-être simplement de tester si la feuille "accueil" existe ? Puis, si elle existe, de tester la valeur de la cellule ?