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 :

VBA - Renommer entête colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2018
    Messages : 9
    Par défaut VBA - Renommer entête colonne
    Bonjour à tous,

    Tout d'abord merci et bravo pour ce site qui est une véritable caverne d'Ali Baba ! Vous l'aurez compris c'est mon premier post et je suis primo débutante...

    Je dois travailler à partir de fichiers .CSV dont les entêtes de colonnes sont assez peu explicites pour mes collègues. Aussi, avant de commencer à aborder la création d'un formulaire de recherche pour leur permettre d'exploiter les données de ces .csv, je souhaiterai renommer les entêtes de colonnes. J'ai à peu près compris comment faire une macro... mais je n'arrive pas à trouver la formule "magique". Pour essayer d'être plus explicite :

    A1 = "L1_ADR_REVAL" Je voudrais que cela s'intitule : "Désignation"
    B1 = "L1_ADR1_REVAL" Je voudrais que cela s'intitule : "Adresse"

    etc... il y a 100 champs à renommer

    Et j'aurais plusieurs fichiers à traiter régulièrement..

    il y a peut être d'autres moyens à utiliser.. mais je ne les connais pas.. Suis donc à l'écoute de toutes propositions.

    Merci de votre aide et bon week end frileux....

    Christelle

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Bonjour

    Soit tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A1")="Désignation"
    Range ("B1")="Adresse"
    etc

    soit tu crées dans le fichier qui contient la macro, une ligne avec les bons en-tête et tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("NomClasseurCSV").Sheets("NomdelafeuilleCSV").Range("1:1").Value = Workbooks("NomClasseurMacro").Sheets("NomdelafeuilleMacro").Range("1:1").Value
    Adapter la plage et les noms...

    Avantage c'est plus court à écrire et il suffit de modifier la ligne modèle si besoin d'évolution...

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonsoir
    J'attends car je me méfie de certaines formulations.
    Il n'est pas impossible que la volonté soit en fait de remplacer en fonction de chaque nom et sans que l'ordre des noms ne soit toujours le même.

    EDIT : j'ai beau lire et relire de bon matin -->>
    je ne vois absolument rien dans l'exposé de la difficulté :
    - qui préciserait que les valeurs à transformer sont toujours les mêmes, toujours présentes et toujours dans le même ordre
    - que tous les fichiers à traiter ainsi ont toujours la même structure, les mêmes entêtes, etc ...
    Il est pour moi très clair qu'une réponse ne saurait être donnée sans ces précisions bien évidemment très importantes permettant seules de déterminer une stratégie ad hoc.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    A1 = "L1_ADR_REVAL" Je voudrais que cela s'intitule : "Désignation"
    B1 = "L1_ADR1_REVAL" Je voudrais que cela s'intitule : "Adresse"
    si "L1_ADR_REVAL" ou "L1_ADR1_REVAL" etc.... son toujour au meme endroit dans tes csv
    tu n'a meme pas besoins de les ouvrir avec excel

    tu peux tres bien dans une boucle
    ouvrir tes csv en memoire
    "openfor output pour lire et renplacer l
    a 1 ere ligne
    "L1_ADR_REVAL"; "L1_ADR1_REVAL"; "L1_ADR2_REVAL"; "L1_ADR3_REVAL" etc......
    par
    "Désignation","Adresse";"toto";"titi"
    en quelques miliseconde ou a peine un peu plus tu a modifier tout tes csv

    maintent si c'est pas tout le temps dans le meme ordre alors se sera un replace sequentiel basé sur les deux array
    toujour en memoire

    tu peux faire ca en ouvrant avec excel mais si tu a xxxxx fichiers

    prévois la tasse de café les croissant le sandwitch pour midi et surtout les aspirine pour environ 15 heure quand tu aura abusivement rongé ton frein et que la tention oculaire te transpercera la tete de coup d'eguille
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre régulier
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 57
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2018
    Messages : 9
    Par défaut
    Bonjour à vous,

    Grand merci pour ces propositions de solutions. Dans un premier temps, je vais tenter la proposition de 78Chris. J'avais essayé cela mais j'avais du faire une erreur quelque part...

    Unparia : Pour t'apporter quelques précisions, oui le fichier sera toujours le même avec la même structure (il s'agit d'un fichier de l'INSEE)

    PatrickToulon : merci à toi..mais là ca me semble un peu trop compliqué pour moi...., et je préfère aussi qu'ils soient en excel pour pouvoir les traiter plus facilement (enfin pour moi...)

    Je vous tiendrai au courant de mes "progrès"... en tous les cas, merci encore

  6. #6
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Bonjour

    J'ai corrigé mon exemple de formule pas très clair à la relecture...

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Citation Envoyé par Christelle_B Voir le message
    A1 = "L1_ADR_REVAL" Je voudrais que cela s'intitule : "Désignation"
    B1 = "L1_ADR1_REVAL" Je voudrais que cela s'intitule : "Adresse"
    On peut aussi grouper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           [A1:B1].Value = Split("Désignation Adresse")
    Us & coutumes de ce forum :
    ___________________________________________________________________________________________________________

         Merci de cliquer sur en bas à droite de chaque message ayant aidé puis sur pour clore cette discussion …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

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

Discussions similaires

  1. [VBA-Excel]Décale colonne tant que valeur cellule ....
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 28/02/2006, 17h56
  2. [VBA] Fusionner plusieurs colonnes en une seule
    Par brutos2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/01/2006, 14h25
  3. [VBA] Trier les colonnes d'une listview
    Par alncool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/09/2005, 14h12
  4. Renommer une colonne avec ALTER TABLE...
    Par David.V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2004, 10h33

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