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

Excel Discussion :

4 colonnes excel Texte à répartir équitablement


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut 4 colonnes excel Texte à répartir équitablement
    Bonjour,

    Dans le cadre de mon travail, je dois faire une mise en forme texte de 4 colonnes représentant

    Colonne 1 : Nom prénom
    Colonne 2 : Adresse 1
    Colonne 3 : Adresse 2
    Colonne 4 : Adresse 3

    Je ne peux pas aller sur la colonne 5 qui sera le code postal.

    Cela représente plusieurs heures de travail de le faire cellule après cellule même avec le traitement des données par séparateur automatisé. (je dois insérer un point virgule là où je souhaite faire la coupure).
    Au départ je fais un tri en nbcar et corrige uniquement les cellules trop longues. Mais ce travail devient fastidieux du fait que l'on me soumet de plus en plus d'adresse à traiter.

    Le texte de chaque cellule ne doit pas dépasser 32 pixel. Si cela dépasse je dois prendre le dernier mot et le basculer sur la cellule de droite, et ainsi de suite jus-qu’avoir équilibré les 4 colonnes de texte.

    J'ai tenté plusieurs formules (stxt; substitute; concatenate pour séparer) mais ne trouve aucune solution. Je pense à une macro mais malgré les tutos, je n'arrive pas à en construire une qui pourrait faire une découpe précise.

    Si quelqu'un a la solution pour me faciliter ce travail, je lui en serai très reconnaissante.

    J'ai joints un fichier brouillon à mon message afin d'illustrer ce que je dois traiter. Ceci ne représente qu'une partie, il y a parfois jusqu'à plus de 3000 lignes d'adresses.

    Si besoin de questions ou plus de détails, je reste à dispo.

    Merci par avance.

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 903
    Points
    55 903
    Billets dans le blog
    131
    Par défaut
    Salut.

    Quelle est la finalité de ce travail? Comment se présentent les données avant traitement?

    Donne une copie d'écran de données BIDON avec ce que tu as et ce que tu souhaites obtenir. Et n'oublie pas de donner la finalité, car ça m'a l'air fort nébuleux comme affaire
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    car ça m'a l'air fort nébuleux comme affaire

    Et bien plus que nébuleux, dès lors que
    Le texte de chaque cellule ne doit pas dépasser 32 pixel
    alors que la gestion de l'affichage fait par Excel dans les cellules n'est pas "immuable", notamment en matière des "marges" et dépend de facteurs qui échappent à la compréhension totale.
    Ajoutons à cela que les unités graphiques utilisées sont les points et qu'il faudrait en plus (en plus de ce qui est dit dans ma phrase précédente) transposer en points des longueurs graphiques dépendant des polices de caractères et de leurs propriétés.
    Petit rappel : Excel est un tableur.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 903
    Points
    55 903
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par unparia Voir le message
    [...]
    Petit rappel : Excel est un tableur.
    Souvent envie de le mettre en "description du forum"...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je vous remercie pour vos réponses.

    En effet, c'est très nébuleux.

    Excel est un tableur qui peut faire des miracles si on sait s'en servir. Je suis sûr que tout est possible et qu'une solution existe. Quelque chose qui m'échappe et dont je ne trouve pas la solution.

    Ce que je souhaite c'est pouvoir répartir équitablement du textes entre les 4 colonnes.

    Ce qui me bloque c'est que chaque cellule est différente. Je peux avoir une ligne parfaite et sur laquelle aucun changement n'est à faire et une autre où je vais devoir décaler le texte pour équilibrer le tout.

    En pixel, je conçois que ce n'est pas représentatif. Donc disons que chaque cellule doit faire maximum 30 caractères (espace compris) et que le reste doit passer sur la cellule de droite (en mot complet). Sauf qu'à droite la cellule peut être vide ou avec du texte. Il faut donc que la formulation ou que la macro soit capable de transmettre l'ordre de déplacer ou conserver le texte de droite avec un maximum toujours de 30 caractère et ainsi de suite sur chaque colonnes.

    Voici un exemple en pièce jointe comme demandé.

    Si j'y arrive de mon côté, je vous transmettrai mes résultats. Mais pour le moment, je n'ai pas réussi à déplacer ou conserver le texte de droite.

    Merci et bonne fête de fin d'année
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je vais mettre mon petit grain de sel dans ton projet.

    Etant un spécialiste du mailing, je traite des centaines de milliers d'adresses tous les mois, je vais donc essayer de t'aiguiller.

    Je connais ce genre de situation, très rare heureusement.

    Aucun algorithme ne te permettra de manière simple de résoudre ton problème, le seul moyen est de passer par un logiciel de RNVP (il existe des sociétés spécialisées pour cela), et donc un peu de lecture sur le sujet: https://fr.wikipedia.org/wiki/Restru...dation_postale

    Ce genre de traitement à un coût non négligeable.

    La seule chose qui est possible est de jouer sur la longueur en splittant ta chaîne avec l'espace comme séparateur, et en cumulant la longueur des mots pour recréer tes zones.
    Sauf que cette méthode ne te donnera pas à tous les coups une adresse fiable postalement parlant.

    Philippe

  7. #7
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Citation Envoyé par Samsoun8 Voir le message
    Voici un exemple en pièce jointe comme demandé.
    Demandé par qui ???
    Certainement pas Pierre qui a demandé :
    Citation Envoyé par Pierre Fauconnier Voir le message
    Donne une copie d'écran de données BIDON avec ce que tu as et ce que tu souhaites obtenir. Et n'oublie pas de donner la finalité, car ça m'a l'air fort nébuleux comme affaire
    A lire à propos des fichiers joints : http://www.developpez.net/forums/d84...s-discussions/
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour et bonne année à tous.

    Merci pour le rappel du règlement Patrice740 . C'est lu et approuvé

    Nom : Copie écran.JPG
