Séparé chiffre dans une même cellule

Bonjour ,

En colonne A j'ai l'immatriculation avec plusieurs format avec '-' , avec des espaces, et sans espaces.

alors j'ai filtré les ligne ou il n'y a pas de '-', après j'ai utilisé une formule de =SUBSTITUE(A10;" ";"") pour supprimé les espaces, ensuite =GAUCHE(B10;NBCAR(B10)-5) & "-" & STXT(B10;NBCAR(B10)-4;3) & "-" & DROITE(B10;2) mais le problème c'est que pour immatriculation comme 002124 00 16 je suis obligé de changé ma formule manuelle .moi je veux automatisé ma recherche en utilisant recherchev et appliqué la mise en forme tout en respectant les espace de colonne initial A parfois 2 ou 3 numéro au milieux.

en plus j'utilise =NBCAR(B2) alors la formule touchera que =NBCAR(B2)>8 et =NBCAR(B2)<12

Merci d’avance.

9test.xlsx (40.11 Ko)

Salut,

Je trouve ta demande peu claire. En plus des signes de séparation que tu mentionnes, il y a également des * et des /. Dans le fichier ci-joint, j’ai tenté de laisser au moins un exemple de chaque cas possible, ce qui rend la visualisation plus facile. Si j’en ai oublié, rajoute-les.

Tout d’abord, avec les cas à 10 caractères, je n’ai pas compris sur quels critères tu as parfois marqué toute la ligne en jaune, parfois uniquement la colonne D, parfois rien du tout. Mais je pense que ce n’est pas si important.

Selon moi, tu devrais plutôt – sur la Feuil2 de mon fichier – indiquer manuellement ce que tu attends comme résultat pour les différents cas possibles. Si pour un cas tu n’attends pas de résultat – comme tu n’as pas tiré ta propre formule dans toute ta colonne D – marque simplement un X.

A te relire.

4test-v1.xlsx (11.73 Ko)

Bonjour ,

D'abord si nb=7 ou nb=14 et nb=15 ne rien faire , sinon voir la ligne 10 on utilise cette formule =GAUCHE(C10;NBCAR(C10), et ligne 11 =GAUCHE(C11;NBCAR(C11)-4) & "-" & STXT(C11;NBCAR(C11)-4;3) & "-" & DROITE(C11;2). et pour les cellule ou il y déjà "-" ne rien faire .

Je veux intégrer tout ça dans une formule de recherchev

4test-v1.xlsx (11.55 Ko)

Je n’avais pas remarqué que tu ne traitais pas toutes les lignes, selon le nombre de caractières, mais je trouve toujours tes explications peu claires et peu précises.

Tu as dit : «alors la formule touchera que =NBCAR(B2)>8 et =NBCAR(B2)<12», mais tu donnes quand même des résultats pour les lignes comportant 12 caractères !

Ensuite je te demande de m’indiquer dans la colonne D de la Feuil2 les résultats attendus, mais tu y places des formules et débordant sur la colonne E.

Tu dis : «sinon voir la ligne 10 on utilise cette formule =GAUCHE(C10;NBCAR(C10)», mais tout d’abord tu ne précises pas de quelle feuille tu parles et ni dans l’une, ni dans l’autre des 2 feuilles il y a la formule indiquée à la ligne 10.

Au passage, la formule =GAUCHE(C10;NBCAR(C10)», ne renvoit rien d’autre que le contenu complet et exact de la cellule C10

Tu dis vouloir utiliser la formule RECHERCHEV, mais l’on ne peut pas voir dans quel tableau tu veux effectuer ta recherche. En voyant ce tableau, ou en tout cas un extrait, on visualiserait mieux ce que tu cherches à faire.

Si tu ne fournis pas le tableau dans lequel rechercher les valeurs voulues et sans les réponses attendues dans la colonne D de la Feuil2 de mon fichier, j’abandonnerai.

Amicalement.

Bonjour ,

comme tu me la demandé j'ai renseigné Résultats attendus avec différents exemples de mon fichier initial,j'ai laissé que feuille 2. J'espère avoir respecté ta demande.

Merci

6test-v1.xlsx (9.38 Ko)

Salut,

Tu as changé la donne ; il n’y a par exemple plus de textes à 10 caractères et tu demandes nouvellement de traiter des textes de moins de 9 caractères !!

Si tu ne fournis pas le tableau dans lequel rechercher les valeurs voulues

On ne peut pas vraiment dire que tu as répondu à ma demande à ce niveau ; il m’est donc impossible de savoir si les valeurs générées peuvent être utilisées pour ta formule incluant la fonction RECHERCHEV

Dans le fichier ci-joint, j’ai placé la formule unique ci-dessous en D2 que j’ai tiré vers le bas.

=SI(NBCAR(A2)=7;GAUCHE(A2;2)&"-"&STXT(A2;3;3)&"-"&DROITE(A2;2);SI(NBCAR(A2)=8;TEXTE(GAUCHE(A2;3);"00000")&"-"&STXT(A2;4;3)&"-"&DROITE(A2;2);SI(ET(NBCAR(A2)>=9;NBCAR(A2)<=13);SUBSTITUE(SUBSTITUE(A2;" ";"-");"*";"-");A2)))

Avec cette formule, la colonne B pourrait être supprimée.

Selon le contrôle en colonne E, ça répond exactement à ta demande. Il y a un problème à la ligne 33, mais tu constateras que c’est toi qui t’es trompé.

Je présume que ton choix de cas à traiter n’est pas complet, mais qu’y puis-je ?

Cordialement.

6test-v2.xlsx (11.70 Ko)

Bonjour ,

Tout d'abord je tiens à te remercier, c'est exactement ce que je recherchais . j'ai rajoutais 2 cas qui sont en jaune avec des "," et "." que je voudrais intégrer dans la formule.

Merci d'avance

4test-v2.xlsx (11.62 Ko)

Voici la nouvelle formule, placée dans le fichier annexé.

=SI(NBCAR(A2)=7;GAUCHE(A2;2)&"-"&STXT(A2;3;3)&"-"&DROITE(A2;2);SI(NBCAR(A2)=8;TEXTE(GAUCHE(A2;3);"00000")&"-"&STXT(A2;4;3)&"-"&DROITE(A2;2);SI(ET(NBCAR(A2)>=9;NBCAR(A2)<=13);SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;" ";"-");"*";"-");".";"-");",";"-");A2)))

