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 :

Découper une chaîne de caractère a l’intérieur d’une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Découper une chaîne de caractère a l’intérieur d’une cellule
    Bonjour, et d'avance merci a tous je trouve vraiment ce site génial , et j'espere vraiment que quelqu'un puisse m'aider.

    J’explique, J’ai un fichier adresse a remettre en forme voir exemple ci-dessous.


    AD1 |AD2
    1 RUE DE LA VILLE RES DU BLANC |
    5 RUE DES JARDINS APP 56 IMM 14 |
    41 RTE DE VICQ TRUC MACHIN CHOSE |

    Je voudrais cliquer sur la cellule A2 et mettre mon curseur devant RES puis cliquer sur un bouton pour qu’il coupe tout ce qu’il y a à droite et le colle en B2.
    Pareil pour A3 devant APP et pour A4 devant TRUC.

    Avez-vous une Idée ? Car se sont des fichiers quotidien de 6000 lignes et le couper coller ca devient trés dure.

    Merci beaucoup

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour positionner ton curseur au milieu de la chaine de caractère je ne sais pas faire mais je ne voi pas a quoi cela va servir

    Ensuite pour la manipulation de chaine de caractère sache qu'il faut être extrèmement rigoureu et avoir des critère très précis on peu facilement dire ce qui est a gauche de RUE en A1 a à droite va en B1 et les numéro d'appartement et autre en C1

    Sauf qque tu doit pourvoir trouver des moyen de dire a excel comment reconnaitre les limites
    ET vu les différent exemple tu ne peu compter ni sur le nombre de caractère, ni sur le nombre d'espace (bien que ca fera la première découpe sauf si tu as un 421 c rue de machin,etc...)

    Je te donne un lien vers un tuto et te laisse réfléchir a comment tu veux t'organiser, n'oubli pas excel est plus idiot que nous tous réuni


    Manipuler les chaînes de caractères en VB6 et VBA Excel

    Edit après si tu veux faire du semi automatique (l utilisateur s'occupe de définir quel morceau de la chaine va ou) j'ai une bonne idée

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Si j'ai compris entre les ligne, tu veux pas cliquer mais rendre cela automatique ? vu que tu a 6000 lignes, cliquer sur 6000 lignes ça deviendrait fastidieux, non ?
    Une macro qui ferait cela pour tes 6000 lignes ça t'arrange ?
    A+

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Réponse
    Bonjour,

    Krovax tu as bien compris le problème je ne peux pas me poser ni sur la longeur ni sur un caractere particulier.

    Peut-être que la solution est la mettre a caractere specifique ou je veux découper puis faire une macro, mais je voulais plutot cliquer sur devant RES mettre dans une variable la position excat du curseur sur la chaine de caractere puis lui dire couper coller dans l'autre cellule.

    Merci

    LEFORESTIER : Merci pour ta réponse mais faire une macro pour découper de facon differente a chaque fois je peux me tromper mais ca me semble impossible.
    Car comme je le dis plus haut je ne veux pas découper devant un blanc ou au mçme endroit a chaque fois.

  5. #5
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Une macro qu'il faudrai sans doute adapter pour pouvoir gérer plusieur ligne a la fois pour gagner du temps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    sub init()
    Dim i As Long, k As Integer
    For i = 1 To Range("A65536").End(xlUp).Row
        tableau = Split(Cells(i, 1), " ")
        For k = 0 To UBound(tableau)
            Cells(i, k + 1) = tableau(k)
        Next k
    Next i
    End sub
    Affecte un racourci clavier a cette macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub macro_fusion()
    Dim cel As Range
    Dim text As String
    If Selection.Count = 1 Or Selection.Rows.Count > 1 Then Exit Sub
     
    For Each cel In Selection
    text = text & " " & cel
    Next cel
    Range(Cells(Selection.Row, Selection.Column + 1), Cells(Selection.Row, Selection.Column + Selection.Columns.Count)).Delete xlShiftToLeft
    Cells(Selection.Row, Selection.Column) = text
    End Sub
    Tu lance la première après avoir mis toutes tes adresse dans la première colonne
    Tu sélectionnes les morceau que tu veux fusionner (pour une ligne)
    et tu lance la deuxième avec le racourcie clavier (en espérant que je ne me suis pas planté)

    Après la découpe totalement automatique peut être envisagé si tu sais toutes les possibilité que tu peux renconrtrer :
    exemple la première colonne s'arrête sur RUE, CHEMIN, AV Bde, impasse. tu peux tous les tester
    pour le deuxième si tu as la liste exhaustive des possibilité c'est ausi jouable

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Krovax : grrr ,
    Mais je préférerais que tu nomme tes sub Init (avec un T) ça évite de confondre avec les fichier INI. (c'est pour rire)

  7. #7
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Voila qui est fait chef

    Après s'il y a vraiment 6000ligne par jour, automatiser la tache revient presque a supprimer un emploi, déjà que ce code s'il traite plusieurs ligne a la fois (trois ligne qui se suive ou on fusionne les même colonne par exemple) ca va transformer un temps complet en temps partiel
    (mais d'un point de vu rentabilité ca vau le coup d'y passer une bonne semaine, si tu as un moyen d'être exaustif dans les possibilité c'est jouable)

    En plus je n'y ai pas pensé mais tu peux une fois que le centre est sélectionner fusionner tout ce qui est a droite automatiquement
    Je te laisse essayer d'y réfléchir
    regarde ici pour connaitre la dernière colonne utilisé d'un ligne
    http://www.developpez.net/forums/d45...gnees-feuille/

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut rep
    Bonjour,

    Je vois tu me dis de faire un split et découper mot par mot puis de fusionner oui l'idée était bonne mais le problème c'est que le découpage ne peut être que visuel car je ne peux pas recenser tous les cas possible « crois moi les gens on de l’imagination quand il s’agit d’adresse.
    Voila un exemple parmi tant d’autres :

    App 6 Resid 25 254 Rue de la paix Porte 25

    Voila tu vois je ne peux plus appliquer cette macro, j’insiste mais il y a-t-il une possibilité de récupérer dans une variable l’endroit exact du curseur lorsque je clique devant le P de porte

    Merci.

  9. #9
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Je dirais non pas possible
    Par contre regarde ma proposition, chaque mot dans une cellule ensuite tu regroupe les cellules sélectionner par macro
    Et ca évite d'avoir a positionner le curseur au bon endroit plus facile de choisir une cellule qu'une positon dans une chaine de caractère

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Une possibilité à dévellopper, (je laisserais la suite à Krovax)
    Faire une macro qui boucle sur toutes les lignes
    1°) met le contenu de la cellule dans un TextBox d'un UF.
    2°) attend une sélection
    3°) Couper la sélection. et recopier le reste dans la cellule( Ligne,1)
    4°) copier la sélection dans la cellule (Ligne,2)
    Avec un TextBox c'est possible.
    Bon,.. enfin.. ce n'est qu'une piste.
    A+
    Edit: voir Propriété SetStart, SelLenght

Discussions similaires

  1. Découper une chaîne de caractères
    Par gege2061 dans le forum Langage
    Réponses: 9
    Dernier message: 07/03/2008, 19h59
  2. [Tableaux] Découper une chaîne de caractères
    Par mix_35 dans le forum Langage
    Réponses: 5
    Dernier message: 17/03/2007, 02h06
  3. Découper une chaîne de caractères
    Par The Lord of Nesquik dans le forum C
    Réponses: 5
    Dernier message: 04/02/2007, 00h20
  4. [VBA-E] découper une chaîne de caractère
    Par jagwar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2006, 14h07
  5. Comment découper une chaîne de caractères en VBA
    Par TomPad dans le forum Access
    Réponses: 3
    Dernier message: 23/06/2005, 09h58

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