Affichages : 281
Taille : 95,4 Ko

    A Philippe JOCHMANS
    Je vais lire les infos sur le RNVP
    Pour le concatene + split par groupe de mot, c'est une bonne idée, je vais essayer.

    Merci à tous

  9. #9
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Avec un visuel, c'est effectivement plus simple à comprendre, comme l'a très justement dit Philippe :
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Aucun algorithme ne te permettra de manière simple de résoudre ton problème, [...]
    La seule chose qui est possible est de jouer sur la longueur en splittant ta chaîne
    Voici une petite macro à mettre dans le module de la feuille, pour finaliser tes adresses manuellement :
    - Clic droit fait passer le dernier mot dans la cellule de droite
    et à l'inverse,
    - Double Clic ramène le premier mot de la cellule de droite
    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Target.Count = 1 And Target.Column >= 1 And Target.Column <= 3 Then
        Call RamenerUnMotDepuisLaDroite(Target)
        Cancel = True
      End If
    End Sub
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
      If Target.Count = 1 And Target.Column >= 1 And Target.Column <= 3 Then
        Call DeplacerUnMotVersLaDroite(Target)
        Cancel = True
      End If
    End Sub
    Private Sub DeplacerUnMotVersLaDroite(c As Range)
    Dim t As Variant
      t = Split(c.Text, " ")
      If UBound(t) >= 0 Then
        t = t(UBound(t))
        c.Value = Trim(Replace(c.Text, t, ""))
        c.Offset(0, 1).Value = Trim(t & " " & c.Offset(0, 1).Text)
      End If
    End Sub
    Private Sub RamenerUnMotDepuisLaDroite(c As Range)
    Dim t As Variant
      t = Split(c.Offset(0, 1).Text, " ")
      If UBound(t) >= 0 Then
        t = t(0)
        c.Offset(0, 1).Value = Trim(Replace(c.Offset(0, 1).Text, t, ""))
        c.Value = Trim(c.Text & " " & t)
      End If
    End Sub
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

Discussions similaires

  1. Trier un champs texte avec une colonne Excel
    Par Flow56 dans le forum Modélisation
    Réponses: 1
    Dernier message: 27/02/2008, 12h39
  2. largeur colonne excel après export
    Par scully2501 dans le forum Access
    Réponses: 6
    Dernier message: 18/06/2005, 10h52
  3. [VB.NET] [excel] Colonne excel
    Par mikolirto dans le forum Windows Forms
    Réponses: 27
    Dernier message: 05/04/2005, 10h55
  4. [VB.NET] [excel] Pb remplir colonne excel
    Par mikolirto dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/04/2005, 14h55

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