Supprimer des éléments dans une colonne, infos mélangé

Fermé
tiketeur Messages postés 15 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 21 février 2023 - 22 févr. 2019 à 11:04
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 23 févr. 2019 à 06:38
Bonjour,

J'aimerais supprimer des éléments sur une colonne en particulier contenant 10 000 lignes, sur cette colonne est référencé des noms de villes mais avec un numéro code dans la même cellule, par exemple :

A1 : ABC01 - Paris
A2 : DEF02 - Marseille

Sauf que parfois, ce fameux code n'est pas avant le nom de ville mais après :

A1000 : Nantes - ZZS001
A3000 : Toulon - 001AAZ

ces codes n'ont pas une structure définit non plus, parfois il y a des lettres avec des chiffres, parfois que des chiffres.

C'est pourquoi je sollicite votre aide car je ne sais pas trop comment traiter, je souhaite garder uniquement le nom de ville et virer les autres éléments.

Merci pour votre aide.



Configuration: Windows / Firefox 62.0
A voir également:

7 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
22 févr. 2019 à 12:07
Bonjour,

Si tous les noms des villes sont sous la forme Nom Propre (Première lettre en majuscule et le reste en minuscules, et les lettres des codes en majuscules)
Essayez ceci en B1 et à tirer vers le bas
=SUBSTITUE(A1;SI(OU(CODE(STXT(A1;TROUVE(" - ";A1;1)-2;1))<97;CODE(STXT(A1;TROUVE(" - ";A1;1)-2;1))>122);GAUCHE(A1;TROUVE(" - ";A1;1)+2);STXT(A1;TROUVE(" - ";A1;1);10));"")
Cdlt
0
tiketeur Messages postés 15 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 21 février 2023
22 févr. 2019 à 14:20
Bonjour Frenchie83, merci pour la réponse,

j'avais oublié de préciser mais malheureusement, toutes les lettres (noms et les codes) sont en majuscules..
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
22 févr. 2019 à 15:32
Bonjour

Avec une fonction personnalisée à mettre dans un module de l'éditeur VBA
Function decoupage(plage As Range)
r = Application.WorksheetFunction.Find("-", plage.Value)
If IsNumeric(Mid(plage.Value, r - 2, 1)) Then a = Right(plage.Value, Len(plage.Value) - r - 1) Else a = Left(plage.Value, r - 2)
decoupage = a
End Function


S’utilise comme toute fonction selon la syntaxe =decoupage(cellule à traiter)

Cdlmnt
Via
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
22 févr. 2019 à 15:36
Bonjour à tous les deux

Peut être avec une petite macro
https://www.cjoint.com/c/IBwoKvcqNWB

Cdlmnt
0
tiketeur Messages postés 15 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 21 février 2023
22 févr. 2019 à 16:30
Bonjour et merci,

lorsque j'utilise cette macro, j'ai un message d'erreur indiquant "l'indice n'appartient pas à la sélection"
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
22 févr. 2019 à 18:38
lorsque j'utilise cette macro, j'ai un message d'erreur indiquant "l'indice n'appartient pas à la sélection"
Avec mon fichier ou avec le tien ?
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
22 févr. 2019 à 16:23
RE,
Toujours avec une formule en B1 à valider avec CTRL + SHIFT + ENTREE (A condition qu'il y ait au moins un chiffre dans le code)

=SI(ESTNUM(STXT(GAUCHE(A1;TROUVE(" - ";A1;1));EQUIV(0;(ESTERREUR(STXT(GAUCHE(A1;TROUVE(" - ";A1;1));LIGNE(INDIRECT("1:"&NBCAR(GAUCHE(A1;TROUVE(" - ";A1;1)))));1)*1)*1);0);NBCAR(GAUCHE(A1;TROUVE(" - ";A1;1)))-SOMME((ESTERREUR(STXT(GAUCHE(A1;TROUVE(" - ";A1;1));LIGNE(INDIRECT("1:" & NBCAR(GAUCHE(A1;TROUVE(" - ";A1;1)))));1)*1)*1)))*1);STXT(A1;TROUVE(" - ";A1;1)+3;10);GAUCHE(A1;TROUVE(" - ";A1;1)))

Cdlt
0
tiketeur Messages postés 15 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 21 février 2023
22 févr. 2019 à 16:32
Re Frenchie,

j'ai le message d'erreur suivant lorque j'applique ça : impossible d'entrer la formule spécifiée car elle utilise plus de niveaux d'imbrication que ne l'autorise le format de fichier actuel.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
22 févr. 2019 à 16:36
Voici le fichier
https://mon-partage.fr/f/QFd44DgK/
0
tiketeur Messages postés 15 Date d'inscription mercredi 6 novembre 2013 Statut Membre Dernière intervention 21 février 2023
22 févr. 2019 à 17:33
Merci beaucoup de ton aide Frenchie mais ça ne fonctionne pas...

J'ai réutilisé ton tableau avec quelques lignes de mon fichiers pour que tu puisses voir : https://mon-partage.fr/f/QA0HeQ2O/
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
22 févr. 2019 à 18:44
Tu ne dis rien sur ma fonction personnalisée qui fonctionne très bien
L'as tu seulement essayée ?
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
22 févr. 2019 à 21:17
Salut via55

un petit pb si la valeur à traiter est 02AAA - Marseille
j'ai eu la même idée (post #4), mais j'ai testé la présence d'un numérique dans toute la première demi-chaine

Bonne soirée
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
22 févr. 2019 à 22:50
Bonsoir ccm

Tu as raison ! Donc faisable en testant en premier tous les caractères de la 1ere demi chaîne
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
23 févr. 2019 à 06:38
Bonjour,

Correctif à la formule (dans la précédente formule je pensais qu'il y avait un espace avant et après chaque tiret)
Nouvelle formule en B1 à valider aver CTRL + SHIFT + ENTREE et à tirer vers le bas:
=SI(ESTNUM(STXT(GAUCHE(A1;TROUVE("-";A1;1)-1);EQUIV(0;(ESTERREUR(STXT(GAUCHE(A1;TROUVE("-";A1;1)-1);LIGNE(INDIRECT("1:"&NBCAR(GAUCHE(A1;TROUVE("-";A1;1)-1))));1)*1)*1);0);NBCAR(GAUCHE(A1;TROUVE("-";A1;1)-1))-SOMME((ESTERREUR(STXT(GAUCHE(A1;TROUVE("-";A1;1)-1);LIGNE(INDIRECT("1:" & NBCAR(GAUCHE(A1;TROUVE("-";A1;1)-1))));1)*1)*1)))*1);STXT(A1;TROUVE("-";A1;1)+1;30);GAUCHE(A1;TROUVE("-";A1;1)-1))

De plus, il faut activer le calcul itératif dans le paramétrage des options EXCEL,
-Cliquer sur le bouton OFFICE en haut à gauche
-Sélectionner Formules
-Dans le premier paragraphe "Mode de calcul", cocher Activer le calcul itéraif" et fixer le nombre maximal d'itérations à 1


Avec le fichier:
https://mon-partage.fr/f/XfbkVJH6/

Cdlt
0