[résolu]Problème format cellule en fonction du contenu

Al capone

XLDnaute Junior
Bonjour à tous,

Dans un Userform j'ai mis en place un Textbox "Observations" ou la personne peut saisir des informations + ou - utiles.
Tout se passe bien dans la Userform, le retour à la ligne se fait bien, etc. ....

Le problème vient lorsque j'inscris celà dans la feuille excel. Ci-dessous mon petit bout de code :

Code:
ActiveSheet.Cells(LigneVide, 17) = obs.Text
ActiveSheet.Cells(LigneVide, 17).WrapText = True
With Rows(LigneVide)
         .EntireRow.AutoFit
          If .RowHeight < 24 Then .RowHeight = 24
End With
Il arrive fréquemment que dans cette colonne observation, on retrouve du texte avec des chiffres, des virgules, parenthèses, signes d'opérations, etc ....
Et c'est là qu'Excel en fonction de la fin, du début, doit essayé d'interpréter certains caractères commes des débuts de formules, d'opérations, etc ...... Ce qui a pour incidence par exemple que l'ajustement automatique de la ligne ne se fasse pas correctement car il ne considère pas tout comme du texte.

Pour pallier temporairement à celà ,j' intègre la fameuse apostrophe en début et fin :

Code:
ActiveSheet.Cells(LigneVide, 17) = "'" &obs.Text & "'"
        ActiveSheet.Cells(LigneVide, 17).WrapText = True
            With Rows(LigneVide)
            .EntireRow.AutoFit
            If .RowHeight < 24 Then .RowHeight = 24
            End With

N'existe t'il pas un moyen plus propre pour faire la même chose ? Car en fonction du premier caractère et du dernier, apparait ou pas cette apostrophe. Et si elle apparait et que je rappelle cette cellule via mon userform pour faire une modif, si je pense pas à l'enlever, ben j'en aurais un deuxième, etc........

MErci
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Problème format cellule en fonction du contenu

Bonjour,

peut être en interdisant la saisie de certains caractères spéciaux, l'utilisateur ne pourra pas les "taper" :
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not InStr("""-+/*><@()°'", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

bonne journée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Problème format cellule en fonction du contenu

Re,

pour contrôler uniquement le 1er caractère, à noter que tu peux modifier les caractères "interdits" :

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If TextBox1.SelStart = 0 Then If Not InStr("""-+/*><@()°'", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
 

Al capone

XLDnaute Junior
Re : Problème format cellule en fonction du contenu

Salut

Est ce que ce genre de problème dépend uniquement du premier caractère ou aussi du dernier ?

Y a t il un moyen de faire en sorte que si le 1er caractère saisi est un caractère "interdit" alor de rajoute au debut l apostrophe automatiquement
Et la même chose pour le dernier

Merci pour ton aide
 

Pierrot93

XLDnaute Barbatruc
Re : Problème format cellule en fonction du contenu

Re,

regarde ceci :
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If TextBox1.SelStart = 0 Then If Not InStr("""-+=/*><@()°", Chr(KeyAscii)) _
        = 0 Then TextBox1 = "'"
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Len(TextBox1) > 1 Then If InStr("""-+=/*><@()°", Right(TextBox1, 1)) _
        > 0 Then TextBox1 = TextBox1 & "'"
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Problème format cellule en fonction du contenu

Re,

tu peux peut être aussi rajouter ceci :
Code:
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With TextBox1
    If .SelLength > 1 Then .SelStart = Len(.Text)
End With
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Problème format cellule en fonction du contenu

Re,

pour éviter la selection multiple avec la souris, on peut également procéder ainsi :
Code:
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With TextBox1
    'If .SelLength > 1 Then .SelStart = Len(.Text)
    If .SelLength > 1 Then .Value = ""
End With
End Sub

couplé avec ceci pour éviter une selection multiple avec le clavier :
Code:
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
With TextBox1
    If .SelLength > 1 Then .Value = ""
End With
End Sub
 

Al capone

XLDnaute Junior
Re : Problème format cellule en fonction du contenu

Bon j'ai testé et cela ne change rien . En fait je crois qu'il y a vraiment un problème avec excell.
J'ai testé sur deux pc avec la même version d'excel et sur un il m'ajuste automatiquement et sur l'autre pas .....
J'arrive pas a trouver quel paramètre excell me fout la merde ....

Par exemple le texte saisi peut être :

2 boites a rajouter : 375-2 + 4545-5 a contrôler avant

Sur un pc tout baigne. Sur un autre il m'ajuste la hauteur mais que pour les deux premières lignes et pas sur tout ce qui est saisi .....
 

Al capone

XLDnaute Junior
Re : Problème format cellule en fonction du contenu

Resalut,

Je crois avoir identifié le problème et j espère que tu pourras m'aider ( en espérant que c'est cela)
Dans ma textbox , j autorise le retour a la ligne de telle maniere a ce que je puisse lire tout mon commentaire.
Dans mon script Vba , pour la cellule de destination j ai rajouté True pour le wraptext .
Puis je fais l ajustement automatique de ma ligne .

J ai l impression que lorsque dans ma textbox le retour a la ligne se fait et qu'il n y a qu un mot sur le deuxième , dans excel , l ajustement se fait que jusqu au dernier mot de la ligne du textbox et ne tient pas compte qu il y a encore un mot.
Malgré que si j étire manuellement ma ligne , le dernier mot y est bien mais excell n en tient pas compte lorsqu il ajuste la hauteur de ligne ......
 

Pierrot93

XLDnaute Barbatruc
Re : Problème format cellule en fonction du contenu

Re,

j'avais traité ici uniquement le contrôle de saisie du textbox sur le 1er et sur le dernier caractère.... mets peut être un tout petit fichier représentant uniquement le problème posé avec un exemple de saisie....

bonne soirée
@+
 

Al capone

XLDnaute Junior
Re : Problème format cellule en fonction du contenu

Ok je te posterais l exemple avec le fichier en pièce jointe des que je pourrais car en ce moment je suis pas chez moi .....
C est vraiment embêtant ce truc mais j espère qu on trouvera une solution

Pour l instant j ai activé le retour a la ligne dans la textbox via la touche enter .
Et dans excell apparaît un symbole : un rectangle avec dedans un genre "d'oreille"....

Mais j espère vraiment qu on arrivera a résoudre ce tracas et que tout se fasse normalement et simplement sans devoir magouiller comme je viens de le faire temporairement . A très bientôt ...
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin