Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Retirer chiffre d'une cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Power Development

XLDnaute Nouveau
Bonsoir tout le monde,

j'ai un fichier avec ville et CP dans la même case.
j'aimerais retire le CP pour que la ville soit dans une cellule et le CP dans l'autre.

exemple de ce que j'ai:

Waremme 4300
Remicourt 4350
Liège 4000
Herstal 4040
...

Merci de votre aide
 
Re : Retirer chiffre d'une cellule

Bonsoir,

Avec le principe de séparer NOM et Prénom. Ca devrait marcher...

En A2, VILLE et CP,

- en B2 : =GAUCHE(A2;TROUVE(" ";A2)-1)
- en C2 : =STXT(A2;TROUVE(" ";A2)+1;NBCAR(A2))
 
Re : Retirer chiffre d'une cellule

Re,
bonsoir Hubert,

En effet, avec convertir aussi, j'avais préféré la formule, mais voici avec Convertir (puisque je l'ai dans mon fichier) :

1/Prendre colonne ou bout de colonne (sélectionner)
2/ Données / Convertir puis choisir Délimité
3/ Cocher Espace
4/ Suivant… /Terminer/oui pour remplacer (attention prévoir nb de colonnes vides nécessaires)
5/ Attention, procéder à une relecture ; en effet, s'il y a 2 ou plusieurs espaces... modifier à la main ou trouver une autre solution
 
Re : Retirer chiffre d'une cellule

Bonsoir

Une solution parmi d'autre : sélectionner la colonne en question, chercher données, puis convertir, dans la fenêtre qui s'ouvre, choisir délimité, puis suivant, puis cocher espace.

@ plus

EDIT : Bonsoir Brigitte et Bhbh
 
Re : Retirer chiffre d'une cellule

Bonjour à tous,
Bonjour Brigitte,
Bonjour BH²,

Une autre solution :

Les données en A1 et suivant
En B1 :
Code:
=GAUCHE(A1;NBCAR(A1)-5)
En C1 :
Code:
=DROITE(A1;4)
Et tirer vers le bas

A++ et Bises
A+ à tous
 
Re : Retirer chiffre d'une cellule

Bonsoir,

Avec le principe de séparer NOM et Prénom. Ca devrait marcher...

En A2, VILLE et CP,

- en B2 : =GAUCHE(A2;TROUVE(" ";A2)-1)
- en C2 : =STXT(A2;TROUVE(" ";A2)+1;NBCAR(A2))

Bonsoir tous le monde...

c'est cette formule qui me semble le mieux convenir mais elle me donne le même problème que les autres formules...

quand j'ai une ville a nom composé comment dois-je faire?
exemple : RIVIERE SALEE PETIT BOURG 97215

autre question par la même occasion, toutes mes ligne sont en lien Hypertexte, y a t'il un moyen de les supprimer sur l'ensemble de la sélection?

Merci d'avance
 
Re : Retirer chiffre d'une cellule



Bonsoir JCGL,

je viens de tester ta solution et c'est nickel, en plus, ça règle mon autre problème....

Un problème de plus de régler merci à vous tous ....
 
Re : Retirer chiffre d'une cellule

Bonjour à tous,

Remplace la formules en C1 par :
Code:
=SUPPRESPACE(DROITE(A1;5))
et tirer vers le bas

Tu n'auras plus le problème de l'espace si le code postal est sur 4 ou 5 chiffres

A+ à tous
 
Re : Retirer chiffre d'une cellule

Bonjour à tous,
Une proposition en VBA :
Code:
Sub LOC_CP()
Dim i As Long, j As Long, ar As Range, x
Dim dat(), LOC(), CP()
    With Selection
        For Each ar In .Areas
            With ar
                If .Count = 1 Then ReDim dat(1 To 1, 1 To 1): dat(1, 1) = .Value Else dat = .Value
                ReDim LOC(1 To UBound(dat, 1), 1 To 1)
                ReDim CP(1 To UBound(dat, 1), 1 To 1)
                For i = 1 To UBound(dat, 1)
                    Do
                        x = CStr(dat(i, 1))
                        dat(i, 1) = Replace(x, Space(2), Space(1))
                    Loop Until dat(i, 1) = x
                    If Left$(x, 1) = Space(1) Then x = Right$(x, Len(x) - 1)
                    If Right$(x, 1) = Space(1) Then x = Left$(x, Len(x) - 1)
                    dat(i, 1) = x
                    x = Split(dat(i, 1), Space(1))
                    For j = 0 To UBound(x) - 1
                        LOC(i, 1) = LOC(i, 1) & x(j) & Space(1)
                    Next j
                    If UBound(x) > 0 Then LOC(i, 1) = Left$(LOC(i, 1), Len(LOC(i, 1)) - 1): CP(i, 1) = x(UBound(x)) Else LOC(i, 1) = dat(i, 1)
                Next i
                .Columns(1) = dat
                [COLOR="DarkOrange"].Columns(1).Offset(0, 1) = CP
                .Columns(1).Offset(0, 2) = LOC[/COLOR]
            End With
        Next ar
    End With
