Probleme pour enregistrer un fichier excel dans un sous dossier

Résolu
veve890 Messages postés 26 Date d'inscription mardi 18 novembre 2014 Statut Membre Dernière intervention 17 janvier 2015 - Modifié par jordane45 le 10/01/2015 à 20:16
veve890 Messages postés 26 Date d'inscription mardi 18 novembre 2014 Statut Membre Dernière intervention 17 janvier 2015 - 12 janv. 2015 à 18:12
Bonjour,
voici mon problème
je voudrais créer un dossier suivant le résultat de la cellule A1 dans mon dossier excel ensuite je voudrais créer un sous dossier suivent la cellule B1 et enfin enregistrer mon fichier excel renommer avec la date du jour et le nom se trouvent dans la cellule B2

j ais arrive a créer le dossier et le sous dossier si il n existe pas mais pour enregistrer le fichier avec la date du jour et le nom qui se trouve en B2 j ais vraiment besoin de votre aide je vous envoie mon code

Sub Bouton16_Clic()


 On Error Resume Next
Dim Chemin As String
Dim mondossier As String
Dim mondossier2 As String
Dim Fichier As String
Dim i As Long, j As Integer


' Nom du chemin
Chemin = "C:\essai\"

'Nom du dossier
'code pour donner le nom de mondossier qui se trouve dans A1
mondossier = Range("A1").Value

'code pour donner le nom de mondossier2 qui se trouve dans B1
mondossier2 = Range("B1").Value

'nom du fichier
'code pour donner le nom a mon fichier qui se trouve dans B2
Fichier = Range("B2") & Format(Date, "ddmmyyyy") & " " & ".xlsm"

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
       MkDir Chemin & Cells(i, 1)
        
'code qui crait un dossier avec le nom du fichier qui se trouve dans B1 et le crait dans le chemin c:\
For j = 2 To Cells(i, Columns.Count).End(xlToLeft).Column
            MkDir Chemin & Cells(i, 1) & "\" & Cells(i, j)
     Next j
Next i
    
    End Sub


pouvez vous m expliquer en même temps a quoi sa correspond pour enrichir mes connaissance
merci beaucoup c est urgent



EDIT : Ajout des balises de code

9 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 10/01/2015 à 20:22
Bonjour,
Commence par éviter ce très vilain "On Error Resume Next" qui cache les problèmes sans les résoudre. Il est d'autant mal venu qu'il intervient finalement tout le long d'une boucle !
Il y a mieux avec une fonction de l'Api de Windows, mais tu es débutant. Utilise alors la fonction Dir pour vérifier que le dossier existe et ne le crée que s'il n'existe pas
Ainsi :
titi = Dir("D:\toto", vbDirectory)
fera que titi = "" si n'existe pas le dossier D:\toto
nous verrons ensuite le reste.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
10 janv. 2015 à 20:17
Bonjour,

Merci d'utiliser la coloration syntaxique pour poster du code sur le forum !
explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code



0
veve890 Messages postés 26 Date d'inscription mardi 18 novembre 2014 Statut Membre Dernière intervention 17 janvier 2015
Modifié par veve890 le 11/01/2015 à 09:43
bonjour merci de votre réponse
mais j ais déjà suivie la fonction dir mais j arrive a créer le dossier qui a pour valeur le résultat de la cellule A1 et ensuite a enregistrer le fichier avec comme nom la valeur dans B2 mais je n arrivée pas a créer le sous dossier et de mettre la date dans le nom du fichier
voici le code que j avais utilise

Sub Bouton1_Clic()

Dim Chemin As String
Dim mondossier As String
Dim Fichier As String

' Nom du chemin
Chemin = "C:\essai\"

'Nom du dossier
mondossier = Range("A1").Value

'nom du fichier
Fichier = Range("B2") & " " & ".xlsm"
'teste de la présence du dossier
If Dir(Chemin & mondossier, 16) = "" Then MkDir Chemin & mondossier

ActiveWorkbook.SaveAs Chemin & mondossier & "\" & Fichier
End Sub

                
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 11/01/2015 à 10:31
mais je n arrivée pas a créer le sous dossier

