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 :

remplir une combobox d'un formulaire word avec une seule cellule d'une feuille excel


Sujet :

VBA Word

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut remplir une combobox d'un formulaire word avec une seule cellule d'une feuille excel
    salut c'est titemireille

    toujours aux prises avec ses formulaires!

    bien, alors mon pb du jour est le suivant : remplir des combobox avec les données contenues dans une feuille excel. Lisez jusqu'au bout SVP

    je précise :
    D'un côté, j'ai un fichier word que je veux remplir avec un formulaire.
    De l'autre côté, j'ai un classeur excel avec plusieurs feuilles.

    j'ouvre mon formulaire dans word, je remplis la combox1 avec la liste des onglets de mon classeur, par ex. X, Y et Z

    dans la combobox1, je choisis par exemple Y et les autres combobox doivent se remplir avec les données contenues dans les cellules de la feuille Y.

    j'ai environ 20 cellules et chacune doit remplir une combobox differente, 10 cellules = 10 combobox.

    le code a fonctionné trois ou quatre fois mais cela ne marche plus.

    en fait, cela fonctionne jusqu'à la réouverture de la page selectionnée et puis je recois un message d'erreur : "la méthode sheets de l'objet global à échoué"

    pouvez vous m'aider s'il vous plait

    merci d'avance

    le code est le suivant, la combobox1 s'appelle "mome", la combobox2 s'appelle combobox1
    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
     
    Option Explicit
     
    Private Sub Userform_initialize()
    'Avenant au contrat d'accueil
    'Déclaration des variables pour ouvrir Excel
    'Application Excel
    Dim appExcel As New Excel.Application
    'Classeur Excel
    Dim wbExcel As Excel.Workbook
    'Feuille Excel
    Dim wsExcel As Excel.Worksheet
    'Ouverture de l'application
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\Administrateur\Mes documents\Mes sources de données/Données.xls")
    appExcel.Visible = True
    'Choix du nom de l'enfant
    Dim sh As Worksheet
    For Each sh In activeworkbook.Sheets
    mome.AddItem sh.name
    Next
    appExcel.Workbooks("Données.xls").Close
    appExcel.Quit
    End Sub
     
    Private Sub Valider_click()
    'insertion du nom de l'enfant dans mon document word
    Selection.GoTo , , , "enfantnom"
    Dim smome As String
    smome = mome
    Selection.InsertAfter mome
     
    'Déclaration des variables pour ouvrir Excel
    'Application Excel
    Dim appExcel As New Excel.Application
    'Classeur Excel
    Dim wbExcel As Excel.Workbook
    'Feuille Excel
    Dim wsExcel As Excel.Worksheet
    'Ouverture de l'application
    'Ouverture d'un fichier Excel
    'ouverture de la feuille correspondant au nom de l'enfant choisi
    Dim ssmome As String
    ssmome = mome
    Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\Administrateur\Mes documents\Mes sources de données/Données.xls")
    appExcel.Visible = True
    wbExcel.Sheets(ssmome).Activate
    'insertion de la date d'entrée dans la comboxbox
    Dim i
    For i = 1 To 1
    comboBox1.AddItem Sheets(ssmome).Cells(6, 2)
    Next
    'insertion de la date d'entée dans le document word
    Dim sdateentree As String
    sdateentree = comboBox1
    Selection.InsertAfter comboBox1
    End Sub

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ton problème doit venir de ces lignes placées dans un click.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\Administrateur\Mes documents\Mes sources de données/Données.xls")
    appExcel.Visible = True
    wbExcel.Sheets(ssmome).Activate
    Je ne vois pas la fermeture de ton fichier, ce qui fait qu'il reste ouvert et qu'au prochain click, tu crées une seconde instance d'Excel dans laquelle tu tentes d'ouvrir une nouvelle fois ton fichier.
    Tu as plusieurs solutions :
    Soit tu fermes les instances Appli et fichier -> Lent
    Soit tu ne crées qu'une instance d'Excel dans Userform_Initialize que tu ne fermes pas et teste l'existence du fichier Données.xls dans l'appli Excel -> Ce serait plus malin mais implique que tu déclare wbExcel en tête de ton code, avant les macros.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim appExcel As New Excel.Application
    Soit tu fermes ton fichier en fin de sub Valider_click auquel cas tu supprimes son instance mais ne fermes pas l'instance Excel.

    Dans les deux derniers cas, n'oublie pas de fermer L'instance d'Excel en quittant ton appli en plaçant correctement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    appExcel.Quit
    Set appExcel = Nothing
    Tu dis
    A+

Discussions similaires

  1. Remplir un formulaire WORD avec des données Excel
    Par Giant25 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/02/2015, 16h31
  2. [WD-2003] Remplir formulaire Word avec données Excel en VBA
    Par lpz34 dans le forum VBA Word
    Réponses: 9
    Dernier message: 08/05/2014, 13h05
  3. Réponses: 6
    Dernier message: 14/05/2013, 17h57
  4. Créer une somme dans un formulaire Word
    Par angeld dans le forum Windows
    Réponses: 8
    Dernier message: 02/11/2006, 17h35
  5. écrire ds un formulaire word avec asp
    Par bobic dans le forum ASP
    Réponses: 4
    Dernier message: 12/12/2005, 13h05

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