[EXCEL] Fonction "Dir" et nom de groupe

Fermé
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 - 12 mai 2011 à 00:07
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 - 12 mai 2011 à 23:47
Bonjour,

J'ai, dans un code VBA Excel, une petite ligne qui est :


If Dir(NomFich & "Groupe 1", vbDirectory) <> "" Then

L'ennui, c'est que, même si le groupe (qui est une image + une zone de texte) existe, il me met la ligne Else ...

Pourtant, je suis presque sûr que cette fonction permet de vérifier l'existence du fichier, mais je ne sais pas sélectionner correctement le groupe ...
==========================
CODE :

Private Sub TEST()

Dim NomFich As String

NomFich = ActiveWorkbook.FullName
If Dir(NomFich & "Groupe 1", vbDirectory) <> "" Then
MsgBox "Groupe existe"
Else
MsgBox "Groupe existe pas"
End If
End Sub
===========================

En fait, mon but serait de déterminer l'existence ou pas d'un groupe de ce nom dans le classeur actif.

Ma variable String contient le path complet jusqu'au fichier ".xls"

J'ai cru que rajouter un & permettrait de sélectionner un élément interne au fichier, mais apparemment non ...

Quelqu'un pourrait m'aider ?
Merci d'avance,

Adrien


Excel 2010
A voir également:

3 réponses

adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
12 mai 2011 à 17:56
Bonjour,

Merci, je ne savais pas qu'on pouvait faire comme les variables et réussir à voir le path en pas à pas détaillé.

Mais l'ennui, c'est que le code ne fonctionne pas. Lorsque je teste avec une autre valeur type "abracadabra", j'ai le fichier complet avec "abracadabra" à la fin...

Un peu comme si il créait lui-même le nom dans le fichier, sans pour autant qu'il existe ...

Je me demandais si il ne manquait pas une instruction. Je n'ai jamais entendu parler de paths internes, alors comment faire pour sélectionner ce qui est dans mon .xls ?


Merci,

Adrien
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 953
12 mai 2011 à 20:00
Salut le forum

Comment faire pour sélectionner ce qui est dans mon .xls ?

Tu ne peux pas le faire directement.

Exemple de code pour vérifier la présence d'une feuille dans un classeur :

Sub SheetExists()
Const Wbk$ = "D:\Excel\DataBase\MonClasseur.xls"
Const Sht$ = "Data"
If OkSheetName(Wbk, Sht) Then
MsgBox "La feuille " & Sht & " est présente dans le classeur:" & vbLf & Wbk 
& " !", 64
End If
End Sub

Private Function OkSheetName(FullPathFile$, SheetName$) As Boolean
Dim Con As Object, Cat As Object, Tbl As Object
Set Con = CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" _
& FullPathFile & ";" & "Extended Properties=Excel 8.0;"
Set Cat = CreateObject("ADOX.Catalog")
Set Cat.ActiveConnection = Con
For Each Tbl In Cat.Tables
If Left$(Tbl.Name, Len(Tbl.Name) - 1) = SheetName Then
OkSheetName = True
Exit For
End If
Next Tbl
Set Cat = Nothing: Con.Close: Set Con = Nothing
End Function

Mytå
0
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
12 mai 2011 à 21:15
Salut,

Merci de répondre, mais ce code, bien que très intéressant, ne me permet pas de vérifier l'existence d'un groupe, je vois que c'est apparemment "Const NOM$" qui donne le type.

Le type d'un groupe, que serait-il ? Const Grp$ ?

Merci,
Adrien
0
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
12 mai 2011 à 21:31
Mmmh,

On pourrait peut-être enregistrer mon groupe dans une variable ... non ?
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 953
12 mai 2011 à 22:56
Re le forum

Le seul moyen possible, ouvrir les fichiers un par un, faire un boucle pour parcourir
les objets des feuilles pour détecter la présence de ton GROUPE.

Bonne chance!
Mytå
0
adrienDN11 Messages postés 467 Date d'inscription vendredi 24 avril 2009 Statut Membre Dernière intervention 5 janvier 2015 137
12 mai 2011 à 23:47
Salut,

Merci, je vais aller voir ça.
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 155
12 mai 2011 à 09:39
Bonjour,

je pense qu'il manque un slash :
If Dir(NomFich & "\Groupe 1", vbDirectory) <> "" Then

Si tu veux être sur du chemin rajoutes une ligne avant ton if :
a= NomFich & "\Groupe 1"

fait f8 sur toute ta macro ou mets un point d'arrêt sur ton if.
passes ta souris sur a et tu verras ton chemin et tu verras s'il manque quelque chose.
-3