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 :

Modifier une chaîne de caractères [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Par défaut Modifier une chaîne de caractères
    Bonjour

    J'aimerais via une macro modifier une chaine de caractère, j'ai essayé via l'enregistreuse mais ça ne donne pas le résultat recherché.

    Bref j'ai a copié régulièrement une chaine (date & heure) dans une cellule et à chaque fois je dois manuellement modifié le contenu pour me permettre de faire un calcul de date.

    Exemple
    2019-06-26 à 11 h 51 que je modifie à 2019-06-26 11:51

    Ce serait beaucoup plus pratique pour moi de pouvoir modifier le texte via une macro ou d'associer le code à l'ensemble de la colonne.

    Merci de l'intérêt que vous y porterez

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour
    et si tu sélectionne la colonne et cliquer sur Ctrl / H
    tu cherche H et tu remplace par :
    ça résout pas ton problème??

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    idem pour (à)
    Ctrl / H
    chercher : à
    remplacer par (ne rien écrire c'est à dire vide)
    puis remplacer tout

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Par défaut
    Merci BENNASR

    Non ce n'est pas la solution recherchée et ce serait pas plus compliqué à ce moment de modifier la chaine directement dans la cellule.

    Je n'ai pas besoin de modifier un ensemble de cellule mais de modifier chaque cellule à chaque fois que je copie la chaîne.

    Au plaisir!

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gonteur Voir le message
    Bonjour,

    A voir si c'est utilisable car on ne prend que la date et l'heure en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Function GroupeDateHeure() As String
     
    Dim MaDate As Variant
    Dim HeureEnCours As Variant
     
        MaDate = Split(CStr(Date), "/")
        HeureEnCours = Split(Time, ":")
        GroupeDateHeure = MaDate(2) & "-" & MaDate(1) & "-" & MaDate(0) & " " & HeureEnCours(0) & ":" & HeureEnCours(1)
     
    End Function

  6. #6
    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
    En supposant que ta valeur est en A1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").Value = Replace(Replace(Range("A1"), " à ", " "), " h ", ":")
    Vérifie que ta cellule n'est pas forcée au format Texte, sinon il faudra ajouter une ligne pour la repasser en format Date.

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Par défaut
    Merci Menhir

    On s'approche vraiment de ce que j'ai besoin

    Comment l'appliquer à l'ensemble des cellules de la colonne A plutôt qu'à une seule cellule?

    Merci

  8. #8
    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
    En faisant une boucle For To sur l'ensemble des lignes de la colonne.

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Par défaut
    Menhir

    Je veux plutôt que l'action se passe sur la cellule active

    De là le code suivant qui fonctionne très bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Format_Date()
     
        ActiveCell.Value = Replace(Replace(ActiveCell(), " à ", " "), " h ", ":")
     
    End Sub]

    Merci beaucoup de ton aide, ça m'a permis d'en apprendre encore

    Au plaisir!

  10. #10
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonsoir
    ton code s'applique à la cellule active
    si tu veux appliquer à un champs défini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:A10").Value = Replace(Replace(Range("A1"), " à ", " "), " h ", ":")

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

Discussions similaires

  1. [XL-2007] Modifier une chaîne de caractères
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/06/2018, 23h35
  2. [Débutant] Modifier une chaîne de caractère dans une boucle pour un fichier ascii
    Par Altolino dans le forum MATLAB
    Réponses: 5
    Dernier message: 20/04/2018, 10h30
  3. Réponses: 1
    Dernier message: 28/06/2017, 09h36
  4. [Python 3.X] Script modifiant une chaîne de caractères dans plusieurs fichiers.
    Par Julien698 dans le forum Général Python
    Réponses: 4
    Dernier message: 09/09/2014, 13h41
  5. modifier une chaîne de caractères dans une fonction void
    Par jujudelyon dans le forum Débuter
    Réponses: 10
    Dernier message: 11/01/2014, 18h47

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