vba excel : probleme de textbox - VB/VBA/VBS - Programmation
Marsh Posté le 23-11-2005 à 21:02:34
Salut,
Je crois avoir en partit compris ton problème :
Tu peux pour coller ton text avec un clic droit insérer ceci dans ThisWorkbook:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Paste
End Sub
Tu peux aussi insérer le formule "ActiveSheet.Paste" dans un raccourci clavier ou fixer une condition dans ton textbox qui dit que si les lettre "XXX" son taper, il copie le text.
Pour le (C' est ça ?), je peux pas trop proposer quelque chose car je ne sais pas répartir mes donnée sur trois lignes dans un textBox. Mais, si tu donnait le contenu de ton texbox, ça pourait peut être aider.
Marsh Posté le 23-11-2005 à 21:18:24
Le code qui apparait sous la forme d'un carré dans ton cas est un code vbLf, autrement dit un chr(10). Il est possible de remplacer les chr(10) par des espaces avec l'instruction Replace(le_texte, chr(10), " " ).
Marsh Posté le 25-11-2005 à 00:59:36
Désolé pour ma réponse tardive faute de temps
je vous remercie d'abord pour avoir chercher une solution au problème
Je voulais coller dans un textbox (avec un clic droit si possible) des informations que je récupère par un clic droit - copier dans le forum par exemple. Où sont stockées les données que tu copie par un clic droit ????
Je pense que le début doit être :
Private Sub TextBox_BeforeRightClick(???)
Pour le contenu de mes textbox c'est le(s) nom(s) et le(s) prénom(s) d'artiste(s). Le nom, en majuscules, en premier, et le ou les prénoms en second en minuscules (sauf la première lettre bien sûr !!!) ensuite je fais ctrl+entrée pour éventuellement entrer un autre nom dans le meme textbox.
Ou sinon faudrait remplacé le carré directement dans la cellule ???
Alors là ça voudrait dire qui faut que je fasse une boucle du genre
For each cellule in selection
Replace(???,chr(10)," " ) 'l'espace entre les guillemets est obligatoire ???
Next
mais ma sélection est une plage qui s'allonge continuellement vers le bas ...
Je vais réfléchir à la dernière question ça m'a l'air simple mais de l'aide n'est pas malvenue.
Merci. Bonne Nuit.
Marsh Posté le 25-11-2005 à 10:18:16
Les informations qui sont copiées ou coupées (par un clic droit faisant apparaitre un menu contextuel et un clic gauche sur l'option "copier" ou "coller" de ce menu, ou bien par l'utilisation des combinaisaisons de touches ctrl+c ou ctrl+x ou ctrlj+insert) sont affectées au presse-papier de Windows. Le presse-papier enregistre l'adresse mémoire de ces données, et permet à n'importe quelle application windows de demander l'adresse où se trouvent ces données pour les récupérer par une action de collage.
L'instruction Replace est une instruction VBA, mais contrairement à ce que je croyais, il semble que tu ne fasses pas de programmation VBA, au moins pas pour ce problème. Mais sans programmation, je ne vois pas comment enlever les petits carrés, autrement qu'avec les touches du clavier "suprr" ou "del".
Avec de la programmation VB, il faut récupérer le texte contenant les carrés dans une variable de type chaine. Puis modifier le contenu de cette variable avec l'instruction Replace, ou Left , Mid, et Right, ou autres. Puis lorsque les petits carrés ont ainsi été supprimés ou remplacés par des espaces (comme je le croyais (c'est pour cela que j'avais suggéré le remplacement par " " au lieu de "" ), mais en fait tu souhaites peut-être les supprimer entièrement) ou remplacés par autres choses, alors il faut insérer cette chaine sans petit carré dans une cellule. Bien sûr cela nécessite les connaissances de base de VBA pour mettre le contenu d'une cellule dans une variable et pour mettre dans une cellule le contenu d'une variable.
De plus, il est possible que les petits carrés ne soient pas des caractère vbLf (chr(10)) comme je le pensais, mais peut-être autre chose. Pour le savoir, il faudrait examiner le code Ascii des caractères constituant le texte. Dans un cas que j'avais traité, il s'agissait de vbLf, mais là le problème est peut-être différent cette fois-ci.
Marsh Posté le 25-11-2005 à 11:08:31
Salut McKoy,
Jai trouvé un petit truc qui va peut être t'aider.
Pour ton copier coller dans le textbox, j'ai trouvé ceci :
Code :
|
Ca ne t'ouvre pas de menu déroulant en cliquant droit, mais quand tu es dans le textbox en faisant F4 ça te colle le contenu du presse papier. Il y a surement mieux, mais c'est une piste.
Pour ton histoire de valeur dans la textbox, tu as dèja le multiline = true, place aussi le enterkeybehavior= true dans les proprièté du textbox. comme ça tu ne fais que "entrée" pour aller à la ligne. Même si tu as toujours le carré (dû à un CHr(13)) quand tu envois dans une cellule. avec ça, tu supprime ce caractère:
Code :
|
Pour la mise en forme, j'ai éventuellement réussi à faire en sorte que le premier mot soit en majuscule, ensuite après un espace la première lettre en majuscule le reste en minuscule et tous les premiers mots de chaque ligne en majuscule :
Code :
|
Hésite pas à demander des infos sur les fonctions. Tu pouuras aussi modifier cette fonction pour la faire passer en boucle sur ta liste déjà saisie
@+
Marsh Posté le 27-11-2005 à 00:29:06
merci a olivthill pour son cours de théorie et a watashi pour son cours de pratique
g réussi à placer le replace range("B1" ).value = (textbox.value,chr(13),"" ) ça marche nickel sans espace entre les 2 guillemets
J'ai oci utiliser la méthode du textbox.paste qui marche bien avec F4 alors je me suis dis pourquoi pas placé un pti sendkeys(F4) ou un truc du genre...
J'avais trop vite eu une idée (ça ne pouvait pas être la bonne ) alors je vais chercher comment coller directement a partir du presse papiers
Mais je n'ai pas oublier l'idée de faire apparaitre um menu contextuel par clic droit et pouvoir coller....
Puis je vais m'attaquer aux majuscules et minuscules après je répondrais dans unn prochain message
merci encore a vous 2 a+
Marsh Posté le 05-04-2006 à 00:17:14
J'avais lacher ce ptit programme et me voila enfin de retour dessus...
Je me lance a l'assaut des majuscules je comprends mais j'aimerais si vous pouviez me décrire comment fonctionne test et select case...???
Marsh Posté le 05-04-2006 à 12:50:56
Avec les commentaires tu ne comprends pas quoi ?
@+
Marsh Posté le 19-11-2005 à 22:20:26
bonsoir
j'ai un textbox dans lequel je rentre des données sur 3 lignes et j'en récupère son contenu dans une cellule mais le ctrl+entrée du textbox fait apparaitre un petit carré dans la cellule.
je suppose qu'il faille supprimer le dernier caractere de chaque ligne mais je ne sais vers où m'orienter... quelqu'un aurait une petite idée ???
Sinon j'ai un autre textbox dans lequel j'aimerais effectuer un clic droit et pouvoir y coller du texte copié.
je suposse encore que ça puisse etre un evenement de la textbox mais lequel ???
merci