|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 70 ![]() |
Bonjour à tous,
J'ai à faire un traitement sur une chaîne de caractères que j'ai choisi de placer dans une cellule de tableau. Dans d'autres cellules, j'ai placé 4 paramètres qui ont été préalablement saisis et qui me servent à traiter la chaîne. J'ai utilisé des signets que j'ai définis en sélectionnant la cellule pour chacun d'eux. Tout fonctionne mais si je modifie le tableau, les signets ne correspondent plus (il gardent leur position ligne, colonne dans le tableau). Ma question : existe-t-il un moyen de "nommer" une cellule de façon fixe (comme dans EXCEL) ou faut-il utiliser autre chose ? Ci-joint, le début de mon code. A noter que la méthode que j'ai utilisée n'est peut-être pas la meilleure car en VBA EXCEL je me débrouille mais pour Word je n'ai pas encore fait grand chose. J'ai tourné dans l'aide mais je n'ai rien vu et dans les sujets évoqués ici non plus. Merci d'avance (ne perdez pas trop votre temps, mon problème n'a rien de professionnel!) Cordialement Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
On ne peut pas nommer des cellules en Word.
Petite remarque : pour un signet, on ne se déplace pas. Code :
ActiveDocument.Bookmarks(1).range.Text = "MonTexte" Si tu définis une colonne avec des données précises, tu peux toujours faire une comparaison, et lorsque tu trouves la bonne donnée, c'est la bonne ligne. Code :
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 70 ![]() |
Bonjour,
Merci pour cette réponse rapide. Je n'ai pas tout compris à la lecture mais cela va me permettre de faire des essais et d'aller chercher d'autres points dans l'aide. Je reviendrai ensuite. Cordialement |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
Si je détaille un peu plus.
Pour accéder à une ligne de ma table. Je compare la valeur de ma première cellule à une valeur que je connais X par exemple. Je fais une boucle sur les lignes, mais j'adresse ces lignes par leur position dans la table. Cell(i,1) : j'utilise la cellule de la ligne i et de la colonne 1. Si cette cellule vaut X, je suis sur la bonne ligne, j'ai donc accès à mes autre cellules par Cell(i , 2); Cell(i,3) et ainsi de suite pour mes autres cellules dans la lignes. La raison de la fonction left est la suivante : si tu mesures la longueur de chaîne d'un test contenu dans une cellule, tu auras toujours 2 caractères en trop. Ces caractères sont un retour à la ligne vbCrLf et une marque de fin de cellule. Pour faire une comparaison valable, je dois les enlever.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 70 ![]() |
D'accord, cela veut dire que pour un tableau défini, en sachant quel est le contenu de l'une de cellules (un titre par exemple), je peux trouver le contenu des autres cellules.
Le problème est que si demain quelqu'un ajoute une cellule intercalée entre les autres ou bien modifie le titre ou la position de ma cellule de référence, cela ne fonctionne plus, il faut reprendre tout le code. C'est bien cela ? Et il n'y a pas de solution ? Cordialement |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
c'est bien ça.
La seule solution, qui ne semble pas te séduire, ce sont les signets sur une cellule. Je viens d'essayer, et chez moi, si je mets un signet sur une cellule, il se déplace avec la cellule. Il y a aussi les champs de formulaire. Le tout est de connaître les tenants et les aboutissants.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 70 ![]() |
Ce n'est pas que les signets ne me plaisent pas mais si je rajoute des colonnes dans mon tableau actuel, les signets ne se déplacent pas avec la cellule, c'est pour cela que j'ai mis un message, parce que cela me paraissait bizarre. Je pense qu'il doit y avoir un problème dans mon fichier car avec un nouveau fichier j'ai fait un tableau et là, cela à l'air de suivre...comme chez toi.
J'avais même essayé .Bookmark(n), mais pareil, les signets changeaient de N° si je modifiais les cellules. Comme je commence en VBA WORD, j'ai pensé que cela venait de moi... Je vais reprendre un nouveau fichier, copier ma macro et voir si le défaut disparaît ! Encore merci et à bientôt Cordialement |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
Reviens nous voir quand tu veux !
Perso, les signets je les nommes S01, S02, S03 c'est plus rapide, je n'utilise un nom autre que lorsque je n'ai que quelques signets et que je dois retrouver rapidement.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 70 ![]() |
J'ai trouvé d'où vient ce problème mais je ne sais pas si c'est un bogue ou non.
Si dans le tableau, je définis le signet comme étant la position du curseur, pas de problème, je peux modifier le nombre de lignes de colonnes : le signet désigne toujours la même place (ce qui est sympa....quand même... ).Si dans ce même tableau, je définis le signet en sélectionnant la cellule (pour pouvoir récupérer directement son contenu par VBA), le signet ne suit pas la cellule mais garde la position ligne/colonne qu'il avait dans le tableau lorsqu'il a été défini. Je ne sais pas si cela a une raison ou si c'est une farce de Bill mais ça me laisse perplexe. Je pense que je vais traiter ça avec des boîtes de dialogue. Si ça se gère à peu près comme avec EXCEL je devrais m'en sortir! Hors sujet : sais-tu si une chaîne contenue dans une cellule de tableau a une limite de longueur particulière ou si c'est la même limite que les autres (théoriquement 2 milliards de caractères). Je n'ai rien trouvé dans l'aide. Cordialement |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
Tu comptes mettre 2 milliards de caractères ??
Les limites sont loin, très loin.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 70 ![]() |
Non, c'est pour quelqu'un qui voudrait, pour l'instant, traiter un livre de 400 pages, cela fera beaucoup moins que 2 milliards de caractères! De toutes façons, si c'est trop, il faudra le traiter en plusieurs fois. Je sais qu'il a essayé la petite application d'essai que je lui ai faite avec 120 pages sans problème.
Mes précédentes questions ont pour objet de me permettre de tout paramétrer pour pouvoir faire ensuite plus facilement des modifications car, comme souvent, les gens ne définissent pas le problème et demandent des modifs au fur et à mesure de l'arrivée de leurs idées! Je pense que je vais passer en boîte de dialogue mais il faut que je voie comment mettre en mémoire les paramètres entrés, pour les remettre dans la boîte à la session suivante (dans EXCEL, je les mets dans la feuille) là ça m'ennuie un peu de les mettre dans un tableau car il me semble que l'on ne peut pas protéger des parties de document... Enfin, je vais voir... Cordialement Bonne fin de soirée. |
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
Pour un document volumineux, il existe des solutions simples.
La première est de travailler en petite parties, comme des chapitres. Soit 1 chapitre par fichier. Pour tout réunir, créer un nouveau fichier par exemple global, passer en mode plan. Au niveau de document maître, ajouter des sous documents. Le tour est joué.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#13 |
|
Futur Membre du Club
![]() Inscription : décembre 2007 Messages : 70 ![]() |
Merci pour ces renseignements
A bientôt |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com