Supprime caractères

Bonjour,

J'ai dans la colonne "E" le nom d'une ville sur une ligne comme ceci

AMBÉRIEU-EN-BUGEY

et sur la deuxième ligne j'ai des Gentilé "Nom des habitants" comme ceci

Gentilé : Ambarrois, Ambarroises59 entités recensées dans la commune

Et j'aimerai si possible avoir dans deux colonnes ex: "H et I"

ceci: AMBÉRIEU-EN-BUGEY Ambarrois, Ambarroises

Je joint mon fichier qui seras plus explicite.

Je vous remercie d'avance

Max

19supp-caract.xlsm (8.94 Ko)

Salut,

En s'amusant un peu avec des formules :

10supp-caract.xlsm (11.83 Ko)

J'espère que ça convient,

Bonne journée,

Bonjour, salut Girodo,

Je me suis aussi amusé avec des formules (ce serait plus simple en macro)...

16supp-caract.xlsm (10.03 Ko)

Bonjour Pedro

Je te remercie mais oui ce serai pus simple avec une macro?

Max

Bonjour Girodo, Pedro22 et Valmax

(ce serait plus simple en macro)...

Je suis un fénéant ;D ! Bravo à vous deux pour vos solutions via formules :0

7pour-valmax.xlsm (21.86 Ko)

Salut Juice,

Je n'ai pas regardé ta proposition, mais comme j'avais aussi planché sur une macro, je poste le code pour le fun :

Sub Transfo()

Dim Lig As Long, LigMax As Long, Car As Integer, Chaine As String

With Sheets("Feuil1")
    LigMax = .Range("E" & Rows.Count).End(xlUp).Row
    For Lig = 4 To LigMax Step 2
        .Range("H" & Lig / 2 + 2) = .Range("E" & Lig)
        Chaine = ""
        If Left(.Range("E" & Lig + 1), 9) = "Gentilé :" Then
            For Car = 10 To Len(.Range("E" & Lig + 1))
                If IsNumeric(Mid(.Range("E" & Lig + 1), Car, 1)) Then Exit For
                Chaine = Chaine & Mid(.Range("E" & Lig + 1), Car, 1)
            Next Car
            .Range("I" & Lig / 2 + 2) = Chaine
        End If
    Next Lig
End With

End Sub

Re, Pedro

Sa fonctionne si la colonne est longue environ 1000 lignes sa prend du temps mais sa fonctionne.

je te remercie et bonne journée

Max

Sa fonctionne si la colonne est longue environ 1000 lignes sa prend du temps mais sa fonctionne.

Un code un peu plus optimisé et rapide :

Sub Transfo()

Dim Lig As Long, LigMax As Long, Car As Integer, Chaine As String, Contenu As String

Application.Calculation = xlCalculationManual

With Sheets("Feuil1")
    LigMax = .Range("E" & Rows.Count).End(xlUp).Row
    For Lig = 4 To LigMax Step 2
        .Range("H" & Lig / 2 + 2) = .Range("E" & Lig)
        Chaine = "" : Contenu = .Range("E" & Lig + 1)
        If Left(Contenu, 9) = "Gentilé :" Then
            For Car = 10 To Len(Contenu)
                If IsNumeric(Mid(Contenu, Car, 1)) Then Exit For
                Chaine = Chaine & Mid(Contenu, Car, 1)
            Next Car
            .Range("I" & Lig / 2 + 2) = Chaine
        End If
    Next Lig
End With

Application.Calculation = xlCalculationAutomatic

End Sub

Et si ça fonctionne, je veux bien que tu indiques que ton problème est résolu...

Re,

Sa fonctionne Nickel

Merci et bonne soirée

Max

Et si ça fonctionne, je veux bien que tu indiques que ton problème est résolu...

Re

Je veut bien comment fait on?

A droite de chaque réponse, tu as une case à cocher. L'idée est de cocher la réponse la plus adaptée, pour que tout futur visiteur trouve facilement sa réponse en cas de problème similaire.

Rechercher des sujets similaires à "supprime caracteres"