IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros Access Discussion :

Copier un fichier Excel via une macro sur Access et ajout d'une valeur à une cellule [AC-2016]


Sujet :

Macros Access

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Copier un fichier Excel via une macro sur Access et ajout d'une valeur à une cellule
    Bonjour à tous,

    j'ai besoin de votre aide sur Access.
    Je cherche à créer une copie d'un fichier fichier 1 à l'emplacement Source dans l'emplacement Destination.
    Je sais le faire en VBA avec un filecopy mais impossible d'y parvenir en Access.
    J'ai du mal avec l'importation des objets Excel sur Access je pense..

    Pourriez - vous m'aider ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub fonctioncopie()
     
    Dim oAppExcel As Excel.Application
    Dim oWbk As Excel.Workbook
     
            ' Lance Excel
            Set oAppExcel = New Excel.Application
     
            'Ouvre le classeur
            Set oWbk = oAppExcel.Workbooks.Open(Chemin)
            oAppExcel.Visible = True
     
    Const Sep = " \ "
     
    Dim BasePath As String
    BasePath = CurrentProject.Path
     
    Dim Source
    Dim Destination
     
    Source = BasePath & Sep & "Fichier 1.xlsm"
    Destination = BasePath & Sep & "Dossier1" & Sep & "Dossier 2"
     
    Dim Fso As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
     
    Fso.FileCopy Source, Destination
     
    End Sub


    je voudrais aussi rajouter dans ce même fichier, à la cellule Cells(1,9), une valeur textuelle mais j'ai un message d'erreur qui buge ma macro..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim oAppExcel As Excel.Application
    Dim oWbk As Excel.Workbook
    Dim oSht As Excel.Worksheet
     
    oSht.Cells(1, 9) = "test"

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oWbk = oAppExcel.Workbooks.Open(Chemin)
    Ta variable chemin est vide, donc tu n'ouvriras jamais ton fichier.
    Je suppose que c'est le fichier Source qu'il faut ouvrir et copier c'est donc cette variable qu'il faut utiliser.
    Il faut aussi enlever les espaces de la variable sep.
    Si les dossiers ne sont pas créés, il y aura un message d'erreur, il faut donc utiliser Fso.FolderExists pour tester l'existence et MkDir pour les créer si besoin (j'ai mis un exemple pour Dossier1, mais il faudrait le faire aussi pour Dossier 2)
    Pour l'insertion du texte dans la cellule, il manquait l'affectation des variables oWbk et oSht, car il ne suffit pas de les déclarer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub fonctioncopie()
    Dim oAppExcel As Excel.Application
    Dim oWbk As Excel.Workbook
    Dim chemin As String
    Dim BasePath As String
    Dim Source As String
    Dim Destination As String
    Dim Fso As Object
    Dim oSht As Excel.Worksheet
     
    ' Affectations des constantes et variables
    Const Sep = "\"
    BasePath = CurrentProject.Path
    Source = BasePath & Sep & "Fichier 1.xlsm"
    Destination = BasePath & Sep & "Dossier1" & Sep & "Dossier 2" & Sep & "Fichier 2.xlsm"
     
    ' Vérifie l'existence du Dossier
    Set Fso = CreateObject("Scripting.FileSystemObject")
    If Not Fso.folderexists(BasePath & Sep & "Dossier1") Then
        MkDir (BasePath & Sep & "Dossier1")
    End If
     
    ' Lance Excel
    Set oAppExcel = New Excel.Application
    'Ouvre le classeur
    Set oWbk = oAppExcel.Workbooks.Open(Source)
    oAppExcel.Visible = True
     
    Fso.CopyFile Source, Destination   ' c'est Copyfile et pas FileCopy
     
    oWbk.Close
     
    ' Ajout du texte dans une cellule
    Set oWbk = oAppExcel.Workbooks.Open(Destination)
    Set oSht = oWbk.Worksheets("Feuil1")    ' mettre le nom correct de la feuille si besoin
    oSht.Cells(1, 9) = "test"
    oWbk.Close True
     
    oAppExcel.Quit
     
    End Sub
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2017
    Messages : 4
    Points : 5
    Points
    5
    Par défaut thanks
    Mille merci tee_grandbois !! Mon erreur venait en réalité de ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    const Sep = "\"      'je n'avais pas l'espace sur ma macro donc ce n'était pas ça le soucis par contre :
     
    DestinationModele = BasePath & Sep & "Dossier Application" & Sep & "Fichiers ST Vide" & Sep
    'Mon erreur venait  du dernier & Sep.. c'est un dossier donc il faut rajouter un "\" ! J'avais fait la même erreur en VBA en plus.. !
    Pour la valeur de la cellule c'est cela merci ! :-)

    J'étais bloqué dessus depuis quelques semaines alors ça me fait bien avancer !
    Je pense utiliser le forum plus souvent pour le coup :-D !

    Bon dimanche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [A-03] Creer une macro sur Access
    Par khongo agon dans le forum IHM
    Réponses: 1
    Dernier message: 27/11/2008, 17h37
  2. Réponses: 45
    Dernier message: 14/02/2008, 15h41
  3. Réponses: 3
    Dernier message: 20/07/2007, 08h58
  4. [[VBA-E]je cherche une macro sur excel qui ouvre un fichier
    Par macromega dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2007, 09h25
  5. [VBA-E]Filtre via une macro sur Excel
    Par jamal.b dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/04/2006, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo