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

Macros et VBA Excel Discussion :

Renommer un champ Excel VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 22
    Par défaut Renommer un champ Excel VBA
    Bonjour,

    J'ai créé un formulaire sous Word (2003) et j'en importe les champs dans un classeur Excel (2003) via un script VBA créé à l'aide d'un script trouvé sur Internet :

    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
    Sub auto_open()
    Dim Fich As Worksheet
    Set Fich = ThisWorkbook.Worksheets("Synthèse")
    chemin = "J:\AQ\"
    mesfichiers = Dir(chemin & "*.doc")
    Dim Variables
    Variables = Array("raisonsociale", "adresse", "telephone", "telecopie", "internet", "TVA", "activites", "CA", "livraison", "reglement", "direction", "commercial", "conception", "achats", "production", "CQ", "AQ", "logistique", "RH", "finances", "siteseffectifs", "fabricant", "distributeur", "prestataire", "typedeproduits", "Oui1", "produitslabellises", "Non1", "Oui2", "personnelcertifies", "Non2", "Oui3", "ISO", "Non3", "Date", "Nom", "Titre")
    
    nb_Champs = 37
    num_row = 1
    i = 0
    
    For i = 0 To nb_Champs - 1
      Fich.Cells(num_row, i + 1) = Variables(i)
    Next i
    
    Set FichierWord = CreateObject("word.application")
    FichierWord.Visible = True
    FichierWord.DisplayAlerts = False
    
    Do While mesfichiers <> ""
      If mesfichiers <> "." And mesfichiers <> ".." Then
        monDocument = chemin & mesfichiers
        FichierWord.documents.Open Filename:=monDocument, ReadOnly:=True
        num_row = num_row + 1
        num_col = 1
        For i = 0 To nb_Champs - 1
          Fich.Cells(num_row, i + 1) = FichierWord.activedocument.formfields(Variables(i)).result
        Next i
        FichierWord.documents.Close (0)
      End If
      mesfichiers = Dir
    Loop
    FichierWord.Quit
    
    End Sub
    L'importation des données se passe bien mais mon soucis vient au nom des colonnes qui sont par défaut le nom des champs (voir code en gras). J'aurais donc aimer savoir s'il était possible de renommer ses champs par des noms un peu plus explicites par un quelquonque moyen... Je ne connais pas assez VBA pour faire cela...

    Merci d'avance

    BJ

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    Tu peux déclarer un autre tableau pour stocker les noms de champs tels que tu veux les voir apparaitre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim AliasNames
    AliasName = Array("Nom1", "Nom2",....,"NomN")
     
    For i = 0 To nb_Champs - 1
      Fich.Cells(num_row, i + 1) = AliasNames(i)
    Next i
    Bien entendu ce tableau doit etre de la meme taille que Variables (Ce nom n'est d'ailleurs pas tres judicieux à mon avis).

    Cordialement,

    Tirex28/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 22
    Par défaut
    Merci Tirex28 pour votre réponse, cela fonctionne !

    Une épine du pied enlevé Il y'en a malheureusement encore d'autre, comme celle-ci...

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Pour indiquer que ton problème est résolu, il y a le bouton , en bas de discussion.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. [XL-2007] Renommer les champs d'une colonne avec VBA excel
    Par FramanKalima dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/06/2015, 17h25
  2. [AC-2003] Renommer le champs par VBA
    Par Bonero dans le forum VBA Access
    Réponses: 7
    Dernier message: 28/04/2011, 14h26
  3. Réponses: 0
    Dernier message: 10/09/2007, 14h25
  4. [VBA-E]copier et renommer une feuille excel
    Par la-breche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/03/2007, 13h49
  5. Réponses: 1
    Dernier message: 15/06/2006, 16h39

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