IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Réorganiser un ensemble de cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Par défaut Réorganiser un ensemble de cellules
    Bonjour,

    Je fais fasse à un petit soucis. Je reçois quotidiennement une quantité importante de données avec des numéros et noms de rue. Le problème c'est que les données ne sont pas rentrées de la même manière dans chaque cellule... des fois il y a le bis collé au numéro, des fois non, des fois des lettres, des fois des * si il n'y a pas le numéro... Cf fichier joint

    J'aurais donc besoin d'éclater la cellule en plusieurs autres cellules avec le numéro si il existe dans la colonne C, le "type de rue" (route, chemin, ect") dans la colonne D et le nom dans la colonne E.

    Sachant que le plus important pour moi est le type de rue et son nom. Si je perd l'information "numéro" ce n'est pas grave car l'objectif final est de pouvoir voir si des rues reviennent plus que d'autres

    Avez-vous des astuces ? Soit par formule ou VBA, je prends !

    Merci de votre aide!!
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cha33 Voir le message
    Bonjour,

    Testez ces 3 fonctions à placer dans un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
     
    Function ExtraireNumero(ByVal Adresse As String) As String
     
    Dim I As Integer
    Dim MonNumero As String
     
        ExtraireNumero = ""
        If Len(Adresse) = 0 Then Exit Function
        MonNumero = Split(Trim(Adresse), " ")(0)
     
        For I = 1 To Len(MonNumero)
           Select Case Mid(MonNumero, I, 1)
             Case 0 To 9
                  ExtraireNumero = ExtraireNumero & Mid(MonNumero, I, 1)
           End Select
        Next I
     
    End Function
     
     
    Function ExtraireVoie(ByVal Adresse As String) As String
     
    Dim I As Integer
    Dim MesVoies As Variant
     
        MesVoies = Array("allée", "allee", "avenue", "chemin", "lotissement", "route", "rue", "voie")
     
        For I = LBound(MesVoies) To UBound(MesVoies)
            If InStr(1, LCase(Adresse), MesVoies(I), vbTextCompare) > 0 Then
               ExtraireVoie = MesVoies(I)
               Exit Function
            End If
        Next I
     
    End Function
     
     
     
    Function ExtraireNom(ByVal Adresse As String) As String
     
    Dim I As Integer, CaractereDebut As Integer
    Dim MesVoies As Variant
     
        MesVoies = Array("allée", "allee", "avenue", "chemin", "lotissement", "route", "rue", "voie")
     
        For I = LBound(MesVoies) To UBound(MesVoies)
            CaractereDebut = InStr(1, LCase(Adresse), MesVoies(I), vbTextCompare)
            If CaractereDebut > 0 Then
               ExtraireNom = Trim(Mid(Adresse, CaractereDebut + Len(MesVoies(I))))
               If Right(Trim(ExtraireNom), 1) = "-" Then ExtraireNom = Trim(Mid(Adresse, CaractereDebut + Len(MesVoies(I)), Len(ExtraireNom) - 1))
               Exit Function
            End If
        Next I
     
    End Function
    Pièce jointe 584094

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Par défaut
    Super !!

    Ca marche parfaitement, merci !!

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Par défaut
    Bonjour Eric,

    J'ai encore un petit soucis avec ce fichier..

    Par moment j'ai "ROUTE DE LA VALLEE" mais du coup avec les fonctions, ça n'arrive pas à extraire correctement "ROUTE" puis mettre "DE LA VALLEE". Avez-vous la solution ?

    Merci beaucoup!

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cha33 Voir le message
    Bonjour,

    Regardez si en changeant simplement l'ordre des voies dans la matrice, cela ne règle pas le problème, comme ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Function ExtraireVoie(ByVal Adresse As String) As String
     
    Dim I As Integer
    Dim MesVoies As Variant
     
        MesVoies = Array("route", "allée", "allee", "avenue", "chemin", "lotissement", "rue", "voie")
     
        For I = LBound(MesVoies) To UBound(MesVoies)
            If InStr(1, LCase(Adresse), MesVoies(I), vbTextCompare) > 0 Then
               ExtraireVoie = MesVoies(I)
               Exit Function
            End If
        Next I
     
    End Function

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 7
    Par défaut
    C'est bon ! Je ne pensais pas que l'ordre avait autant d'importance.

    Merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment lire un ensemble de cellule sous Excel
    Par bandit boy dans le forum C++Builder
    Réponses: 15
    Dernier message: 25/04/2008, 08h17
  2. Remplissage automatique d'un ensemble de cellules
    Par LittleDev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/03/2008, 17h50
  3. Choisir un ensemble de cellule dans une boucle
    Par Garlim dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/05/2007, 15h02
  4. [VBA-E]définir l'ensemble des cellules d'une feuille?
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 02/03/2006, 08h46
  5. [Excel] Gestion d'un ensemble de cellules
    Par timsah dans le forum C++Builder
    Réponses: 6
    Dernier message: 14/11/2005, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo