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 :

Sélection de texte à l'intérieur d'une cellule. C'est [PAS] possible.


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Sélection de texte à l'intérieur d'une cellule. C'est [PAS] possible.
    Bonjour à tous !

    J'ai un problème un peu gênant avec Excel : Je traite du texte.
    C'est pas moi qui ai choisi

    Bref. Donc je travail sur le texte à l'intérieur d'une cellule et je cherche à développer une macro qui me permettrait d'aller automatiquement au prochain point (".") contenu dans ce texte, en laissant tout le chemin en surbrillance/selection.

    exemple :

    - Le petit canari est jaune. Pourtant son frère est bleu.

    (Oui, bon, c'est un exemple hein)

    Admettons que mon curseur ("|") soit sur canari :

    - Le petit cana|ri est jaune. Pourtant son frère est bleu.

    Je lance la macro qui va me chercher le point suivant tout en mettant le texte en sélection (en rouge) :

    - Le petit canari est jaune.| Pourtant son frère est bleu.

    Le problème, c'est qu'autant je vois bien comment le faire avec Word, autant je ne sais même pas si c'est possible avec Excel...

    Merci d'avance pour vos réponses

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 60
    Points
    60
    Par défaut
    Perso, je ferais ça en plusieurs étapes... Je n'ai jamais tenté, donc à voir si c'est possible mais :

    * Définir l'endroit du curseur
    * Rechercher la position du prochain point depuis le curseur
    * définir la sélection selon ce schéma : Select(0,nb_caractères). De la même facon qu'on extrait une chaine (position, nb_caracteres)

    Il doit bien y avoir une fonction qui resemble à mon "Select" qui existe... Mais en faite, je ne dois pas t'aider beaucoup là

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2007
    Messages : 61
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Essaie de voir dans l'aide avec la méthode Characters.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Bonjour et merci pour vos réponses

    J'ai regardé ce que je pouvais avoir avec la méthode characters, mais il n'y a pas de propriété de sélection...

    J'accepte la réponse "Heu, non, c'est pas possible", vu que je me débats pour obtenir un début d'idée avec l'enregistreur de macro sans succès depuis ce matin...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juillet 2007
    Messages : 61
    Points : 39
    Points
    39
    Par défaut
    Désolée, de ne pas voir pu t'aider plus, j'ai cherché du côté du focus mais je ne vois vraiment pas, hélas je crois bien qu'on ait atteint les limites de ce que peut faire excel

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    J'ai continué mes recherches sur le net, sans plus de succès

    Je craignais que ce ne soit pas possible.
    Quelque part, c'est bon à savoir aussi, cette limitation

    Merci beaucoup pour votre aide, en tout cas. Je laisse le sujet comme ça deux ou trois jours, au cas où, mais j'ai peu d'espoir

  7. #7
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    Il n'est pas possible de changer la police pour une partie du texte d'une cellule. Tout comme il n'est pas possible de faire une macro qui va chercher et se positionner dans une cellule.

    et de toute facon tu ne peux pas lancer de macro alors que tu es en train de modifer une cellule.

    donc
    "Heu, non, c'est pas possible"
    du moins, comme je ne me dis pas omniscient, je répète ce que j'ai déjà lu.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Okay... Merci

    Bon et bien, [résolu], en quelque sorte...

  9. #9
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    Bon je me corrige moi même.

    Il est en effet possible de changer via macro une partie de la couleur de ton texte, mais il semble bien être impossible de lancer une macro lorsque tu es en train d'editer une cellule.

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

    Si vous n'avez pas abandonné, ajoutez une nouvelle réponse et j'approfondirai l'idée qui m'est venue (ou quelqu'un d'autre le fera avant moi) :

    lorsque vous faites manuellement la modification dont vous parlez après avoir cliqué sur nouvelle macro, on s'aperçoit qu'il suffit de pouvoir affecter la position du curseur dans la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveCell.Characters(Start:=1, Length:=3).Font
    pour Start:= 1 et Length:=3 (1 et 3 étant des exmples)

    Or cela peut se faire pour Start à travers un Textbox dans un Formulaire.

    Donc on crée un module avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Modif()
    UserForm1.Show
    End Sub
    On crée un formulaire avec un Textbox et ce code :

    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
    Private Sub TextBox1_KeyUp(ByVal KeyCode As _
        MSForms.ReturnInteger, ByVal Shift As Integer)
    'la variable "cardeb" va prendre comme valeur la position du curseur
        cardeb = TextBox1.SelStart
     
    End Sub
     
    Private Sub UserForm_Initialize()
        TextBox1.MultiLine = True
        TextBox1.EnterFieldBehavior = _
            fmEnterFieldBehaviorRecallSelection
    'la variable "n1" affecte au Textbox le texte contenu dans la cellule que vous avez sélectionné avant de lancer la macro.
     
        n1 = ActiveCell
    TextBox1.Value = n1
     
    End Sub
    Il reste à trouver la position du "point" qui suit (ce qui est facile) et d'ajouter le code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With ActiveCell.Characters(Start:=cardeb, Length:=carfin).Font
            .Name = "Arial"
            .FontStyle = "Normal"
            .Size = 10
            .ColorIndex = 3
        End With
    Amicalement.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Ah oui, ça c'est pas bête du toutn je n'avais pas pensé aux textbox !

    Votre façon de faire n'est pas exactement ce qu'il me fallait, mais appliqué à un textbox qu'on validerait ensuite pour le mettre dans la cellule en cours, ce serait impeccable

    Je vais creuser l'idée Merci beaucoup !

  12. #12
    Invité
    Invité(e)
    Par défaut Fichier exemple joint
    Bonjour Blackfox,

    Je joins un fichier à titre d'exemple.

    Si vous double-cliquez sur une cellule, n'importe laquelle, le formulaire s'affiche.
    Vous placez le curseur à l'endroit que vous désirez et vous appuyez sur "F8".

    Bien sûr cela suppose que si vous voulez modifier le contenu d'une cellule vous ne le fassiez pas en double-cliquant dans cette cellule mais en la sélectionnant et en faisant la modification dans la barre de formule.

    A vous de voir si cela peut vous faire gagner du temps. Le code est sûrement perfectible et peut-être que d'autres plus spécialistes que moi pourront vous aider à l'améliorer.

    Amicalement.
    Dernière modification par Invité ; 29/07/2008 à 18h40.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup !

    Je regarde tout ça lundi

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous !

    Ce n'est pas exactement ce que je voulais faire, mais rien que l'idée de travailler dans un textbox m'aide énormément à développer ce que je voulais

    Merci beaucoup !

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

Discussions similaires

  1. Texte très long dans une cellule
    Par rpapa dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 01/02/2019, 16h45
  2. Réponses: 0
    Dernier message: 19/11/2014, 19h39
  3. Réponses: 4
    Dernier message: 13/09/2013, 15h04
  4. texte plus large qu'une cellule
    Par sfxElrick dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 04/12/2006, 16h59
  5. [JXL]Récupérer le texte en gras dans une cellule
    Par Kobee1203 dans le forum Documents
    Réponses: 2
    Dernier message: 28/10/2006, 15h27

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