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 :

Problème intégration de tableaux par automation Word [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 69
    Par défaut Problème intégration de tableaux par automation Word
    Bonjour à tous,

    je viens ici car j'ai un gros souci... mon application doit exporter des données vers un document éditable au format Word avec de grosses contraintes de formatage...
    Je créé par automation des tableaux que je remplis à la volée. les premiers tableaux fonctionnent parfaitement jusqu'à un certain moment où tout commence à s'enchevêtrer... résultat, je me retrouve à continuer mon automation à l'intérieur d'une cellule de tableau...
    En passant en mode Débogage Pas-à-pas, tout fonctionne parfaitement !!!!!!

    C'est comme s'il y avait un problème de délai.. L'action suivante est débutée avant la fin de l'action précédente...

    Quelqu'un aurait-il une idée pour résoudre ce problème ?? Merci d'avance.

    En attendant, je continue d'investiguer...

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Tu pourrais utilement montrer la partie du code concernée, ou mieux : un exemple simplifié du pb! Une sorte de démonstrateur...

    Cordialement,

    PGZ

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 69
    Par défaut
    Merci pour la réponse c'est vrai que c'est difficile à comprendre...

    voilà le résultat en image... En fait ce qui est surligné en rouge devrait être en dessous du tableau... Pire, le petit tableau est créé à l'intérieur du champ AAAAAAAAAAAA, du coup coupé en 2... C'est comme si les actions du code vba ne s'éxécutaient pas dans l'ordre indiqué... Sauf si je le fais en pas-à-pas, là tout est nickel d'où ma question sur la temporisation...

    Voici le code... Merci d'avance

    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
    For i = 1 To nbSC
            With wdApp.Selection
                .Font.Bold = True
                .TypeText Text:=RstSC!SC_Numero & " - " & RstSC!PV & " (CB " & RstSC!SC_Code & ")" & _
                    vbCrLf & vbCrLf
                .Font.Bold = False
                .TypeText Text:=RstSC!SC_Description & vbCrLf
                'photo
                 If Not IsNull(RstSC!Lien) Then
                    Dim S As InlineShape
                    Set S = wdApp.Selection.InlineShapes.AddPicture(RstSC!Lien, False, True)
                    S.Height = 100
                    S.Width = 133
                 End If
               .TypeText Text:=vbCrLf & vbCrLf
     
            End With
     
            'insertion tableau P
            wdApp.Selection.ParagraphFormat.SpaceBefore = 4
            wdApp.Selection.ParagraphFormat.SpaceAfter = 4
            wdApp.ActiveDocument.Tables.Add Range:=wdApp.Selection.Range, NumRows:=2, NumColumns:=4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed
            With wdApp.Selection.Tables(1)
                If .style <> "Grille du tableau" Then .style = "Grille du tableau"
                .ApplyStyleHeadingRows = True
                .ApplyStyleLastRow = True
                .ApplyStyleFirstColumn = True
                .ApplyStyleLastColumn = True
            End With
            wdApp.Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
            wdApp.Selection.Borders(wdBorderTop).LineStyle = wdLineStyleNone
            wdApp.Selection.Borders(wdBorderLeft).LineStyle = wdLineStyleNone
            wdApp.Selection.Borders(wdBorderVertical).LineStyle = wdLineStyleNone
            wdApp.Selection.MoveRight Unit:=wdCharacter, Count:=2
            wdApp.Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            wdApp.Selection.Cells.Merge
            wdApp.Selection.Font.Bold = True
            wdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
            wdApp.Selection.TypeText Text:="Entête"
            wdApp.Selection.MoveDown Unit:=wdLine, Count:=1
            wdApp.Selection.Font.Bold = False
            wdApp.Selection.MoveLeft Unit:=wdCharacter, Count:=3
            wdApp.Selection.TypeText Text:="col1"
            wdApp.Selection.MoveRight Unit:=wdCell
            wdApp.Selection.TypeText Text:="Col2"
            wdApp.Selection.MoveRight Unit:=wdCell
            wdApp.Selection.TypeText Text:="Col3"
            wdApp.Selection.MoveRight Unit:=wdCell
            wdApp.Selection.TypeText Text:="Col4"
            wdApp.Selection.SelectRow
            wdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
     
        'Ajout des prelevements
            Dim RstPR As DAO.Recordset, nbPR As Long
            Set RstPR = dbs.OpenRecordset("SELECT ....;")
            RstPR.MoveLast:     nbPR = RstPR.RecordCount:    RstPR.MoveFirst
     
            For j = 1 To nbPR
                'creation new line
                wdApp.Selection.MoveDown Unit:=wdLine, Count:=1
                wdApp.Selection.InsertRowsAbove 1
                'remplissage
                wdApp.Selection.TypeText Text:=RstPR!PR_NumeroC:        wdApp.Selection.MoveRight Unit:=wdCharacter, Count:=1
     
                wdApp.Selection.TypeText Text:=RstPR!PR_Description:     wdApp.Selection.MoveRight Unit:=wdCharacter, Count:=1
                wdApp.Selection.TypeText Text:="Positif"
     
                wdApp.Selection.MoveRight Unit:=wdCharacter, Count:=1
     
                wdApp.Selection.TypeText Text:=Nz(RstPR!PR_Interp)
     
                RstPR.MoveNext
            Next
     
            wdApp.Selection.Font.Bold = False
            wdApp.Selection.MoveDown Unit:=wdLine, Count:=1
            wdApp.Selection.TypeText Text:=vbCrLf & vbCrLf & vbCrLf & vbCrLf
            wdApp.Selection.MoveEnd
     
            RstSC.MoveNext
        Next
    Images attachées Images attachées  

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    D'entrée, tu travailles avec l'objet Selection. Comment t'assures-tu que c'est le bon objet ou le bon Range qui est sélectionné? En plus cette façon de travailler fait des temps d'exécution longs.
    Personnellement, je n'aime pas : je préfère travailler avec les objets et les Range au travers de signets.

    J'ai conscience que ce n'est qu'un avis général.

    Cordialement,

    PGZ

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 69
    Par défaut
    Citation Envoyé par pgz Voir le message
    Bonjour.

    D'entrée, tu travailles avec l'objet Selection. Comment t'assures-tu que c'est le bon objet ou le bon Range qui est sélectionné? En plus cette façon de travailler fait des temps d'exécution longs.
    Personnellement, je n'aime pas : je préfère travailler avec les objets et les Range au travers de signets.

    J'ai conscience que ce n'est qu'un avis général.

    Cordialement,

    PGZ
    oups, j'ai pas actualisé ma fenetre, je n'avais pas vu la réponse !! désolé

    en fait je n'ai pas trop le choix car je ne maitrise pas assez pour faire autre chose En fait tout part d'Access à la base. Si tu as des liens à me conseiller sur ce sujet, je suis preneur ! Niveau temps d'éxécution, pour moi c'est gérable, mais si ça peut être plus propre, ça m'intéresse !

    Mer

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Hello

    Citation Envoyé par Steph9 Voir le message
    .Si tu as des liens à me conseiller sur ce sujet, je suis preneur ! Niveau temps d'éxécution, pour moi c'est gérable, mais si ça peut être plus propre, ça m'intéresse !
    Regarde par exemple Comment exporter des données Excel vers plusieurs signets d'un document Word ?
    Aucun .Select ni Selection. n'est nécessaire!

    PGZ

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 69
    Par défaut Youpi !!!!!
    problème résolu en fait le problème venait du fait de réussir à sortir du tableau pour écrire la suite lorsque la dernière cellule sélectionnée contenait plus d'une ligne... vu que je sortais avec MoveDown Unit:=wdLine, Count:=1...

    si ça peut aider quelqu'un... enfin plus spécifique tu meurs !!

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

Discussions similaires

  1. Problème GetObject pour Automation Word Excel
    Par deca2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/07/2009, 08h48
  2. Piloter Outlook par Automation : Problème de sécurité.
    Par nancy54 dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 19/06/2009, 14h31
  3. Réponses: 5
    Dernier message: 25/11/2008, 02h27
  4. Réponses: 11
    Dernier message: 26/04/2005, 09h23
  5. [AUTOMATION WORD]Pilotage Word par Delphi
    Par Sunny dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 05/12/2002, 17h09

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