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 :

Ouvrir un onglet Excel à partir d'access [AC-2007]


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Ouvrir un onglet Excel à partir d'access
    Bonjour,

    A partir d'un bouton dans un formulaire, et selon un nom choisi au préalable (IDNom), je cherche à ouvrir l'onglet d'un fichier excel comme:
    IDNom =1 alors ouverture de feuil1! de fichierexcel.xlms
    IDNom =2 alors ouverture de feuil2! de fichierexcel.xlms

    J'espère que cela est clair pour vous, merci de votre réponse.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour et bienvenue chez nous,


    Regarde ici, il y a un exemple : http://claudeleloup.developpez.com/t...-excel/#LIII-D
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,
    on peut aller encore plus loin en constituant un fichier excel (par exemple) qui contiendrait les scripts VBA à appliquer après export vers excel des données.

    Ceci donne une liberté totale dans le formattage et l'exploitation des données exportées (mise en forme, génération de pivot table, .....).
    On peut également passer à excel des parametres qui serviront à une mise en forme conditionnelle.

    Pour modifier le "formattage" des données exportées, il suffit de modifier le scirpt excel, SANS aucune modif à l'application ACCESS.

    Exemple d'execution du script excel de mise en forme depuis access.
    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
    Sub Execute_Excel_Script(document As String, Excel_Workbook As String, Script_Folder As String, Excel_Script_File As String, Script_Name As String, Specific_param As Variant)
    On Error Resume Next
    Dim xlapp As Object
    Dim ExcelWasNotRunning As Boolean    ' Indicateur de libération finale.
    Dim FullScript As String
     
    FullScript = Trim(Script_Folder) & Trim(Excel_Script_File)
     
    Set xlapp = GetObject(, "Excel.Application")
    If err <> 0 Then
       err.Clear
       ExcelWasNotRunning = True
       Set xlapp = CreateObject("Excel.application")
     Else
        ExcelWasNotRunning = False
    End If
    xlapp.Visible = True
    Set XlWkb = xlapp.Workbooks.Open(FullScript)
     '
     ' ici nous lançons les macros automatiques d'Excel mais vous pouvez mettre du code
     '
    XlWkb.RunAutoMacros xlAutoOpen
     
    xlapp.Run Script_Name, document, Excel_Workbook, Excel_Script_File, Specific_param
    'XlWkb.Save
    XlWkb.Close
    If ExcelWasNotRunning = True Then  'Reactivé 16/12/2010
        xlapp.Application.Quit
    End If
     
    Set XlWkb = Nothing
    Set xlapp = Nothing
     
     
    End Sub
    Exemple très simple de script appelé (VBA Excel), à placer dans un module
    Ce Script met la première ligne en Bold et fait une Autofit de toutes les colonnes.
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    Sub Gmain_Ped_Out(Document As String, Excel_Workbook As String, Excel_Script_File As String, Specific_param As Variant)
     
    '
    ' Gmain_Ped_Out Macro
    ' Macro enregistrée le 26/05/2006 par Admin
    '
        Dim lrow        As Long
        Dim xlrow       As String
        Dim Range_Id    As String
        Dim Temp_Range_Id As String
        Dim off        As Long
        Dim Column_from As String
        Dim Column_to   As String
     
     
        Workbooks.Open Filename:=Document
     
        Windows(Excel_Workbook).Activate
        ActiveSheet.UsedRange
        ActiveSheet.UsedRange
        Range_Id = Get_Range_Id(ActiveSheet.UsedRange.Name)
        Column_from = Trim(Get_Column_From(ActiveSheet.UsedRange.Name))
        Column_to = Trim(Get_Column_To(ActiveSheet.UsedRange.Name))
        Range(Range_Id).Select
    '**********************************************
    '* real VB Script Start  here                 *
    '**********************************************
    'Header Line In Bold
        Range_Id = Column_from & "1:" & Column_to & "1"
        Range(Range_Id).Select
        Selection.Font.Bold = True
    'Autofit
        Range_Id = Column_from & ":" & Column_to
        Columns(Range_Id).EntireColumn.AutoFit
        Range("A1").Select
        ActiveWorkbook.Save
        ActiveWorkbook.Close
    '**********************************************
    '* real VB Script Stop   here                 *
    '**********************************************
        Windows(Excel_Script_File).Activate
    End Sub
    Private Function Get_Range_Id(Temp_Range_Id As String) As String
        Dim Range_Id    As String
        Dim off        As Long
        off = InStr(1, Temp_Range_Id, "!", vbTextCompare)
        If off > 0 Then
           Get_Range_Id = Right(Temp_Range_Id, Len(Temp_Range_Id) - off)
         Else
           Get_Range_Id = Temp_Range_Id
        End If
     
    End Function
     
    Private Function Get_Column_From(Temp_Range_Id As String) As String
        Dim Range_Id    As String
        Dim off        As Long
        Dim off2       As Long
        off = InStr(1, Temp_Range_Id, "!", vbTextCompare)
        If off > 0 Then
           off2 = InStr(off + 2, Temp_Range_Id, "$", vbTextCompare)
           If off2 > 0 Then
            Get_Column_From = Mid(Temp_Range_Id, off + 2, off2 - (off + 2))
            End If
        End If
     
    End Function
     
    Private Function Get_Column_To(Temp_Range_Id As String) As String
        Dim Range_Id    As String
        Dim off        As Long
        Dim off2       As Long
        off = InStr(1, Temp_Range_Id, ":", vbTextCompare)
        If off > 0 Then
           off2 = InStr(off + 2, Temp_Range_Id, "$", vbTextCompare)
           If off2 > 0 Then
            Get_Column_To = Mid(Temp_Range_Id, off + 2, off2 - (off + 2))
            End If
        End If
     
    End Function
    NB : ce code a été testé sous office 2003, 2007, 2010.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour
    Merci pour vos réponses.
    Voila ce que j'ai écrit mais rien ne se passe

    Private Sub Test_Click()
    Dim xlapp As Excel.Application
    Dim xlBook As Excel.Workbook
    Set xlapp = CreateObject("Excel.Application")
    Set xlBook = xlapp.Workbooks.Open(CurrentProject.Path & "\test.xlsx")
    xlapp.sheets("examen_nf").Select
    End Sub

    Je vous rappelle que je veux juste ouvrir une feuille d'un fichier excel pour y apporter des modifications.

  5. #5
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Et en ajoutant
    si rien n'apparait

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bien vu Helas
    Problème résolu, merci à vous trois

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

Discussions similaires

  1. [AC-2000] Ouvrir un fichier excel à partir d'access
    Par Christ79 dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/12/2013, 07h48
  2. Imprimer en PDF des onglets Excel à partir d'Access
    Par DamKre dans le forum VBA Access
    Réponses: 8
    Dernier message: 19/02/2012, 18h20
  3. ouvrir un fichier excel à partir d'access
    Par gueyou dans le forum Access
    Réponses: 4
    Dernier message: 31/08/2006, 16h55
  4. Piloter excel à partir d'access
    Par Celia1303 dans le forum Access
    Réponses: 6
    Dernier message: 14/11/2005, 16h17
  5. Réponses: 9
    Dernier message: 20/06/2005, 16h47

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