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

Access Discussion :

Ouverture d'un fichier Excel, incrémenter et l'enregistré-sous


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2021
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2021
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Ouverture d'un fichier Excel, incrémenter et l'enregistré-sous
    Bonjour a tous,

    Je tiens à commencer par dire que je suis une bille en code VBA

    Mais j'ai trouvé ce code sur événement au clic qui permet d'ouvrir un fichier Excel :

    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
    Private Sub Commande99_Click()
     
     
    Dim xls As Excel.Application 'Application Excel
        Dim wk As Excel.Workbook 'Classeur Excel
     
     
    On Error GoTo errHnd
     
        Set xls = CreateObject("Excel.Application") 'Reference a Excel
        Set wk = xls.Workbooks.Open("C:\Users\?????\??\Equipe BE - Base de Données\RESSOURCES\BDD OUTILLAGE\Base de données\FICHE OUTILLAGE 11-05-21.xlsx") 'Chemin du Classeur
        Set ws = wk.Sheets("FICHE TECHNIQUE OUTILLAGE") 'Nom de la feuille a ouvrir
        ws.Activate
     
        xls.Visible = True
     
        Exit Sub
     
    errHnd:
        MsgBox "Erreur N° " & Err.Number & vbLf & Err.Description, , Err.Source
     
    End Sub

    Mon problème sait que j'aimerais pouvoir par la suite incrémenter le fichier Excel "modifié" dans un champ (pièce jointe) de ma table, mais aussi l'enregistrer-sous un dossier

    Le but étant dans mon formulaire de saisie pouvoir ouvrir ce fichier Excel, le modifier et l'enregistrer

    Je pense créer un bouton dans Excel pour l'enregistrer sous et l'incrémenter dans la table Access

    Mais il faudrait aussi que ce fichier Excel soit vierge de données à chaque ouverture

    Cela me semble très compliqué mais si vous pouvez m'aider ou m'axer, je vous en serais très reconnaissant

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Que veux-tu dire par "incrémenter"?

    Pour ouvrir un fichier Excel "vide" à chaque ouverture, je ne peux que te conseiller de travailler avec un modèle (xlTx ou xlTm).

    Si tu places le bouton dans la base Access, je suppose que c'est parce que tu souhaites réaliser l'opération depuis Access. Si tu es "une bille" en code VBA, je te conseille de continuer sur cette voie plutôt que d'essayer d'inscrire la donnée dans Access sur base d'Excel. Ca demande des notions un peu avancées de connexion et d'inscription des données dans une base Access à coup de SQL, et de plus, le code d'incrémentation dans Access (?) se retrouverait dans chaque fichier issu du modèle. Je ne suis pas certain que ce soit pertinent.

    Ton code donne la main à l'utilisateur "en Excel", de sorte que tu la perds en Access par la suite et que tu ne sais donc pas continuer à piloter ton fichier Excel au travers de l'objet WK... Il n'est donc pas nécessaire, dans ce cadre, de passer par les objets Excel.Application et Excel.Workbook. En té créant le modèle comme dit plus haut et en l'enregistrant avec la bonne feuille en avant-plan, tu peux utiliser SHELL qui n'impose pas les variables Excel.xxx... Voici une fonction générique à laquelle il suffit de passer le nom du fichier à ouvrir, quel que soit son type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function OpenAnyfile(ByVal filename As String) As Long
      If Dir(filename) <> vbNullString Then
        Shell "explorer.exe """ & filename & """", 1
      Else
        OpenAnyfile = 1 ' Le fichier n'existe pas"
      End If
    End Function


    Dis-nous en plus sur ce que tu souhaites réaliser (sans code, juste en français comme si tu rédigeais un cahier des charges) et on pourra probablement mieux t'aider



    Le Exit Sub, c'est très moyen... Perso, je préfère ceci, qui te permet de n'avoir qu'une sortie de prod, surtout lorsque tu ouvres une appli externe et des fichiers externes et normalement, on devrait "supprimer" les variables xls et wk en fin de parcours:
    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
     Private Sub Commande99_Click()
     
     
    Dim xls As Excel.Application 'Application Excel
    Dim wk As Excel.Workbook 'Classeur Excel
     
     
    On Error GoTo errHnd
     
    Set xls = CreateObject("Excel.Application") 'Reference a Excel
    Set wk = xls.Workbooks.Open("C:\Users\?????\??\Equipe BE - Base de Données\RESSOURCES\BDD OUTILLAGE\Base de données\FICHE OUTILLAGE 11-05-21.xlsx") 'Chemin du Classeur
    Set ws = wk.Sheets("FICHE TECHNIQUE OUTILLAGE") 'Nom de la feuille a ouvrir
    ws.Activate
     
    xls.Visible = True
     
    errHnd:
    Set xls = Nothing
    Set wk = Nothing
    If Err.Number <>0 then MsgBox "Erreur N° " & Err.Number & vbLf & Err.Description, , Err.Source
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2021
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2021
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    désolé pour ce temps d'absence mais j'ai du mettre la base de donner en stand by.

    Merci pour ta réponse

    En fait ce que j'aimerais réaliser, c'est :

    L'utilisateur rentre dans un formulaire de saisie. Il saisit des données dans les champs. Puis il peut cliquer sur un bouton qui ouvre un fichier Excel et y saisir des données (ce fichier Excel étant une fiche technique).

    Après avoir saisi les données dans le fichier Excel pouvoir retourner sur le formulaire de saisie et enregistrer les données et ce fichier (avec les données inscrites) dans un champ de ma table.

    Ce fichier Excel doit être enregistré aussi dans un dossier externe et doit être vierge à chaque ouverture sur le formulaire de saisie.

    J'imagine m'attaquer un code VBA compliquer et a rallonge

Discussions similaires

  1. Ouverture d'un fichier excel predefini
    Par nberthonneau dans le forum Access
    Réponses: 10
    Dernier message: 13/06/2007, 22h14
  2. problème d'ouverture d'un fichier EXCEL!!
    Par JauB dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/11/2005, 13h37
  3. Ouverture d'un fichier Excel en VBA par Access
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 02/11/2005, 11h14
  4. Réponses: 2
    Dernier message: 06/04/2005, 12h01
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

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