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 :

Suppression de caractères


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
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut Suppression de caractères
    Bonjour tout le monde,

    dans la colonne A : j'ai des valeurs de type : de C à C00000001000001 ( donc de 1 caractère à x)
    Dans la colonne B: je copie ces valeurs

    Je souhaiterai en VBA

    Dans la colonne B garder les 10 premiers caractères si le nombre de caractères est supérieur ou égal à 10.

    je souhaiterai l'appliquer à toute la colonne B

    En vous remerciant d'avance

  2. #2
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Bonsoir,
    Un code pour ce faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim rng As Range
    For Each rng In Columns(2).SpecialCells(xlCellTypeConstants).Cells
    If Len(rng) >= 10 Then
    rng.Value = Left(rng, 10)
    End If
    Next
    Cordialement.
    Karim
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  3. #3
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut
    Mon fichier étant assez lourd (plus de 100 000 lignes et 20 Colonnes)

    J'ai copié le code proposé puis exécuté mais malheureusement mon fichier ne répond plus (20 min "ne répond plus")

    Pouvez-vous y jeter un oeil?

    ci dessous le code complet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
    Dim rng As Range
    Dim Nc, Cel As Range, LigFin As Variant, I As Variant
     
        Sub ZPMQ()
     
     
        Application.ScreenUpdating = False
        Sheets("ZPMQ").Select
        LigFin = Sheets("ZPMQ").Cells(Rows.Count, 1).End(xlUp).Row
        Range("B2:B" & LigFin).ClearContents
        Range("A2:A" & LigFin).Select
        Application.CutCopyMode = False
        Selection.Copy
        Range("B2").Select
        ActiveSheet.Paste
     
        For Each rng In Columns(2).SpecialCells(xlCellTypeConstants).Cells
        If Len(rng) >= 10 Then
        rng.Value = Left(rng, 10)
        End If
        Next
        Application.ScreenUpdating = True
     
        End Sub
    Encore Merci

  4. #4
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Votre code quelque peu amélioré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ZPMQ()
    Application.ScreenUpdating = False
     
            LigFin = Sheets("ZPMQ").Cells(Rows.Count, 1).End(xlUp).Row
            Sheets("ZPMQ").Range("B2:B" & LigFin).FillRight
     
            For Each rng In Columns(2).SpecialCells(xlCellTypeConstants).Cells
            If Len(rng) >= 10 Then
            rng.Value = Left(rng, 10)
            End If
            Next
    End Sub
    Bon courage.
    Karim.
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  5. #5
    Membre averti
    Homme Profil pro
    agent de maîtise
    Inscrit en
    Décembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : agent de maîtise
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2014
    Messages : 23
    Par défaut
    Merci Karim,

    Mon fichier est toujours en mode ne répond plus...


  6. #6
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Vous savez? il n'y a rien de volumineux qui s'exécute dans ce code, le problème serait alors lié à un long calcul ou une autre macro qui se déclenche en conséquence des changements qui ressortent de l'exécution de cette macro.
    Cordialement.
    Karim.
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

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

Discussions similaires

  1. suppression dernier caractère d'un ArrayList avec le clavier
    Par barbiche dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 26/03/2007, 12h04
  2. Suppression de caractères dans un fichier
    Par kimlee dans le forum Administration système
    Réponses: 2
    Dernier message: 12/10/2006, 09h42
  3. Réponses: 4
    Dernier message: 10/10/2006, 10h14
  4. Suppression de caractères spéciaux
    Par nellynew dans le forum Access
    Réponses: 3
    Dernier message: 18/09/2006, 10h14
  5. Suppression de caractères
    Par Galaad dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/08/2006, 11h54

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