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 :

Répertorier le contenu de signets dans une base


Sujet :

VBA Word

  1. #1
    Membre régulier
    Femme Profil pro
    Formatrice bureautique
    Inscrit en
    Septembre 2007
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Formatrice bureautique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 202
    Points : 79
    Points
    79
    Par défaut Répertorier le contenu de signets dans une base
    Bonjour le forum,

    Voici le contexte :

    J'ai plusieurs modèles qui sont les mêmes pour plusieurs sociétés. Seules les coordonnées (adresse) changent…

    Mon idée est d'avoir un userform qui me permet de choisir le modèle à utiliser par une liste déroulante (solution trouvée) et d'avoir une liste déroulante pour le choix de la société (solution également trouvée).

    Pour l'instant, j'ai définis des signets dans les modèles avec les zones Société, Adresse, Localité, Téléphone, Email,...

    J'ai placé le tout sous la forme de Si dans mon code pour chaque société. Je me demandais si je pourrais avoir un tableau qui répertorie toutes les données d'une entreprise et d'aller chercher ces données ce qui serait plus facile pour la mise à jour des données (aller dans un fichier Excel par exemple ou Word) et éviter d'aller dans le code.

    Merci pour vos précieuses lumières ;-)

    Voici mon code actuel :

    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
     
    Option Explicit
     
     
     
    Private Sub UserForm_Initialize()
     
     
    CBModeles.AddItem "lettre.dotx"
    CBModeles.AddItem "rapport.dotx"
     
    CBSoci?t?.AddItem "Société1"
    CBSoci?t?.AddItem "Société2"
     
     
     
     
    End Sub
     
     
     
     
     
    Private Sub BtOk_Click()
     
    Dim VModeles As String
    Dim VSociete As Bookmarks
    Dim ObjWord As Object
    Dim bmks As Bookmarks
    Dim bmRange As Range
    Dim bmAdresse As Range
    Dim bmCP As Range
    Dim bmLocalit? As Range
    Dim bmTelephone As Range
    Dim bmFax As Range
    Dim bmEmail As Range
     
     
    Dim Dir As String
    Dim DirModeles As String
     
    Dir = "C:\Users\caro...\Test Developpement Word Modele\"
    VModeles = CBModeles.Text
    DirModeles = Dir & "Modeles\" & VModeles
     
     
    'CHOIX DU MODELE
     
        Documents.Add Template:= _
                DirModeles, NewTemplate:=False, DocumentType:=0, Visible:=True
     
     
    'CHOIX DE LA SOCIETE
     
        Set bmks = ActiveDocument.Bookmarks
     
        Set bmRange = ActiveDocument.Bookmarks("Societe").Range
        bmRange.Text = Me.CBSociete.Value
     
     
            If bmRange = "Société1" Then
     
                Set bmAdresse = ActiveDocument.Bookmarks("Adresse").Range
                bmAdresse.Text = "Adresse 1"
                Set bmCP = ActiveDocument.Bookmarks("CP").Range
                bmCP.Text = "CP 1"
                Set bmLocalite = ActiveDocument.Bookmarks("Localite").Range
                bmLocalite.Text = "Localite 1"
                Set bmTelephone = ActiveDocument.Bookmarks("Telephone").Range
                bmTelephone.Text = "Telephone 1"
                Set bmFax = ActiveDocument.Bookmarks("Fax").Range
                bmFax.Text = "Fax 1"
                Set bmEmail = ActiveDocument.Bookmarks("Email").Range
                bmEmail.Text = "Email 1"
     
                Else
     
                If bmRange = "Société2" Then
     
                Set bmAdresse = ActiveDocument.Bookmarks("Adresse").Range
                bmAdresse.Text = "Adresse 2"
                Set bmCP = ActiveDocument.Bookmarks("CP").Range
                bmCP.Text = "CP 2"
                Set bmLocalite = ActiveDocument.Bookmarks("Localite").Range
                bmLocalite.Text = "Localite 2"
                Set bmTelephone = ActiveDocument.Bookmarks("Telephone").Range
                bmTelephone.Text = "Telephone 2"
                Set bmFax = ActiveDocument.Bookmarks("Fax").Range
                bmFax.Text = "Fax 2"
                Set bmEmail = ActiveDocument.Bookmarks("Email").Range
                bmEmail.Text = "Email 2"
     
                End If
                End If
    Unload Me
     
    ActiveDocument.Close
     
     
     
     
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par formabox Voir le message
    Bonjour,

    Si vous souhaitez utiliser une variable tableau pour charger vos données depuis un fichier Excel, regardez ces tutoriels de DIDIER GONARD et de SILKYROAD :


    Le principe serait de créer une instance Excel au lancement de votre Userform ou à l'ouverture de votre fichier, de charger une matrice de portée Public à deux dimensions avec vos sociétés, puis de fermer le fichier Excel et au final de détruire l'instance. Dans votre Userform, les matrices se manipulent comme dans Excel.

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