veux-tu bien t'efforcer de mettre cette phrase en bon français, car, telle qu'écrite, on ne sait pas dut tout si "arrivée" veut dire "arrive" ou "arrivais" (et cela change tout !)
Montre ce que tu as écrit dans ta double boucle en respectant le principe que tu as utilisé pour un seul article.

je suis par enfin étonné de constater que tu as mis le nom de fichier à attribuer dans une cellule qui, parcourue dans ta boucle imbriquée de construction de sous-dossiers, apparaîtra donc comme nom d'un dossier (lorsque I = 2) !!

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
veve890 Messages postés 26 Date d'inscription mardi 18 novembre 2014 Statut Membre Dernière intervention 17 janvier 2015
11 janv. 2015 à 14:24
mille excuse mais je suis tres debutent en vba et moyen en francais
donc en premier le dossier se cree dans le chemin essai
en 2 le sous dossier se met dans le dossier
et en 3 je voudrais enregistrer mon fichier excel dans le sous dossier
mais cela ne marche pas
je vous demande vraiment votre aide
et surtout en meme temp m expliquer
merci
je doit partire pour dfiler pour charlie
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 11/01/2015 à 18:35
J'ai quelques difficultés à te suivre.
Montre ici :
1) une image (pas ton fichier, mais une image) de la feuille à traiter
2) le/les chemin(s) de sauvegarde (en précisant pour chacun ce qu'il doivt contenir).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
veve890 Messages postés 26 Date d'inscription mardi 18 novembre 2014 Statut Membre Dernière intervention 17 janvier 2015
11 janv. 2015 à 19:20
mon fichier c est des formulaires a remplire un par feuilles il y en a 7 au totale + la feuille menu
qui contient le bouton enregistrement et les cellules qui sert de reference pour le dossier le sous dossier et pour renommer le fichier
donc a l ouverture du fichier il y a un userform qui s ouvre avec des textbox la ont rentre dans chaque textbox les infos demande pour deja remplire les formulaires automatiquement et en plus certain textbox sert aussi a remplire en meme temp la cellule A1 B1 B2

donc quand ont clik sur le bouton enregistrement je veut regarder dans c:\essai si le dossier de l annee en cour existe ou pas si il n existe pas le creer suivant A1 qui a l annee en cour exemple 2015
ensuite je voudrais faire la meme chose pour le sous dossier qui regarde dans c:\essai\2015 si il existe ou pas et le creer si il n existe pas suivant la cellule B1 et pour finire je voudrais que mon fichier soit renommer selon la cellule B2 et la date du jour et qu il s enregistre dans le sous dossier C:\essai\2015\sous dossier\
pour donner a la fin le chemin suivant c:\essai\2015\le nom du sous dossier\le nom du fichier avec la date du jour
voila j espere que vous comprendrerait
merci encore de votre aide
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 11/01/2015 à 20:31
Non. Ce n'est pas cela, que je t'ai demandé de montrer (on n'en sortira jamais ainsi).
Fais s'il te plait ce que je t'ai dit .
Pour mémoire :
Montre ici :
1) une image (pas ton fichier, mais une image) de la feuille à traiter
2) le/les chemin(s) de sauvegarde (en précisant pour chacun ce qu'il doivt contenir).

Rien d'autre que cela.


Tes textboxes et ton userform (qui arrivent maintenant "sur le tapis") n'ont absolument rien en commun avec le problème tel qu'exposé par ton premier message et qui, lui, traite de cellules, de dossiers, de sous-dossiers et de sauvegarde dans des fichiers.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
12 janv. 2015 à 03:48
Fais s'il te plait ce que je t'ai dit .

Sans oublier

Merci d'utiliser la coloration syntaxique pour poster du code sur le forum !
explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
veve890 Messages postés 26 Date d'inscription mardi 18 novembre 2014 Statut Membre Dernière intervention 17 janvier 2015
12 janv. 2015 à 18:12
bonsoir
j ais voulue vous expliquer mon projet de a-z mais je vous est plutôt perturbe je m en excuse
j ais fini par trouve se que je voulais faire
j ais ajoute un code pour copier le chemin complet de mon dossier et sous dossier exmple c:\2015\20000\ dans une cellule
et ensuite j ais di a mon fichier de s enregistrer dedans et sa marche
merci encore de votre aide
0
Rejoignez-nous