Bonnes salutations.

4test-v3.xlsx (10.34 Ko)

Bonjour ,

J'ai un nouveau cas que la formule ne traite pas , ci_joint le fichier avec en jaune les cas a traité .

Merci d'avance.

5test-v4.xlsx (12.32 Ko)

Bonjour

voila une macro pour convertir ton cas

A+

Maurice

Sub Test()
Dim MaChaine As String
Ca = Array("-", "/", ".", ",", " ")
    For L = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        MaChaine = Range("A" & L).Value
            For C = 0 To UBound(Ca)
                MaChaine = Replace(MaChaine, Ca(C), "")
            Next
        Insert = "-"
        I = Len(MaChaine) - 1
        T = Len(MaChaine) - 4
        MaChaine = Left$(MaChaine, I - 1) & Insert & Mid$(MaChaine, I)
        MaChaine = Left$(MaChaine, T - 1) & Insert & Mid$(MaChaine, T)
        Range("D" & L).Value = MaChaine
    Next
End Sub

Re

avec formatage minimum a 10 chiffres

A+

Maurice

Sub Test()
Dim MaChaine As String
Ca = Array("-", "/", ".", ",", " ")
    For L = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        MaChaine = Range("A" & L).Value
            For C = 0 To UBound(Ca)
                MaChaine = Replace(MaChaine, Ca(C), "")
            Next
         MaChaine = Format(MaChaine, "0000000000")
        Insert = "-"
        I = Len(MaChaine) - 1
        T = Len(MaChaine) - 4
        MaChaine = Left$(MaChaine, I - 1) & Insert & Mid$(MaChaine, I)
        MaChaine = Left$(MaChaine, T - 1) & Insert & Mid$(MaChaine, T)
        Range("D" & L).Value = MaChaine
    Next
End Sub

Bonjour ,

Désolé mais ça veux pas marcher.

Merci

bonjour

retour de ton modèle et tu click sur le bouton

A+

Maurice

5test-v4.xlsm (22.71 Ko)

Bonjour,

Je n'étais pas parti sur une macro car tu semblais vouloir une solution par formule.

Pour la beauté du geste, voici quand même la solution demandée.

=SI(NBCAR(A2)=7;GAUCHE(A2;2)&"-"&STXT(A2;3;3)&"-"&DROITE(A2;2);SI(NBCAR(A2)=8;TEXTE(GAUCHE(A2;3);"00000")&"-"&STXT(A2;4;3)&"-"&DROITE(A2;2);SI(ET(ESTERREUR(CHERCHE("-";SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;" ";"-");"*";"-");".";"-");"/";"-");",";"-")));NBCAR(A2)>=9;NBCAR(A2)<=13);TEXTE(A2;"#####-000-00");SI(ET(NBCAR(A2)>=9;NBCAR(A2)<=13);SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;" ";"-");"*";"-");".";"-");"/";"-");",";"-");A2))))

Cordialement.

2test-v5.xlsx (15.04 Ko)

Bonjour@ Yvouille,

Merci beaucoup , tu me sauve la vie

Merci

On peut gagner 4 caractères en remplaçant TEXTE(A2;"#####-000-00") par TEXTE(A2;"#-000-00")

=SI(NBCAR(A2)=7;GAUCHE(A2;2)&"-"&STXT(A2;3;3)&"-"&DROITE(A2;2);SI(NBCAR(A2)=8;TEXTE(GAUCHE(A2;3);"00000")&"-"&STXT(A2;4;3)&"-"&DROITE(A2;2);SI(ET(ESTERREUR(CHERCHE("-";SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;" ";"-");"*";"-");".";"-");"/";"-");",";"-")));NBCAR(A2)>=9;NBCAR(A2)<=13);TEXTE(A2;"#-000-00");SI(ET(NBCAR(A2)>=9;NBCAR(A2)<=13);SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;" ";"-");"*";"-");".";"-");"/";"-");",";"-");A2))))

Bonjour ,

Merci beaucoup je vais l'essayer.

Rechercher des sujets similaires à "separe chiffre meme"