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 :

Remplacement de format dans beaucoup de cellules [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2022
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2022
    Messages : 140
    Par défaut Remplacement de format dans beaucoup de cellules
    Bonjour,

    Je connais un peu VBA pour Access et vais sûrement m'y mettre pour Excel
    Mais par manque de temps, je pose une question ici parce que je n' ai pas trouvé de moyen simple de le faire :

    J'ai un classeur XL imbuvable avec des dizaines de feuilles
    Sur certaines, il y a des cellules contenant un nombre au format texte ## ## ##
    Je voudrais transformer le format de ces cellules en ######

    J'ai essayé par l'intermédiaire du CTRL-H mais sans succès (peut-être est-ce faisable quand même ?)

    ou peut-on m'écrire un pitit code siouplait ?

    Merci, cordialement

    Nemog

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 422
    Par défaut
    Bonjour,

    Oui, c'est bizarre que Ctrl-h ne permette pas de le faire. Aussi ce code qui va chercher dans la feuille active toutes les cellules où il se trouve un nombre qui à la forme xx xx xx et le transforme en nombre xxxxxx. Ne marche que s'il y a vraiment 6 chiffres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
     
    Sub TextEnNombre()
        Dim c As Range
        For Each c In ActiveSheet.UsedRange
            If c Like "## ## ##" Then
                c.Replace What:=" ", Replacement:=""
                c.NumberFormat = "0"
            End If
        Next c
    End Sub
    Cordialement.

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    Salut

    La forme ## ## ## est imposée par une mise en forme du format de la cellule ou est ce que les espaces entre les chiffres sont réellement présents?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2022
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2022
    Messages : 140
    Par défaut
    en creusant un peu plus, j'ai l'impression que ça a été écrit comme ça, pas vraiment un format imposé
    mais j'essaie d'imposer une règle : tout ce qui se présente comme 21 ## ## doit devenir 21####

    mes tentatives semblent se heurter à un "verrouillage", mais ni les cellules ni les feuilles ne semblent l'être !
    et j'ai aussi cherché dans les propriétés du fichier

    grrrrrrr !

    merci Qwazerty

    Merci EricDGN, mais je ne pourrai essayer que lundi

    Cordialement

    Nemog

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    Tu n'a pas moyen de nous donner un extrait anonymisé du fichier?
    Si toutes les valeurs commencent par "21 "
    Tu peux essayer de faire en 2 étapes
    1. Tu fais une recherche de toutes les cellules commençant par "21 " (Ctrl+F et tu recherches "21 *". Tu sélectionnes ensuite toutes les valeurs qu'Excel te retourne dan la liste de la fenêtre de recherche.
    2. En gardant la sélection, tu fais un remplacement du caractère " " (espace) par "" (vide)


    Excel devrait retrouver les formats numériques et te proposer de changer le format "text" en format "numéric"

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 422
    Par défaut
    Bonjour,

    Attention, si ces nombres sont des dates au format aa mm jj, alors c'est plutôt ceci qu'il faudrait utiliser, pour changer cela dans toutes les feuilles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub EnDates()
        Dim wSh As Worksheet, c As Range
        For Each wSh In ThisWorkbook.Worksheets
            For Each c In wSh.UsedRange
                If c Like "## ## ##" Then
                    c = CDate("20" & Replace(c, " ", "-"))
                    c.NumberFormat = "dd/mm/yyyy"
                End If
            Next c
        Next wSh
    End Sub
    (dates supposées être toutes après l'an 2000).

    Cordialement.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/05/2015, 18h10
  2. Réponses: 2
    Dernier message: 22/07/2008, 17h16
  3. Réponses: 5
    Dernier message: 28/07/2007, 20h29
  4. Remplacer un texte dans une cellule Excel à partir d'un point donné
    Par tonyC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/04/2006, 19h05
  5. Remplacer "#N/A" dans une plage de cellule.
    Par Yogi_01 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 12/04/2006, 14h59

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