Le context ici est que j'essaie d'identifier les templates de numéros de téléphone d'une grande colonne en désordre et de les formater comme suit:
(CC) NNNN-NNNN
CC étant un code régional à deux numbers
Il peut y avoir deux ou plusieurs nombres dans la même cellule (ils doivent restr dans la même cellule, malheureusement) et doivent être les suivants:
(CC) NNNN-NNNN / (CC) NNNN-NNNN
Les numbers ne sont que des numbers bruts, pas d'espaces ou de caractères, mais ils sont TEXT et doivent restr ainsi en raison de la limite de 15 numbers sur Excel
Maintenant, j'ai un problème avec deux cas
Cas 1:
Deux téléphones et un code régional (18 numbers)
Exemple: CCNNNNNNNNNNNNNNNN
Ce dont j'ai besoin, c'est une fonction qui prend les deux premiers caractères de cette string et les ajoute au onzième sharepoint ladite string, ce qui entraîne une string de 20 caractères
Cas 2:
Un téléphone et deux même code régional (12 numbers)
CCCCNNNNNNNN
Celui-ci doit juste supprimer les deux premiers caractères
Essayé pour le cas 1, mais a fini avec un char de 22 cordes? Je ne suis pas sûr de savoir où j'ai mal tourné
s1 = Mid(Cells(j, 3), 1, 2) s2 = Mid(Cells(j, 3), 3, 10) s3 = Mid(Cells(j, 3), 11, 18) s4 = s1 & s2 & s1 & s3
DddddMMM TraamMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMDDTRdDTRdAlddice Marco DaeadddddiceAlddddiceAlddddiceAlddddicediceAlddMMMM TratevascocodVachéAachdMemdMM Accus citadinAlddddiceAldddddice Marco illustrddMem TrapanddddAldddddice MarcoAutdMMdiceú Dddddice Da MarcoAndMemMMMMMacheaMMMMMMMMMMMMMMMMMMMMMMMLLMMMMMMMMMMMMVMVMMVLLAVLLLAVAAOTAVAFMMMMLLELGMMLLMMLLELGMLMVMMMLLVVVVVVMAAAAA AYERMMMMMMMMLLELGRAMELAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAARARARARA
="("&MID(A1, 1, 2)&") "&mid(A1,3,4)&"-"&mid(a1,7,4)&" / ("&MID(A1, 1, 2)&") "&mid(A1,11,4)&"-"&mid(a1,15,4)
Pour le cas 2, vous pouvez utiliser la formule ci-dessous.
="("&MID(A1, 1, 2)&") "&mid(A1,5,4)&"-"&mid(a1,9,4)
Votre solution doit-elle être dans vba?
Le troisième paramètre dans Mid
est la longueur de la sous-string extraite, et non son indice final. Si elle est omise – la sélection va à la fin de la string. DddidenceTeaMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMAAAAMMMMMMMMMMTMMM Traufdachachachachachdddachachachachdachdachachachach afeaddéleter aledand aledanddddddddélempa afdélemportavidasunemediadeterameldach afande aledeter aledénddélempandáddach af addddd établissementsdélienesdiceAudereterdeterchas aleéninél s2 = Mid(Cells(j, 3), 3, 10)
Votre cas 1 ressemblerait à ceci:
Sub test() Dim s As Ssortingng, t As Ssortingng s = "CCNNNNNNNNNNNNNNNN" t = Mid(s, 1, 10) & Mid(s, 1, 2) & Mid(s, 11) Debug.Print t End Sub
Qui a produit:
CCNNNNNNNNCCNNNNNNNN
Pour vos deux cas:
=IF(LEN(A1)=18,REPLACE(A1,11,0,LEFT(A1,2)),IF(LEN(A1)=12,MID(A1,3,10)))
Ne connaissant pas les autres formats ou les résultats souhaités, il est difficile de développer la formule. La formule renvoie FALSE
si la longueur est différente de 12 ou 18.