1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : mai 2018
    Messages : 6
    Points : 0
    Points
    0

    Par défaut Script pour scinder les caractères mais les mots sont tronqués

    Bonjour,

    J'utilise le script suivant qui fonctionne plutôt bien (merci au développeur).
    en revanche, les mots sont tronqués dans chaque ligne.
    Quelqu'un pourrait -il m'aider ?
    Merci beaucoup.

    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
    Sub Coupichonner()
    Dim coupe%, tablo, i&, num%, x, s, j%, k%, n&, t(), rest()
    coupe = 30 'longueur à adapter
    tablo = [A1].CurrentRegion.Offset(1).Resize(, 2) 'à adapter
    For i = 1 To UBound(tablo)
      num = 0
      x = tablo(i, 1)
      s = Split(tablo(i, 2), vbLf)
      For j = 0 To UBound(s)
        For k = 1 To Len(s(j)) Step coupe
          n = n + 1: num = num + 1
          ReDim Preserve t(1 To 3, 1 To n)
          t(1, n) = x
          t(2, n) = Mid(s(j), k, coupe)
          t(3, n) = num
    Next k, j, i
    '---transposition---
    ReDim rest(1 To n, 1 To 3)
    For i = 1 To n
      rest(i, 1) = t(1, i)
      rest(i, 2) = t(2, i)
      rest(i, 3) = t(3, i)
    Next i
    '---restitution---
    [A2].Resize(n, 3) = rest
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    12 728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 12 728
    Points : 28 403
    Points
    28 403

    Par défaut

    Bonjour,

    J'utilise le script suivant qui fonctionne plutôt bien (merci au développeur).
    il est sensé faire quoi le script en question ?

    Sans un exemple de ta part, ca nous est bien trop obscur pour considérer que le code est bancal ou parfaitement adapté

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : mai 2018
    Messages : 6
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par Jean-Philippe André Voir le message
    Bonjour,



    il est sensé faire quoi le script en question ?

    Sans un exemple de ta part, ca nous est bien trop obscur pour considérer que le code est bancal ou parfaitement adapté

    cette macro me permet de scinder le contenu d'un cellule d'Excel contenant X caractères en plusieurs lignes avec un nombre de caractères précis par ligne.
    Le problème c'est que le contenu des nouvelles lignes est tronqué sur le dernier mot.
    Il faudrait que la coupure se fasse au dernier mot complet et toujours en respectant une maximum de caractères par lignes.
    J'ai 1500 lignes de texte à revoir car les phrases ne veulent rien dire avec des mots tronqués.Couper en 30 caractères(1).xlsm.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : mai 2018
    Messages : 6
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par maguizzz Voir le message
    cette macro me permet de scinder le contenu d'un cellule d'Excel contenant X caractères en plusieurs lignes avec un nombre de caractères précis par ligne.
    Le problème c'est que le contenu des nouvelles lignes est tronqué sur le dernier mot.
    Il faudrait que la coupure se fasse au dernier mot complet et toujours en respectant une maximum de caractères par lignes.
    J'ai 1500 lignes de texte à revoir car les phrases ne veulent rien dire avec des mots tronqués.Couper en 30 caractères(1).xlsm.
    voici le 2ème fichier expliquant le résultat souhaités (des coupures avec des mots entiers)Couper en 30 caractères avec le résultat attendu.xlsm
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent sénior
    Avatar de dysorthographie
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2012
    Messages
    8 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2012
    Messages : 8 980
    Points : 15 383
    Points
    15 383
    Billets dans le blog
    1

    Par défaut

    Bonsoir,

    For k = 1 To Len(s(j)) Step coupe

    Il y a de forte chance que ta boucle s'arrêtera avant la fin de ta phrase avec un step de 30.

    C'est comme si tu faisais une division entière,donc tu oublie la virgule.

    Il faut faire une boucle de 1 et retaille ton tableau a chaque modulo de coupe

    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
     
     
    For k = 1 To Len(s(j)) 
    Tx=Tx & Mid(s(j), k, 1)
    If k mod coupe =0 tnen
     
          n = n + 1: num = num + 1
          ReDim Preserve t(1 To 3, 1 To n)
          t(1, n) = x
          t(2, n) = tx
          t(3, n) = num
    Tx=""
    End if
    Next k, j, i
    If tx<>"" then 'on regarde si reste!
    n = n + 1: num = num + 1
          ReDim Preserve t(1 To 3, 1 To n)
          t(1, n) = x
          t(2, n) = tx
          t(3, n) = num
    Tx=""
     
    End if
    Il dit non avec la tête
    mais il dit oui avec le coeur
    il dit oui à ce qu’il aime
    il dit non au professeur {Jacques PRÉVERT}

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : mai 2018
    Messages : 6
    Points : 0
    Points
    0

    Par défaut

    Merci pour la précision.
    J'utilise les scripts mais je ne développe pas .
    J'ai essayé de rajouter la boucle dans le script initial mais sans succès.
    Pourriez vous svp me donner le script complet après correction.
    Merci beaucoup!!!!

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : mai 2018
    Messages : 6
    Points : 0
    Points
    0

    Par défaut

    Le script est modifié. les mots sont toujours tronqués.Couper en 30 suppression coupe.xlsm

  8. #8
    Expert éminent sénior
    Avatar de dysorthographie
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2012
    Messages
    8 980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2012
    Messages : 8 980
    Points : 15 383
    Points
    15 383
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par maguizzz Voir le message
    Merci pour la précision.
    J'utilise les scripts mais je ne développe pas .
    Même chose pour moi. Mon développeur locos a été ce couché! On trouve plus de petit personnel.
    Il dit non avec la tête
    mais il dit oui avec le coeur
    il dit oui à ce qu’il aime
    il dit non au professeur {Jacques PRÉVERT}

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    février 2007
    Messages
    1 487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 1 487
    Points : 2 352
    Points
    2 352

    Par défaut

    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pos = InStrRev(s(j), " ", coupe)
    te donne la position du 1er espace avant coupe.
    Sert-toi de Left() pour récupérer la 1ère partie, et tu continues avec le reste (la partie retournée par Right()).

    Ta restitution après toutes les boucles est mal placée.
    Tu as Application.Transpose() pour transposer un tableau.
    eric

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    mai 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : mai 2018
    Messages : 6
    Points : 0
    Points
    0

    Par défaut

    Merci Eric pour ta réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pos = InStrRev(s(j), " ", coupe)
    Ce code, je le mets à quel niveau du script initial ?

    Merci par avance

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    février 2007
    Messages
    1 487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 1 487
    Points : 2 352
    Points
    2 352

    Par défaut

    tu es sérieux là ?
    Quand tu dois découper la phrase, ça te dis où la couper.

Discussions similaires

  1. Pourquoi est-ce que les mots sont coupés ?
    Par christophe.vx dans le forum Android
    Réponses: 0
    Dernier message: 28/11/2015, 00h26
  2. Post d'un formulaire mais les objets sont tous null
    Par jean.dufour dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/07/2015, 17h04
  3. Réponses: 2
    Dernier message: 09/06/2010, 22h42
  4. Réponses: 1
    Dernier message: 07/11/2008, 15h24
  5. Mais pourquoi ... Avec IE les tableaux sont décentrés ?
    Par nebule dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/11/2004, 10h04

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