TRie

Résolu
Alwllh -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
J'ai une interogation :
J'ai un tableau excel avec plein d'adresse de lieux.
J'aimerais faire en sorte de ne garder que le nom de la ville parmis toute l'adresse.
quelques exemple :
2, rue Gervex, Paris, 75, Île-de-France, 75017
17 b rue Etienne Augier, ANGOULEME, 16, Nouvelle Aquitaine, 16000
Quartier Marican, Goult, 84, Provence-Alpes-Côte d'Azur, 84 220
99, avenue du Président Coty, La Ferté-Macé, 61, Normandie, 61600

Merci d'avance !

6 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    en vba faire Alt F11 pour accéder à l'éditeur.

    Insertion Module et coller ce code :

    Option Explicit
    Dim FL1 As Worksheet, NoCol As Integer
    Dim NoLig As Long, Var As Variant
    Dim Tableau() As String
        Dim i As Integer
    Sub For_X_to_Next_Ligne()
    Dim FL1 As Worksheet, NoCol As Integer
    Dim NoLig As Long, Var As Variant
        Set FL1 = Worksheets("Feuil1") 'adapter le nom de la feuille
        NoCol = 1 'lecture de la colonne 1 colonne A
        For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4)
            Var = FL1.Cells(NoLig, NoCol)
           'découpe la chaine en fonction des virgules ","
        'le résultat de la fonction Split est stocké dans un tableau
        Tableau = Split(Var, ",")
        'boucle sur le tableau pour visualiser le résultat
        For i = 0 To UBound(Tableau)
            'Le résultat s'affiche dans la fenêtre d'execution de l'éditeur de macros
            Debug.Print Tableau(i)
        Next i
        If i = 6 Then
      FL1.Cells(NoLig, NoCol + 1) = Tableau(2)
           Else
            FL1.Cells(NoLig, NoCol + 1) = Tableau(1)
        End If
       Next
        Set FL1 = Nothing
    End Sub
    
    


    allez dans Développeur dans le ruban.

    Sélectionnez Macro; Option et sélectionnez: la macro For_X_to_Next_Ligne
    et choisissez un raccourci clavier

    Enregistrez classeur acceptant les macros

    Voilà

    1
    1. Alwllh
       
      C'est bon je sui sur mac et excel
      comment enregister le programme pour l'inserer via VBE
      0
      1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Alwllh
         
        Sous Windows:

        faire Alt F11 sur la feuille concernée pour accéder à l'éditeur.

        sur Mac je ne sais pas
        0
    2. Alwllh
       
      Merci infiniment tout fonctionne !!!!!!
      0
      1. Alwllh > Alwllh
         
        avez vous un paypal ?
        0
      2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730 > Alwllh
         
        Non, il suffit de cocher la case: Marquer comme résolu

        @+ Le Pivert
        0
  2. Zoul67 Messages postés 2001 Statut Membre 149
     
    Bonjour,

    Chaque adresse est dans une seule cellule ?

    A+
    0
    1. Alwllh
       
      Oui en effet
      0
  3. stupy
     
    Bonjour,

    d'après vos exemples, si on prend en compte uniquement la place de la ville dans la ligne par rapport au caractère virgule ',' on trouve des positions différentes si on part du début de la ligne.

    2, rue Gervex, Paris, 75, Île-de-France, 75017 -> La ville est Paris, 3ième position
    17 b rue Etienne Augier, ANGOULEME, 16, Nouvelle Aquitaine, 16000 -> 2ième position
    Quartier Marican, Goult, 84, Provence-Alpes-Côte d'Azur, 84 220 -> 2ieme position
    99, avenue du Président Coty, La Ferté-Macé, 61, Normandie, 61600 -> 3ieme position

    Par contre si on part de la fin de la ligne, la ville est toujours en 4ième position donc c'est possible de le faire selon cette logique.

    il fait beaucoup de lignes votre fichier ?
    0
  4. Alwllh
     
    3500. Mais effet le schéma est toujours identiques et la ville est quasi tout le temps en quatrième position en partant de la fin
    0
    1. Alwllh
       
      Help
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Zoul67 Messages postés 2001 Statut Membre 149
     
    Par fonction personnalisée :

    Function ville(cellule As String)
        'Inversion de la chaine
        esserda = StrReverse(cellule)
        t = Split(esserda, ",")
        ville = StrReverse(t(3))
    End Function
    0
    1. Alwllh
       
      Merci beaucoup mais comment faire pour mettre ca sur excel
      Cordialement
      0
      1. Alwllh > Alwllh
         
        De plus je ne sait pas ce que signifie macro complementaire
        0
      2. Alwllh > Zoul67 Messages postés 2001 Statut Membre
         
        rhoo je ne comprend rien veuillez m'excuser
        0