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 :

Macro mise en forme de données


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 40
    Par défaut Macro mise en forme de données
    Bonjour tout le monde, je travaille actuellement sur outil automatisé d'une base de données. Cet outil automatisé aura pour but de permettre à l'utilisateur d'ajouter un fichier dans la base de données et que le tri des données se fasse automatiquement. Ceci est donc la partie que j'ai réalisée. Après avoir ajouté toute ces données, j'aimerai ajuster la mise en forme des données.
    Pour que l'outil ne parcourt pas toute la base de donnéesn j'ai décidé d'appliquer la mise en forme en amont de l'ajout du fichier. Cela va peut être plus parler si je donne un exemple.

    Dans ma BDD, mes 4 premières colonnes sont des chaines de caractères et j'ai donc adapté une mise en forme spéciale. Ces colonnes sont en majuscules, il n'y a pas d'accent, pas de signes de ponctuation. J'ai réalisé cette mise en forme grâce à des replace. Mais voilà si lors de l'ajout du fichier je veux appliquer la mise en forme des données pour qu'elles correspondent à la mise en forme de ma BDD, je suis obligé de réaliser une double boucle For (enfin "obligé" c'est juste que c'est la seule solution que j'ai trouvé).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For j = 1 to 4
    	For i = 2 to derniereLigne
    		Feuil2.Cells(i, j) = Replace(Feuil2.Cells(i, j), "-", " ")
    	Next
    Next
    Je vous ai donné donc un exemple de double boucle que j'utilise (c'est un exemple je n'ai pas qu'une ligne dans ma double boucle normalement).

    Je me tourne vers vous donc savoir si il était possible de réaliser ce même genre de mise en forme sans passer par le double boucle, parce que à force, regarder ligne par ligne, la macro met du temps à s'exécuter.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Méthode Replace de l'objet Range.
    https://msdn.microsoft.com/fr-fr/lib...6(v=office.15)

    Un coup d'enregistreur automatique de macro (avec Ruban Accueil > Rechercher et sélectionner > Remplacer) te livrera un code presque tout fait.

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Le code donné par l'enregistreur de macro (sans les select) pour le remplacement des "-" par " " pour les 4 premières colonnes en une seule instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Columns("A:D").Replace What:="-", Replacement:=" ", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 40
    Par défaut
    Bonjour Menhir, bonjour halaster, je vous remercie pour ces réponses. J'ai testé sur mes colonnes et ça marche parfaitement !
    Est ce que l'on peut par ailleurs ratacher une méthode Columns a un UCase ? Ce serait pour mettre mes colonnes en majuscule.
    Merci d'avance !

Discussions similaires

  1. macro pour mise en forme de données
    Par ryan.ighilahriz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/02/2019, 12h00
  2. [XL-2016] Mise en forme de données par macro
    Par PAT2794 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/02/2019, 01h53
  3. Première macro en autonomie pour la mise en forme de données
    Par Caroline_Débutante dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/01/2015, 10h38
  4. [XL-2007] Macro: Mise en forme de données monétaires
    Par djock dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2012, 11h28
  5. Réponses: 1
    Dernier message: 14/09/2005, 11h01

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