Modifier un tableau excel excel grâce a VBA

Fermé
nocti Messages postés 1 Date d'inscription samedi 10 décembre 2016 Statut Membre Dernière intervention 10 décembre 2016 - 10 déc. 2016 à 03:57
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 10 déc. 2016 à 10:09
Bonjour à tous,

Je me rapproche de vous car j'ai besoin de vos lumières en VBA!

Je suis auto-entrepreneuse et pour effectuer ma prospection et trouver des clients, j'ai réussi à obtenir une base de données, sauf que le contenu est vraiment pas beau d'un point de vue forme : certains noms sont en minuscule, d'autre en majuscules et d'autres encore avec la première lettre majuscule et le reste en minuscule...

Je sais qu'il serait possible de régler ça sans VBA, mais je débute sur ce langage et je me suis dit que ce serait un bon exercice ! Ce que je veux, c'est mettre toute la colonne de mon tableau des noms sous format : majuscule pour la première lettre et minuscule pour le reste

Ainsi, j'ai tapé ce code en VBA :


Sub IdNormal()

Dim bordel As String
Dim standard As String

Sheets("Assoc").Select

bordel = Range("D2, D457")

standard = StrConv(bordel, vbProperCase)

Range("D2, D457") = standard

End Sub


Sauf ça me met au format que je veux uniquement pour la première valeur! et la dernière valeur, ça me la change carrément pour la remplacer par la première! Pourtant, j'ai bien défini la plage de cellule de D2 jusque D457 !

Pourriez-vous m'éclairer ? :)

Merci par avance!
A voir également:

1 réponse

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 10/12/2016 à 10:14
Bonjour,

La bonne méthode est de parcourir la plage en faisant la transformation cellule par cellule.

Voici un exemple de façon de faire :

Sub IdNormal()

Dim cellule As Range

Sheets("Assoc").Select
    For Each cellule In Range("D2:D457")
        cellule = StrConv(cellule, vbProperCase)
    Next
End Sub


juste une précision : Range ("D2,D457") signifie les cellules D2 et D457.
Pour définir une plage il faut utiliser la syntaxe "D2:D457"

Cordialement,
0