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 :

Caractères spéciaux dans une chaîne


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut Caractères spéciaux dans une chaîne
    Bonjour,

    Comment ajouter des caractères spéciaux dans une chaîne ?

    En l'occurence j'aimerai ajouter un retour à la ligne

    Merci

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Machaine = Machaine & vbNewLine
    Cordialement,

    Tirex28/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Merci, je viens d'essayer,

    Le problème c'est qu'après, quand j'affecte ma chaîne à une cellule il me met automatiquement l'option "Revenir à la ligne automatiquement" ce qui fait que ma chaine ne viens pas à la ligne uniquement à la position que j'ai choisi mon ajustement de longueur de colonne n'est plus bon

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    Pour rétablir le format de la cellule:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.WrapText = False
    Cordialement,

    Tirex28/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Si je met ca il me supprime également le retour à la ligne que j'ai mis.

    Je trouve pas le moyen d'avoir un retour à la ligne à l'endroit ou je le désire

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    essaye avec...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MyMacro()
    Dim a$
        a$ = "Essais pour ligne" & vbCrLf
        a$ = a$ & "Essais des deux genres de largeur" & vbCrLf
        a$ = a$ & "Ligne 3" & vbCrLf
        a$ = a$ & "Petit"
        Cells(1, 1) = a$
    End Sub
    Remarque: la largeur colonne doit être au moins égale à la plus longue ligne.
    A+

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Justement je veux pouvoir ajuster ma largeur de colonne automatiquement sur la plus longue des ligne.

    En faisant ton exemple, il me coche "Retour à la ligne automatique" et j'obtiens :

    Essais pour
    ligne
    Essais des deux
    genres
    de largeur
    Ligne 3
    Petit

    Et quand je clique sur l'ajustement automatique de la colonne, rien ne se passe

    Si je décoche "Retour à la ligne automatique" puis ajustement automatique j'ai tout sur une ligne

    Je ne connais pas d'avance la largeur de mes données qui proviennent d'un fichier

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Si j'ai bien compris, tu veux le beurre et l'argent du beurre...
    Avant d'insérer la variable, calculer la longueur de la plus grande ligne et ajuter la largeur de la colonne.

    Bon, ont va te donner une piste pour avoir également l'argent...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub MyMacro()
    Dim T, L As Integer, LB As Integer
    Dim Txt As String
        T = Array("Essais pour ligne", "Essais des deux genres de largeur", _
        "Ligne 3", "Petit")
        For i = 0 To 3
            LB = Len(T(i))
            If LB > L Then L = LB
            Txt = Txt & T(i) & vbCrLf
        Next i
        Columns("A:A").ColumnWidth = L
        Cells(1, 1) = Txt
    End Sub
    A+

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Merci de ton aide mais je comprend pas trop :

    Tu utilise avec un nombre de caractère alors que l'unité est un nombre de point, de plus la police est proportionnelle et chaque caractère n'as pas la même longueur.

    Voici un exemple (voir les fichier en pièce jointe)

    Je part d'une feuille vide et j'affecte un libellé dans une cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(1).Cells(1, 1) = "Date de l'anomalie"
    J'ai la situation "Etape_1"

    J'ajuste la largeur de colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(1).Columns(1).AutoFit
    J'obtiens la situation "Etape 2"

    J'ajoute le retour à la ligne et "(Date)" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(1).Cells(1, 1) = Worksheets(1).Cells(1, 1).Value & vbNewLine & "(DATE)"
    J'obtiens la situation "Etape 3"

    L'option "Retourner à la ligne automatiquement" s'est coché par la dernière action et j'ai un retour à la ligne supplémentaire sur le premier contenu (avant l'ajout) qui tenais pourtant dans la largeur puisque c'étais ajusté.

    Je cherche en fait à obtenir la situation "Etape_4" que j'ai obtenu à la main en partant de la situation Etape_2, j'ai fait Alt+Entrée puis j'ai ajouté "(DATE)"

    Remarque, dans la situation Etape_4 que j'ai obtenu par Alt+Entrée, il n'y à pas de carré qui représente le retour à la ligne, contrairement à Etape_3

    Je demande pas l'argent du beurre, juste la crémière
    Images attachées Images attachées     

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Arf, la solution était toute bète , en fait j'ai pas besoin de caractère spéciaux, je me suis pris la tête pour rien

    Je remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Worksheets(1).Cells(1, 1) = "Date de l'anomalie"
    Worksheets(1).Columns(1).AutoFit
    Worksheets(1).Cells(1, 1) = Worksheets(1).Cells(1, 1).Value & vbNewLine & "(DATE)"
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Worksheets(1).Cells(1, 1) = "Date de l'anomalie"
    Worksheets(1).Columns(1).AutoFit
    Worksheets(1).Cells(1, 1) = Worksheets(1).Cells(1, 1).Value & " (DATE)"
    Worksheets(1).Cells(1, 1).WrapText = True
    Et ca marche impécable

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

Discussions similaires

  1. Caractères spéciaux dans une chaîne
    Par melleb dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 18/04/2013, 12h12
  2. Réponses: 2
    Dernier message: 13/06/2008, 10h21
  3. [SQL] Problème d'affichage de caractère spéciaux dans une variable chaîne
    Par Kryptonaute dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/08/2006, 08h40
  4. Caractères spéciaux dans une boite de dialogue
    Par Rafiki dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 09/03/2006, 14h05
  5. Réponses: 2
    Dernier message: 15/10/2005, 23h29

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