Barrinou
Messages postés5Date d'inscriptionmardi 3 juillet 2007StatutMembreDernière intervention 4 juillet 2007
-
3 juil. 2007 à 09:05
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011
-
4 juil. 2007 à 22:44
Salut tout le monde.
Voilà, j'aimerais réaliser une macro en vb qui me permettrait de concaténer deux champs textes d'une base de donnée afin de les avoir dans la même cellule. Ces deux champs textes doivent être séparés par un retour à la ligne, et chaque champs doit être précédé d'un texte type "remarque".
J'ai testé pas mal de commande type Chr(13) entre mes champs textes, mais l'ennui c'est que lorsqu'un champ est vide, cette commande m'afficher un petit carré à la place, ce qui est assez génant.
Quelqu'un pourrait-il m'aider svp ? Merci d'avance.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 3 juil. 2007 à 12:20
J'ai testé pas mal de commande type Chr(13)
eh eh, me suis fais avoir aussi comme toi, seul le Chr(10) est connu d'excel. (Ou vbCr, comme le dit Renfield). Bref, c'est l'équivalent de Alt-Entrée, quand tu est en train d'écrire dans une cellule.
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 3 juil. 2007 à 13:22
Environment.Newline <=== ca permet qqsoit l'OS d'avoir le "vrai" carractère donc portable sous unix, macOS, ect ...
pour ce qui est de l'affichage dans une cellule faut regarder si elle accepte le multiligne et suivant les controles utilisé tu peux "ruser" en inserant une textebox dans la cellule avec "Dock.Fill" sans bordure ni ombre ni rien en readonly et avec le multiline = true ou qqchs de similaire
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202172 3 juil. 2007 à 14:24
1 - c'est VbNewline (VB6/VBA)
2 - ce que tu dis est faux dans le cas présent, sous Excel, les sauts de ligne c'est VbLf, VbNewline renverra VbCrLf, et tu verra un petit carré apparraitre dans ta cellule
Barrinou
Messages postés5Date d'inscriptionmardi 3 juillet 2007StatutMembreDernière intervention 4 juillet 2007 3 juil. 2007 à 16:04
Hmm non en fait jvoudrais plutôt faire cette concaténation dans la définition des champs sous access, et non sous excell, ce qui sinon je ferai retaper toute une macro assez longue et qui m'a déjà pris une semaine à taper (jdébute, vous moquez pas :p)
Donc voilà, jvais la refaire en plus détaillé :
J'ai deux champs pour des remarques dans mes tables sur lesquelles je fais mes requêtes. L'ennui déjà, c'est que certaines remarques peuvent être vide (donc pas de texte dans la cellule).
Ce que je voudrais donc, c'est que dans ma cellule, une fois ma requête exportée sous excel, le résultat soit de ce type :
Remarque1 : [contenu de la cellule1]
Remarque2 : [contenu de la cellule2]
Et donc d'une il faut que Remarque1 ou 2 ne s'affiche pas si bien sûr le contenu est vide, mais donc aussi que cette concaténation se fasse sous access et qu'elle soit compatible avec une exportation sous excel.
J'espère que vous pourrez m'aider, j'ai expliqué au plus détaillé mon problème :p
Merci énormément d'avance.
Barrinou
Messages postés5Date d'inscriptionmardi 3 juillet 2007StatutMembreDernière intervention 4 juillet 2007 3 juil. 2007 à 16:39
Bah oué c'est un peu le principe que je cherche comme présentation des données, sauf qu'il faut que les "remarque1 : " et "remarque2 : " ne doivent pas être écrit si la donnée n'est pas présente. Et le second problème est que chr(10) me retourne un joli petit carré quand j'exécute la requête, et il faudrait que ça ne soit pas le cas :)
Barrinou
Messages postés5Date d'inscriptionmardi 3 juillet 2007StatutMembreDernière intervention 4 juillet 2007 4 juil. 2007 à 10:16
Bon, après divers test, la clause WHERE n'étant pas possible, j'ai choisi pour palier au critère d'affichage de "Remarque1" et "Remarque2" si la remarque était remplie de créer deux nouveux champs qui testaient si les remarques étaient remplie et affichaient donc "Remarque1" si la condition était vraie et rien si elle était fausse. La même pour l'autre remarque. Et finallement dans ma troisième colonne j'affiche tout.
1ère champs :
Expr1: (VraiFaux(([probleme1]<>"") Ou ([probleme1] Est Null);"Problèmes constatés : "))
2ème champs :
Expr2: (VraiFaux(([probleme2]<>"") Ou ([probleme2] Est Null);"Autres : "))
Ca résout au moins le premier problème.
Celui du retour à la ligne, quant à lui, persiste après avoir testé vos différentes suggestions.
Un collègue m'a fourni ce lien (http://support.microsoft.com/kb/115576/fr) du support technique Microsoft, mais j'ai un peu de mal à comprendre et savoir si finallement il y a une solution.
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 4 juil. 2007 à 22:44
quote :
1 - c'est VbNewline (VB6/VBA)
2
- ce que tu dis est faux dans le cas présent, sous Excel, les sauts de
ligne c'est VbLf, VbNewline renverra VbCrLf, et tu verra un petit carré
apparraitre dans ta cellule
Environment.Newline existe je me suis juste gourré de topic :p c'est du .net xD encore tte mes excuse pour cette erreur