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

VBA Access Discussion :

Ouverture d'un fichier Excel depuis VBA Access


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Points : 49
    Points
    49
    Par défaut Ouverture d'un fichier Excel depuis VBA Access
    Bonjour


    Ma question porte sur une "bizarrerie" d'une ligne de code qui parfois marche et parfois ne marche pas..

    Le suspect est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open Filename:=wkName
    Où wkName est de type C:\Mon Poste\MES DOCUMENTS\Mon classeur.xls


    Quand je parle de "bizarrerie" c'est que la fonction qui contient cette ligne de commande est appelée par plusieurs autres fonctions et dans certains cas la ligne exécute bien l'ouverture du fichier Excel et dans certains non.

    Et même si la fonction "appelante" est la même elle peut marcher ou non. En gros c'est totalement aléatoire il ne semble pas y avoir de règle c'est surtout ça le plus embêtant


    Est ce que quelqu'un à une idée ou une piste de reflexion ?

    Je donnerai plus d'infos si besoin.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Là où cela ne marche pas, as-tu une erreur d'exécution ou simplement le XLS ne s'ouvre pas ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier Avatar de sendme
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 82
    Points
    82
    Par défaut
    Ci-dessous le code complet que j'utilise qui ne pas jamais posé de PB :

    Déclaration du test d'existence du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function existeFileFSO(ByVal fichier As String) As Boolean
    Set fs = CreateObject("Scripting.FileSystemObject")
    existeFileFSO = fs.FileExists(fichier)
    Set fs = Nothing
    End Function
    Si le fichier existe = Suppression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If existeFileFSO("c:\NomDuFichier.xls") Then
        Kill "c:\NomDuFichier.xls"
    End If
    Ensuite création du fichier :
    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
    42
    43
    44
    45
    Dim FileName As String    'stocke le nom du fichier XLS sauvegardé
    Dim FileSource As String            'Fichier modèle
    Dim rs As DAO.Recordset            'objet recordset
    Dim i As Integer
     
     
        '======================================
        ' Ecriture dans le XLS à partir de la table temporaire
     '========================================
     
        Set rs = CurrentDb.OpenRecordset("SELECT * from XLS_temp", dbOpenSnapshot)
     
        If rs.RecordCount > 0 Then
     
            Set AppExcel = CreateObject("Excel.Application")
     
            FileSource = "C:\NomDuFichierModèle.xls"   'chemin du modèle
            FileName = "C:\NomDuFichier.xls"
            FileCopy FileSource, FileName
            AppExcel.Visible = True ' ouverture du xls pour qu'il soit visible
            Set WbExcel = AppExcel.Workbooks.Open(FileName)
     
            Set WsExcel = WbExcel.Worksheets(1)  '1 est le n° de feulle
     
            i = 0
            While Not rs.EOF
     
                ' POSITIONNEMENT DANS LES CELULES
     
                For j = 0 To 21  ' 0 =premier champ et 20 le dernier
                    WsExcel.Cells(i + 5, j + 1) = rs.Fields(j) 'i+5 = ligne 5 | J+1 = colonne 1
                Next j
                i = i + 1
                rs.MoveNext
     
            Wend
            'XLS
     
            rs.Close
            Set rs = Nothing
     
     
            Set AppExcel = Nothing
            Set WbExcel = Nothing
            Set WsExcel = Nothing
    En espérant que ça pourra t'aider.

Discussions similaires

  1. [AC-2010] Pb gestion de fichiers Excel depuis VBA access
    Par Dixies dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/02/2014, 16h16
  2. Rechercher une valeur dans fichier Excel depuis VBA Access
    Par tribaleur dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/07/2008, 14h10
  3. Tracé graphique sur fichier excel depuis vba access
    Par kdestine dans le forum VBA Access
    Réponses: 0
    Dernier message: 26/09/2007, 12h37
  4. créer un fichier excell avec VBA(access)
    Par JCH dans le forum Access
    Réponses: 1
    Dernier message: 19/09/2006, 19h07
  5. Ouverture d'un fichier Excel en VBA par Access
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 02/11/2005, 11h14

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