Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Bloc If non reconnu

Dim.Reichart

XLDnaute Occasionnel
Bonsoir, ou re,
J'ai (encore) un petit souci avec ma macro.
Le but est de vérifier si un sous-dossier existe, et si non, de le créer.
VB:
Option Explicit
Sub test()

Dim d As String
d = ThisWorkbook.Path & "\" & Range("a1")

    If Len(Dir(d & "\" & Range("m6"), vbDirectory)) Then MkDir (d)
    End If
   
End Sub
Le débogueur donne une erreur "end if sans bloc if", pourtant, le bloc if est reconnu et mis en couleur.
Afin de m'assurer de la syntaxe des sous fonctions, je les ai testé indépendamment.
Len(Dir()) remonte bien une donnée 0 ou 1 selon que le fichier existe ou pas et MKdir() crée correctement le dossier.
L'aide sur la fonction ne m'apporte pas de précision, j'ai aussi essayé d'ajouter un else, mais dans ce cas, j'obtiens l'erreur "else sans bloc if".
J'utilise If ailleurs, et à priori, je n'ai pas ce problème (bien qu'il puisse apparaitre plus tard).
Si vous avez une explication, ça m'interesse.
Merci d'avance.
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Bonsoir,

Comme ça :
VB:
 If Len(Dir(d & "\" & Range("m6"), vbDirectory)) Then MkDir (d)

Ou comme ça :
Code:
 If Len(Dir(d & "\" & Range("m6"), vbDirectory)) Then
     MkDir (d)
 End If

Mais pas les 2

A+
 

D.D.

XLDnaute Impliqué
Bonjour,

Dans ce genre de cas, en ce qui me concerne, je fais un
VB:
On error resume next
MkDir (d)
On error goto 0

C'est à dire que je ne m'occupe même pas de savoir s'il existe déjà: je le crée et s'il existe déjà le on error resume next evite l'erreur.
 

Discussions similaires

Réponses
1
Affichages
298
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…