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

Excel Discussion :

remplacer les 2 premiers caractères d'une cellule sans toucher aux autres caractères identiques


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    responsable formation
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : responsable formation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut remplacer les 2 premiers caractères d'une cellule sans toucher aux autres caractères identiques
    bonjour,

    Dans un classeur, je voudrais remplacer toutes les cellules qui COMMENCENT par 16 par XX
    J'ai utilisé la fonction remplacer ou j'ai fait la macro ci-dessous , mais le problème est qu'il remplace aussi les caractères identiques autres que les 2 premiers.
    J'ai en colonne A les cellules qui commencent toutes par 16_une lettre_une incrémentation:
    16A01 16A02 etc 16A16 16A17 etc, 16B01 16b02 etc 16B16 16B17 etc et j'ai un classeur de plus de 200 feuilles.
    Lorsque j'utilise ma macro ou CTRL F et remplacer 16 par xx, toutes les zones où il y 16 à la fin sont aussi remplacer par xx.
    Que faut il modifier à ma macro, svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub remplace()
    Dim sh As Worksheet
    For Each sh In Sheets
        sh.Cells.Replace What:="16", Replacement:="XX", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    Next sh
    End Sub

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonsoir,

    Utilise cette formule en B1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =REMPLACER(A1; 1; 2; "XX")
    Exemple:

    16A01 XXA01
    16A02 XXA02
    16A16 XXA16




    REMPLACER(ancien_texte, no_départ, no_car, nouveau_texte)


    La syntaxe de REMPLACER contient les arguments suivants :

    • ancien_texte Obligatoire. Représente le texte dont vous voulez remplacer un nombre donné de caractères.
    • no_départ Obligatoire. Représente la place du premier caractère de la chaîne ancien_texte là où le remplacement par nouveau_texte doit commencer.
    • no_car Obligatoire. Représente le nombre de caractères d’ancien_texte que nouveau_texte doit remplacer à l’aide de REMPLACER.
    • nouveau_texte Obligatoire. Représente le texte qui doit remplacer les caractères d’ancien_texte.

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Je crains fort, s'il s'agit de remplacer directement (et non d'obtenir un résultat avec remplacement dans une autre cellule) que tu ne puisses éviter ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim sh As Worksheet, cellule As Range, c As String
      For Each sh In Worksheets
         For Each cellule In sh.UsedRange.Cells
           c = cellule.Value
           If Left(c, 2) = "16" Then
              Mid(c, 1, 2) = "XX"
              cellule.Value = c
           End If
        Next
      Next
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  4. #4
    Membre à l'essai
    Homme Profil pro
    responsable formation
    Inscrit en
    Février 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : responsable formation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut MERCI
    bonjour et merci.

    Je clôture en résolu

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

Discussions similaires

  1. [XL-2007] Boucle pour remplacer les 2 premiers caractères d'une colonne
    Par Romist dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/12/2015, 13h17
  2. Supprimer les 5 premiers caractères d'une cellulle dans un TCD
    Par had4789 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/08/2014, 15h50
  3. [AC-2010] Majuscule premiere lettre, sans toucher aux autres
    Par petitours dans le forum IHM
    Réponses: 5
    Dernier message: 17/07/2013, 00h07
  4. Réponses: 4
    Dernier message: 21/10/2009, 10h17
  5. Premier caractère d'une cellule
    Par devvba dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/03/2008, 17h07

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