End Sub
La procédure prend la colonne la plus à gauche de la sélection courante comme argument et renvoie le résultat dans les deux cellules à droite. Donc, prévoir deux cellules vides à droite de chaque donnée à traiter.
Adapter les lignes écrites en orange pour placer la sortie ailleurs.​
Bonne journée,
ROGER2327
 
Re : Retirer chiffre d'une cellule

Bonjour


Une autre façon en VBA
(mais personnellement je passerai par Données /Convertir)

Mais cela me permet me dégourdir les doigts en ce petit matin frais.

Code:
Sub macroc()
Dim c As Range
Dim MASelection As Range
Dim Question As Integer
Application.ScreenUpdating = False
Question = _
        MsgBox("Pour la feuille active, cliquez OUI" & _
        Chr(13) & "Pour votre sélection de cellules, cliquez sur NON", _
        vbInformation + vbYesNo, "Choix des cellules à traiter")

If Question = 6 Then
For Each c In ActiveSheet.UsedRange.SpecialCells(2, 2)
    c = StrReverse(c.Text)
    c = Left(StrReverse(c.Text), 5)
Next
Else
Set MASelection = _
        Application.InputBox( _
        prompt:="Selectionnez une ou plusieurs cellules", Type:=8)
For Each c In MASelection.SpecialCells(2, 2)
    c = StrReverse(c.Text)
    c = Left(StrReverse(c.Text), 5)
Next
End If
Application.ScreenUpdating = True
Set MASelection = Nothing
Set c = Nothing
End Sub
 
Re : Retirer chiffre d'une cellule

Bonsoir à tous...
... et une question à vbacrumble : est-ce bien la procédure que vous vouliez publier ? En voyant les lignes
Code:
    c = StrReverse(c.Text)
    c = Left(StrReverse(c.Text), 5)
il m'a semblé qu'elles équivalaient à la ligne
Code:
    c = Left(c.Text, 5)
Après vérification, il en bien ainsi. Testé avec
FUAC 15282
_JIJRKD 55591
MKT 997
WJN___________79623
MRTX 84273
GJOUS 53643
GFSVYI 1907
RZIZRC GNGSH 68808
NVLYEA 93934
votre procédure renvoie
FUAC
_JIJR
MKT 9
WJN
MRTX
GJOUS
GFSVY
RZIZR
NVLYE
c'est-à-dire la troncature gauche au cinquième caractère des chaînes traitées.
Je pense qu'il fallait lire
Code:
    c = StrReverse(c.Text)
    [COLOR="Red"]c = StrReverse(Left(c.Text, 5))[/COLOR]
ou encore la ligne unique
Code:
    [COLOR="Red"]c = StrReverse(Left(StrReverse(c.Text), 5))[/COLOR]
Etait-ce là votre intention ?
Enfin, un petit souci : la procédure "plante" si, après avoir répondu "NON", on répond "Annuler". Quelle est la correction à appliquer ?
Merci d'avance d'éclairer ma lanterne.​
Cordialement,
ROGER2327
 
Re : Retirer chiffre d'une cellule

Bonsoir tous


... et une question à vbacrumble

Alors voici comment j'ai contourné la chose

Code:
Sub macroc2()
Dim c As Range
Dim MASelection As Range
Dim Question As Integer
Question = _
        MsgBox("Pour la feuille active, cliquez OUI" & _
        Chr(13) & "Pour votre sélection de cellules, cliquez sur NON", _
        vbInformation + vbYesNo, "Choix des cellules à traiter")

Select Case Question
    Case 6
        For Each c In ActiveSheet.UsedRange.SpecialCells(2, 2)
            c = StrReverse(c.Text)
            c = _
                Application.Trim(Replace(Left(StrReverse(c.Text), 5), "_", ""))
        Next
    Case 7
    On Error Resume Next
    Set MASelection = _
    Application.InputBox(prompt:="Selectionnez une ou plusieurs cellules", Type:=8)
     
        For Each c In MASelection.SpecialCells(2, 2)
            c = StrReverse(c.Text)
            c = _
                Application.Trim(Replace(Left(StrReverse(c.Text), 5), "_", ""))
        Next
    End Select
Set MASelection = Nothing
Set c = Nothing
End Sub
 
Re : Retirer chiffre d'une cellule

RE-bonsoir
Et merci pour cette réponse. La procédure fonctionne bien mais renvoie toujours le début de la chaîne au lieu de la fin. J'ai essayé ça
Code:
            c = StrReverse(Application.Trim(Replace(Left(StrReverse(c.Text), 5), "_", "")))
au lieu de
Code:
            c = StrReverse(c.Text)
            c = _
                Application.Trim(Replace(Left(StrReverse(c.Text), 5), "_", ""))
J'obtiens alors la fin de la chaîne.​
Merci encore,
ROGER2327
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…