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 :

[VBA] Gros problème avec access et Excel


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Par défaut [VBA] Gros problème avec access et Excel
    Bonjour à tous,

    j'ai un problème qui dure depuis plusieurs et j'avoue être à court d'idées..

    j'exporte des données d'un recordset avec access sur excel de cette façon:


    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    
    
      Set db = DBEngine.OpenDatabase(MA_BASE_ACCESS)
              
        'J'initialise mes variables
        Set xlApp = CreateObject("Excel.Application")
        'Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path + "\titre.xls")
         Set xlWb = xlApp.Workbooks.Add
         
        If xlApp Is Nothing Then
            MsgBox "Impossible d'ouvrir excel"
            Exit Sub
        End If
        
        xlApp.DisplayAlerts = False
    sql = " SELECT   var1,var2, var3......,  FROM table1,table2, ENTITE,..."
        
       
            
        rs.Open sql, CurrentProject.Connection, adOpenDynamic, adLockPessimistic
        
        
         xlSheet.Range("A2:K2").Select
                With Selection
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlBottom
                    .WrapText = False
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = True
                    .ReadingOrder = xlContext
                    .MergeCells = True
                End With
          xlSheet.Range("A2:K2").Select
          ActiveCell.FormulaR1C1 = "FICHE  " & rs.Fields(0) & ""
        
           
        
          
         'Quadriller
        xlSheet.Range("A4:K13").Select
        xlApp.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        xlApp.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        
         With xlApp.Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlApp.Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlApp.Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlApp.Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlApp.Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With xlApp.Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
               
        
        'mettre les en-tête
        rs.MoveFirst
        While Not rs.EOF
            
            For j = 3 To 11
            'mettre les libellés
                xlSheet.Cells(j + 1, 1) = rs.Fields(j - 2).name
                xlSheet.Range("B" & j + 1, "K" & j + 1).Select
                With Selection
                    .HorizontalAlignment = xlGeneral
                    .VerticalAlignment = xlBottom
                    .WrapText = False
                    .Orientation = 0
                    .AddIndent = False
                    .IndentLevel = 0
                    .ShrinkToFit = True
                    .ReadingOrder = xlContext
                    .MergeCells = True
                End With
            xlSheet.Range("B" & j + 1, "K" & j + 1).Select
            
            If IsDate(rs.Fields(j - 2)) Then
                 
                ActiveCell.FormulaR1C1 = Format(rs.Fields(j - 2), "dd/mm/yyyy")
            Else
                   'ActiveCell.FormulaR1C1 = rs.Fields(j - 2)
                   ActiveCell.FormulaR1C1 = "REST"
                  
            End If
            Next
            j = j + 1
             rs.MoveNext
        Wend
    Au premier clique de mon bouton, tout se passe bien ,j'exporte correctement mes données.
    Supposons que je reclique sur le bouton, un nouveau classeur s'ouvre et les données en orange (provenant de monr ecordset)ne s'affiche plus du tout...
    pourtant quand je suis en mode debuggage ou que j'entre en dur une valeur, les données sont bien présente mais ne s'affiche pas sur Excel.....

    De plus , si je ferme mon formulaire et que je reouvre pour exporter sur excel à nouveau les mêmes données, ça plante sur la ligne en rouge..
    Je comprends vraiement pas!

    merci pour votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    essaye de vider tes variables à la fin de ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rst.close
    'et les autres aussi
    si tu es chanceux ça fonctionnera

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Par défaut
    Merci mouaaa d'avoir pris le temps de regarder mon post.
    Apparement la chance n'est pas avec moi, car les recordsets sont (correctement) fermés et tout mes processus (xlapp...) sont nothing..


  4. #4
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    arf.... alors là je vois pas...

    essaye de voir si en rechargement ton formulaire ça fonctionne mieux on sait jamais ça pourrait faire comme si on fermait puis rouvrait tout....

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Par défaut
    Je vais essayer de suivre ta piste.
    Mais qu'entends par rechargement?

    Merci pour ton aide

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Par défaut
    Citation Envoyé par celiaaa
    ...et tout mes processus (xlapp...) sont nothing..

    les processus doivent être fermés et non mis à nothing.
    Si le classeur et ouvert et que tu essaie de l'ouvrir à nouveau ce sera un fichier en lecture seul que tu aura.

    Il faut soit fermer excel après une exportation, soit sauter la partie ouverture aux futures clic (ceux >1).

    Voila.

  7. #7
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    la solution de DMboup me semble bien, mais si tu veux savoir ce que j'entends pas reload pour info c'est un truc du style

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 183
    Par défaut
    Merci pour vos conseils!

    Mboup quand tu parles de sauter la partie ouverture aux futures clic (ceux >1), tu entends par là de sauter la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set xlApp = CreateObject("Excel.Application")?
    Je ne fais pas de close et de quit car en fait je veux qu'à chaque clique d'un bouton, un nouveau classeur se créé avec des données provenant en partie d'un recordset..

    merci bien

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

Discussions similaires

  1. Nouveau problème avec un tableau Excel et une macro VBA
    Par valouche dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/06/2007, 09h30
  2. Gros problème avec les colations
    Par scaleo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/11/2005, 09h36
  3. [VBA] [WORD] problèmes avec NUMPAGES
    Par meufeu dans le forum VBA Word
    Réponses: 9
    Dernier message: 08/08/2005, 16h24
  4. Gros problème avec la facturation de Tiscali
    Par Harry dans le forum Dépannage et Assistance
    Réponses: 5
    Dernier message: 21/10/2004, 18h55
  5. Gros Problème avec DirectShow et la méthode RELEASE
    Par Olivier Delmotte dans le forum DirectX
    Réponses: 3
    Dernier message: 10/03/2003, 18h10

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