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 :

VBA - Equivalent Wraptext pour saut de cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Par défaut VBA - Equivalent Wraptext pour saut de cellule
    Bonjour à tous,

    Pour accélérer la saisie dans un tableau excel 2007, je voudrais que lorsque du texte dépasse la longueur de la cellule, l'excédent soit automatiquement "déversé" sur la ligne suivante.

    Je ne veux pas utiliser le retour à la ligne automatique qui va générer des hauteurs de ligne très différentes.

    J'arrive à faire ce que je veux dans une procédure Selectionchange en comptant le nombre de caractères et en utilisant une fonction replace.
    Mais ça coupe les mots n'importe où...

    En fait ce que je cherche c'est l'équivalent WrapText avec un retour à la cellule suivante automatique.
    Si qqu'un a une idée ?
    Merci !

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Très difficile du fait que les caractères n'ont pas la même largeur
    ci-joint un petit bâclage à mettre dans l'évènement Change et à tester
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Const Nbmax As Byte = 20
    Dim LeMot As String, LaPart
    Dim i As Integer
    Dim tb
     
    If Target.Count = 1 And Target.Column = 1 Then
          LeMot = Target.Value
          If Len(LeMot) > Nbmax Then
                tb = Split(LeMot, " ")
                LaPart = vbNullString: i = LBound(tb)
                Do While Len(LaPart) < Nbmax And i < UBound(tb)
                      LaPart = LaPart & " " & tb(i)
                      i = i + 1
                Loop
                LeMot = Trim(Mid(LeMot, Len(LaPart) + 1))
                Application.EnableEvents = False
                Target.Value = Trim(LaPart)
                Application.EnableEvents = True
                Target.Offset(1, 0) = LeMot
          End If
    End If
    End Sub

  3. #3
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Pour accélérer la saisie dans un tableau excel 2007, je voudrais que lorsque du texte dépasse la longueur de la cellule, l'excédent soit automatiquement "déversé" sur la ligne suivante.
    Pourrais-tu préciser ton contexte et le but, la démarche me semble très étrange par rapport à la gestion de données sous Excel

    Tu peux mette un snapshot dans ton message si besoin.

    cordialement,

    Didier

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 97
    Par défaut
    Salut Corty

    Moi aussi, j'ai besoin de cette "Spécialité", j'ai donc fait un programme qui tient compte de la taille des lettres.

    Je n'ai pas trop le temps de tout expliquer en détail, mais si tu as des questions je me ferais un plaisir d'y répondre plus tard.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [VBA-E] Saut de cellule non demandé
    Par luudii dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/04/2007, 16h33
  2. [VBA-E] UsedRange pour la recherche de la dernière cellule
    Par kptn_kvrn dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/04/2007, 13h46
  3. [VBA-E]Peut on avoir l'equivalent .controls pour une feuille
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/03/2007, 18h06
  4. [VBA-E] Macro pour copier cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/06/2006, 20h02
  5. [VBA-E] Boucle pour supression des dernieres cellules
    Par amd64 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/05/2006, 16h41

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