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 Word Discussion :

problème pour insérer des valeurs issues d'excel sur un signet word


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 5
    Points
    5
    Par défaut problème pour insérer des valeurs issues d'excel sur un signet word
    Bonjour à tous,
    premièrement je suis désolé si la solution se trouve sur le forum mais je l'ai parcouru assidument (particulièrement la FAQ très bien faite) et je n'arrive pas à solutionner mon problème.

    Voila j'ai fait une macro qui ouvre un doc word pour un positionner des tableaux ainsi que compléter des phrases avec des valeurs issues de cellules d'excel.
    Mon problème c'est que lorsque je copie les cellules d'excel dans les "trous" (à la facon d'un publipostage), cela copie la cellule et change la mise en forme du paragraphe.
    J'ai donc décidé de bricoler pour ne prendre que la valeur du texte. Ca fonctionne quand la valeur de la cellule est un string Mais pas quand celle ci est un nombre, j'ai l'erreur 13" incompatibilité d'exécution"

    Auriez vous des idées?
    Merci d'avance
    Ci joint le code, avec la ligne qui plante :

    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
    Sub CreerDocumentWordNONStat()
    
    Dim wdApp As Object 'Word.Application
    
    Dim DerniereLigne As Integer
    
    Dim aEntete As Variant
    Dim aNbCSF_1er As Variant
    Dim aMethodeUtilisee As Variant
    Dim aNiveauAssurance As Variant
    Dim aNiveauAssuranceChiffre As Variant
    
    
    aEntete = Worksheets("Non-ST Non-statistical (EP)").Range("C1").Value
    aNbCSF_1er = Worksheets("Non-ST Non-statistical (EP)").Range("C5").Value
    aMethodeUtilisee = Worksheets("Non-ST Non-statistical (EP)").Range("A40").Value
    aNiveauAssuranceChiffre = Worksheets("Non-ST Non-statistical (EP)").Range("C11").Value
    
    If (aNiveauAssuranceChiffre > 1) Then
            If (aNiveauAssuranceChiffre > 2) Then
                  If (aNiveauAssuranceChiffre > 3) Then
                     aNiveauAssurance = Worksheets("Non-ST Non-statistical (EP)").Range("B37").Value
                   Else: aNiveauAssurance = Worksheets("Non-ST Non-statistical (EP)").Range("B36").Value
            End If
            Else: aNiveauAssurance = Worksheets("Non-ST Non-statistical (EP)").Range("B35").Value
         End If
         Else: aNiveauAssurance = Worksheets("Non-ST Non-statistical (EP)").Range("B34").Value
    End If
    
    
    Set wdApp = CreateObject("Word.Application")
     'Set WordDoc = wdApp.Documents.Open("MonDoc.docx")    'ouvre le document Word
      
        With wdApp
           .Visible = True
           .Activate
        
              .Documents.Add "Z:\Compte rendu 1er tirage XXXX_v2.dotx"
               
     '------------------------------------------------------------------------------
              'insertion de l'entête  PB SIGNET DANS ENTETE !!
              '  .Selection.Goto what:=-1, Name:="EnTete"
             '   .Selection.TypeText Text:=aEntete
                 
                 'insertion du nom
                .Selection.Goto what:=-1, Name:="NomProgramme"
                .Selection.TypeText Text:=aNomProg
            
                'insertion de la Methode Utilisee
                .Selection.Goto what:=-1, Name:="MéthodeUtilisee"
                .Selection.TypeText Text:=aMethodeUtilisee
           
                'insertion du NiveauAssuranceChiffre PB CONVERSION!!
                .Selection.Goto what:=-1, Name:="NiveauAssuranceChiffre"
                .Selection.TypeText Text:=aNiveauAssuranceChiffre
                
                'insertion du NiveauAssurance
                '.Selection.Goto what:=-1, Name:="NiveauAssurance"
                '.Selection.TypeText Text:=aNiveauAssurance
                
                
                'insertion du TauxCouverture
               ' .Selection.Goto what:=-1, Name:="TauxCouverture"
               ' .Selection.TypeText Text:=aTauxCouverture
                
                
                'insertion du MontantCouverture
               ' .Selection.Goto what:=-1, Name:="MontantCouverture"
               ' .Selection.TypeText Text:=aMontantCouverture
                
                'insertion de l'meplacement
                '.Selection.Goto what:=-1, Name:="NbCSF"
                '.Selection.TypeText Text:=aNbCSF_1er
           
      '------------------------------------------------------------------------------
            'insertion du tableau général d'info sur le tirage
             Worksheets("2 synthèse écarts SFC SYNERGIE").Range("B2:l7").Copy
               ' .Selection.InlineShapes(1).LockAspectRatio = msoTrue
               ' .Selection.InlineShapes(1).Width = 510.25
                .Selection.Goto what:=-1, Name:="TableauDivergenceSFCSynergie"
            .Selection.Paste
           
                 
             'insertion du tableau général d'info sur le tirage
             Worksheets("Non-ST Non-statistical (EP)").Range("A1:C16").Copy
               ' .Selection.InlineShapes(1).LockAspectRatio = msoTrue
               ' .Selection.InlineShapes(1).Width = 510.25
                .Selection.Goto what:=-1, Name:="TabInfoTirage"
            .Selection.Paste
            
       '------------------------------------------------------------------------------
             'insertion de la liste des CSF à controler
                Worksheets("Non-ST Non-statistical (EP)").Select
            Range("K1000000").Select
            Selection.End(xlUp).Select
            DerniereLigne = ActiveCell.Row
                   Worksheets("Non-ST Non-statistical (EP)").Range(Cells(40, 4), Cells(DerniereLigne, 14)).Copy
                       .Selection.Goto what:=-1, Name:="ListeCSFSelectionnes"
             .Selection.Paste
            
        End With
    
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Selection.TypeText Text:=Cstr(aNiveauAssuranceChiffre)
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour Clément

    mille mercis, ça marche!!
    Tant que j'y suis et sans vouloir abuser, j'ai aussi un autre problème concernant le signet placé dans l'entête. Il n'est pas reconnu dans la macro. Aurais-tu une idée?

Discussions similaires

  1. [MySQL] Problème pour insérer des données au clique d'un lien
    Par Bizoo dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/03/2009, 17h34
  2. Problème pour insérer des librairies
    Par johann974 dans le forum Débuter
    Réponses: 7
    Dernier message: 18/04/2008, 16h53
  3. Réponses: 6
    Dernier message: 28/12/2007, 22h34
  4. Problème pour forcer des valeurs d'un tableau
    Par n][co dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 25/04/2007, 20h59
  5. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13

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