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 :

Ajouter des caractères à une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut Ajouter des caractères à une cellule
    Bonjour,

    L'intitulé parait assez idiot vu comme cela, sauf que je ne trouve pas ma réponse en fouillant sur le net.

    En fait, j'ai une cellule de référence (cells(22,3)) dans laquelle j'affiche un rapport au fur et à mesure de mes calculs (avec une fonction AjouterRapport qui prend en argument la chaine de caractère à ajouter, un booléen pour savoir si on ajoute en gras ou non, en italic ou non, et de quelle couleur).

    Mon soucis est donc de rajouter au fur et à mesure du texte dans cette cellule sans modifier la mise en forme de ce qui est déjà écrit.

    Ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(22,3).value=cells(22,3).value+ChaineAAjouter
    ne fonctionne évidement pas, car il ne garde pas la mise en forme

    et ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(22, 3).Value = Cells(22, 3).Characters(1,fin).Text+ChaineAAjouter
    ne fonctionne pas non plus au bout d'un certain nombre de caractères (c'est limité à 255 ??)

    Merci d'avance pour vos solutions !

  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
    utilise les balise code plutot que la couleur (pour savoir comment regarde la fin du premier poste du forum)

    Sinon ce que tu veux faire s'appelle de la concaténation (orthographe a vérifier)
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(22,3).value=cells(22,3).value & ChaineAAjouter

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    En général, pour concaténer, on fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(22,3).value = Cells(22,3).value & "ChaineAAjouter"
    Le & te sauvera

    Après, tu testes pour moi pour la mise en forme pour voir si ça marche ou pas car j'en ai aucune idée. On trouvera une solution à ce moment. Et pour la taille, teste aussi pour moi vu que je n'ai aucune idée de la limitation du nombre de caractères par cellule.

    A plus tard !

    EDIT : Krovax, on se le fait ce pull ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Ok, à question simple réponse simple, je viens de comprendre la différence entre le + et le &, subtilité qui m'avait échappé...

    Merci beaucoup !
    PS : bon, mon code ne marche pas quand même, mais au moins il ne reset pas à chaque fois la mise en page, c'est toujours ça. Si j'y arrive pas, je reviens vers vous

    Bon, du coup, je comprend pas pourquoi mon code ne marche pas.

    Le voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub AddRapport(str, Optional gras = False, Optional couleur = 0)
        debut = Len(Cells(22, 3).Value)
        Cells(22, 3).Value = Cells(22, 3).Value  & str
        With Cells(22, 3).Characters(Start:=debut, Length:=Len(str))
            .Font.Bold = gras
            .Font.ColorIndex = couleur
        End With
    End Sub
    Une idée ?

    PS : j'enlève le tag résolu, sinon personne va me répondre, c'est ca ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Tu dis que ton code ne marche pas. Y'a-t-il une erreur et, si Oui, où est-elle ?

    Sinon, peut-être qu'il ne fait pas ce que tu veux. Que veux-tu faire exactement ?

    Perso,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub AddRapport()
        debut = Len(Cells(1, 1).Value)
        Cells(1, 1).Value = Cells(1, 1).Value & "TEST"
        With Cells(1, 1).Characters(Start:=debut, Length:=Len("TEST"))
            .Font.Bold = False
            .Font.ColorIndex = 0
        End With
    End Sub
    marche chez moi. Après, peut-être pas correctement mais vu que je ne sais pas ce que tu cherches à faire...

  6. #6
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Sans avoir testé, il me semble bien que l'on soit limité à 255 caractères.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    En fait, j'aimerais que quand je tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AddRapport("Bonjour,")
    AddRapport(chr(10)+"Je suis une quiche en info",true)
    AddRapport(chr(10)+"Je fais ce que je peux")
    Ca affiche :

    Bonjour,
    Je suis une quiche en info
    Je fais ce que je peux

  8. #8
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    bonjour le forum,

    Pour mettre en gras ce n'est pas :

    mais :


    J'ai testé l code fonctionne.

Discussions similaires

  1. ajouter des espaces à une chaine de caractères
    Par tricette dans le forum Shell et commandes POSIX
    Réponses: 8
    Dernier message: 28/09/2012, 13h09
  2. Ajouter des caractères à une chaine
    Par bestcasaoui dans le forum Langage
    Réponses: 1
    Dernier message: 28/03/2012, 13h52
  3. Ajouter des caractères au début d'une variable
    Par Roud9 dans le forum Linux
    Réponses: 5
    Dernier message: 26/02/2012, 19h14
  4. Ajouter des caractéres dans une textbox
    Par l3xki dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/02/2008, 14h18
  5. [Débutant][JSP] Ajout des caractères à une String...
    Par Henkyl dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 04/03/2004, 16h30

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