Création sous dossier pose problème

Résolu/Fermé
irongege Messages postés 40847 Date d'inscription jeudi 1 novembre 2007 Statut Modérateur Dernière intervention 29 juin 2023 - 24 févr. 2013 à 15:26
irongege Messages postés 40847 Date d'inscription jeudi 1 novembre 2007 Statut Modérateur Dernière intervention 29 juin 2023 - 25 févr. 2013 à 16:34
Bonjour,

Dans mon projet, à l'initialisation , on verifie si un dossier existe en fonction de l'année et si changement d'année, création d'un nouveau dossier.

Cela marche bien.

Labelannee.Caption = Year(Date)
[C33] = Labelannee.Caption
If Dir("C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & "", vbDirectory) <> "" Then
Else
MkDir ("C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & "")
End If


Ensuite dans une autre fenêtre, il y a un bouton d'enregistrement qui va crée un sous dossier dans le dossier de l'année correspondante mais l'execution se bloque.

Voici le code :

ChDir "C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & " \ """
MkDir ("C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & "\Batch")
Name "C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & "\Batch" As "C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & "\" & "Batch_"& Range("C33").Value & _Bl_ N° & Range("B25").Value & ""


Merci à vous ;-)



A voir également:

4 réponses

Salut,

Je croyait que CCM n'aidait pas a faire les devoirs ?
0
irongege Messages postés 40847 Date d'inscription jeudi 1 novembre 2007 Statut Modérateur Dernière intervention 29 juin 2023 5 055
24 févr. 2013 à 15:37
Si c'était un devoir , ce n'est pas ici que je poserais la question, de plus je suis modo ici sur CCM donc le fonctionnement, je le connais.

De plus encore, il y a longtemps que j'ai quitté l'école !
0
madmyke Messages postés 52793 Date d'inscription dimanche 20 janvier 2008 Statut Modérateur Dernière intervention 24 avril 2024 12 047
24 févr. 2013 à 15:38
Je confirme, il a même du poil au menton LOL
0
C'est quoi modo ?
0
irongege Messages postés 40847 Date d'inscription jeudi 1 novembre 2007 Statut Modérateur Dernière intervention 29 juin 2023 5 055
Modifié par irongege le 24/02/2013 à 15:41
C'est ce groupe.

Au passage, Salut madmyke !
0
madmyke Messages postés 52793 Date d'inscription dimanche 20 janvier 2008 Statut Modérateur Dernière intervention 24 avril 2024 12 047
24 févr. 2013 à 15:42
Salut Irongege :-), toujours content de te lire même si là je ne peux pas t'aider, VB et moi...
0
irongege Messages postés 40847 Date d'inscription jeudi 1 novembre 2007 Statut Modérateur Dernière intervention 29 juin 2023 5 055
24 févr. 2013 à 16:26
Et hop, j'ai modifié mon code et ça marche nickel :

ChDir "C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & ""
MkDir ("C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & "\" & "Batch_BL_N°" & Range("B25").Value & "")
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 25/02/2013 à 02:28
Bonjour tous,
Pour le fun :-)
Le dessus du module
Option Explicit   
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Ton 1er exemple
Dim NouvRep   
    NouvRep = ("C:\Suivi_DLC\" & "Archives_" & Range("C33").Value)   
    MakeSureDirectoryPathExists NouvRep

Le second,
Name = "C:\Suivi_DLC\" & "Archives_" & Range("C33").Value & "\" & "Batch_" & Range("C33").Value & "Bl_ N°" & Range("B25").Value   
MakeSureDirectoryPathExists Name

Avantage 1 : Pas besoin de tester, si existe ->OK si existe pas -> Le crée
Avantage 2 : Supposons ton appli dans le répertoire MonAppli
Tu veux créer un sous-rep Archive
Et dans ce sous-rep un répertoire par année
A partir de
Rep= App.path & "\Archive\" & Year(Now)

Si le répertoire Archive existe déjà MkDir créera Year(Now) si tu fais le test et que tu lui dis
Supposons maintenant que ton appli vient d'être installée dans le répertoire MonAppli, tu dois t'assuré de créer le répertoire Archive, ce qui veux dire que dans ton code tu auras des instructions qui ne servirons qu'une seule fois.
C'est là qu'intervient cette API, elle crée non seulement le répertoire manquant mais également tout le chemin ce que MkDir ne fait pas. Donc plus besoin de créer Archive, c'est automatique.
A+

EDIT :
Pourquoi ChDir quand tu détermine le chemin absolu ?
Pourquoi & "" en fin d'initialisation ? ça sert à rien ?

EDIT 2:
Et si tu emploi ChDir pour un chemin relatif tu dois d'abord forcer le drive avec ChDrive, ChDir ne change pas de DD.

Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
0
irongege Messages postés 40847 Date d'inscription jeudi 1 novembre 2007 Statut Modérateur Dernière intervention 29 juin 2023 5 055
25 févr. 2013 à 16:34
Merci Lermite222

J'ai corrigé mon code et cela marche nickel.
0