Creation, renommer un dossier et importation de données

diabolo -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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.

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. alex141077 Messages postés 52 Statut Membre 2
     
    Ç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
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      pas

      Sheets(1).Select

      mais

      Sheets(1).Activate
      0
  3. alex141077 Messages postés 52 Statut Membre 2
     
    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
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Petit detail, 1 c'est le nom de la feuille ou l'index de la feuille ????
      0
    2. alex141077 Messages postés 52 Statut Membre 2
       
      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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > alex141077 Messages postés 52 Statut Membre
         
        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