Creation, renommer un dossier et importation de données

Fermé
diabolo - Modifié par Whismeril le 27/07/2015 à 23:03
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 28 juil. 2015 à 13:19
Bonjour,

Voila je vous sollicite car je bloque sur mon petit bout de code que je n'arrive pas à développer.

Ma macro copie et colle un dossier "Semaine" (avec tous ses sous dossiers et ses fichiers) et renomme le dossier en fonction du nom d'une cellule dans une feuille..(ex : Semaine 30).
Je souhaiterai à la suite ouvrir un fichier "Menu" du dossier créer pour importer des données mais JE N ARRIVE PAS A OUVRIR CE FICHIER AUTOMATIQUEMENT.

Pourriez vous me donner un petit coup de pouce? merci

 Sub CreerDossierAlternatif()
On Error Resume Next
    Dim Nom As String
    Dim Fso As Object, Source As String, Destination As String
    Nom = Feuil6.[g2]
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Source = "C:\Users\Alex\Desktop\SEMAINE"
    Destination = "C:\Users\Alex\Desktop\SEMAINE" & Nom
    Fso.CopyFolder Source, Destination, False


Ps J'aimerai que le code ouvre le fichier "Menu" du dossier créer



EDIT: Précision du langage dans la coloration syntaxique.



A voir également:

3 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
28 juil. 2015 à 09:52
Bonjour,

mettez la bonne extention du fichier:

 Sub CreerDossierAlternatif()
    On Error Resume Next
    Dim Nom As String
    Dim Fso As Object, Source As String, Destination As String
    Nom = 1     'Feuil6.[g2]
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Source = "C:\Users\Alex\Desktop\SEMAINE"
    Destination = "C:\Users\Alex\Desktop\SEMAINE" & Nom
    Fso.CopyFolder Source, Destination, False
    'ouverture fichier "Menu.?????"
    Set fichier = Workbooks.Open(Destination & "\Menu.???")
End Sub
0
alex141077 Messages postés 52 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 8 février 2022 2
Modifié par alex141077 le 28/07/2015 à 10:49
Ça fonctionne...merci beaucoup pour ton aide. Pour le bon fonctionnement j'ai ajouté dans la 1ere partie la déclaration en gras

Cependant, la suite de ma macro ne s'exécute pas comme il le faudrait...

Sub CreerDossierAlternatif()

'1ere partie
On Error Resume Next
Dim Nom As String
Dim Fso As Object, Source As String, Destination As String
Dim Fichier As Object
Nom = Feuil6.[g2]
Set Fso = CreateObject("Scripting.FileSystemObject")
Source = "C:\Users\Alex\Desktop\SEMAINE"
Destination = "C:\Users\Alex\Desktop\SEMAINE" & Nom
Fso.CopyFolder Source, Destination, False
'ouverture fichier "Menu.?????"
Set fichier = Workbooks.Open(Destination & "\Menu.xls")


' 2eme partie

Windows("Création Menu Eté").Activate
Sheets(1).Select
Range("B1:C53").Copy
Windows("Menu.xls").Activate
Range("B1").Select
ActiveSheet.Paste Link:=xlPasteValues 'True


Au niveau de la 2eme ligne (Sheets(1).Select), il ne se passe rien...ca reste figé sur une autre feuille???
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
28 juil. 2015 à 10:54
Re,

pas

Sheets(1).Select

mais

Sheets(1).Activate
0
alex141077 Messages postés 52 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 8 février 2022 2
Modifié par alex141077 le 28/07/2015 à 11:58
L'activation de la feuil(1) se fait bien mais le problème c'est que la copie du contenu se réalise sur une autre feuil. Pourtant dans mon code je sélectionne bien ma feuil (1) avant et après je sélectionne mes cellules....je comprends pas pourquoi la sélection des cellules se réalise sur la feuil (25)!!!!
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
28 juil. 2015 à 12:20
Re,

Petit detail, 1 c'est le nom de la feuille ou l'index de la feuille ????
0
alex141077 Messages postés 52 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 8 février 2022 2
Modifié par alex141077 le 28/07/2015 à 13:12
c'est l'index...Merci à toi de m'aider sans toi je serais toujours coincé!!!!

Après des heures de bidouillage j'ai enfin compris ma problématique...
C'est le "Range" qui me causait problème!! Je sélectionnais la cellule "b1" pour coller et ca ne fonctionnait pas...alors j'ai selectionné la meme plage de cellule"b1:c53" que la copie et la MIRACLE!!!! Bon on peut surement optimisé la macro!!!

Private Sub CommandButton3_Click()

On Error Resume Next
Dim Nom As String
Dim Fso As Object, Source As String, Destination As String
Dim Fichier As Object
Nom = Feuil6.[g2]
Set Fso = CreateObject("Scripting.FileSystemObject")
Source = "C:\Users\Alex\Desktop\SEMAINE"
Destination = "C:\Users\Alex\Desktop\" & Nom
Fso.CopyFolder Source, Destination, True
'ouverture fichier "Menu.?????"

Set Fichier = Workbooks.Open(Destination & "\Menu.xls")

Windows("Création Menu Eté.xls").Activate
Sheets(6).Range("B1:C53").Copy
Windows("Menu.xls").Activate
Sheets(6).Range("B1:C53").Select
ActiveSheet.Paste Link:=True

Windows("Création Menu Eté.xls").Activate
Sheets(7).Range("B1:C53").Copy
Windows("Menu.xls").Activate
Sheets(6).Range("F1:G53").Select
ActiveSheet.Paste Link:=True
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > alex141077 Messages postés 52 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 8 février 2022
Modifié par f894009 le 28/07/2015 à 13:23
Re,

c'est l'index... C'est pour cela qu'il faut utiliser le nom de la feuille si vous deplacez une feuille l'index change
0