1 pièce(s) jointe(s)
Print #1 sous forme de tableau
Bonjour,
J'ai une appli qui extrait le contenu d'un tableau XL sous forme de listing .txt au moyen d'une boucle Do...Loop en utilisant "Print #1" . Je voudrais que la sortie se fasse dans un tableau à 2 colonnes avec une nouvelle ligne à chaque boucle Loop, en plaçant le listing complet dans une colonne et un des élément du listing sur lequel trier tout le tableau répété dans la seconde colonne. Le tableau Excel a environ 90 colonnes et selon les cas entre 15 et 180 lignes donc aucun rapport avec la structure du tableau produit par le code. Je ne sais pas quelle(s) commande(s) VBA utiliser pour créer des lignes et des colonnes et je n'ai trouvé ça nulle part. Est-ce que quelqu'un a une idée ? Merci d'avance. Je joins un exemple miniature pour plus de clarté.
Cordialement
touche_a_toutPièce jointe 626810
[XL-2016] Print #1 sous forme de tableau
Bonjour BrunoM45 et tout le monde,
Ma demande était fumeuse, par contre votre réponse est parfaitement claire: un fichier texte ne peut pas, de par sa nature même, avoir de mise en forme, merci de me l'avoir rappelé. Quant au but de tout ça, c'est un peu compliqué. Mes tables XL contiennent les données de centaines d'actes d'état-civil (naissances, mariages, décès), avec dans les colonnes des noms, prénoms, dates, lieux, etc. L'appli dont je parle m'a déjà permis d'extraire de ces feuilles XL des centaines d'actes reconstitués qui servent de "preuves" de ce que contient ma généalogie.
Maintenant, je dois relier chaque événement de chaque individu (naissance, etc.) à l'acte qui le prouve. Pour ce faire, j'ai besoin d'un listing de mes actes pour avoir accès à tous leurs détails. Ce serait beaucoup facile si ces actes étaient classés par ordre alphabétique des individus concernés, comme dans ma pièce jointe. Je pensais à une solution en une passe qui fournirait un fichier contenant les instructions visant à introduire des lignes et des colonnes aux endroits voulus (ainsi qu'une répétition des termes sur lesquels les actes seraient classés dans un second temps) mais ça paraît impossible.
Repartons alors d'un listing au format texte dans lequel Print #1 m'aura permis d'introduire, aux endroits voulus, des caractères spéciaux (p. ex. $, £. ], etc.) que je pourrai remplacer ensuite (cherche et remplace) par les instructions permettant de créer, dans un texte continu, des lignes et des colonnes. Mais quels sont ces instructions; est-ce qu'elles existent au moins ?
J'ai été beaucoup plus long, mais peut-être pas plus clair ! Est-ce que quelqu'un peut m'aider à partir de ça ?
Merci d'avance pour toute piste.
Belle journée.
Cordialement
touche_a_tout
Print #1 sous forme de tableau
Bonjour et merci 78Chris,
Flatté qu'un expert de votre niveau s'intéresse à ma question. Je n'ai pas de raison de principe de ne pas montrer de quoi il s'agit mais le fichier pèse près de 800 Ko, le code compte 3200 lignes et la sortie est paramétrée en fonction de mon arborescence, ce qui rend la chose un peu compliquée. Je peux fournir des échantillons moins lourds comme exemples (un extrait de feuille XL et un extrait de listing par exemple): est-ce que ça suffirait ? J'ai juste besoin d'un peu de temps pour préparer les échantillons. Qu'en pensez-vous ? Sinon je balance le tout en annexe à un post mais je ne me rappelle pas s'il y a une limite au poids des annexes.
Merci d'avance de votre retour.
Cordialement
touche_a_tout
Print #1 sous forme de tableau
Rebonjour 78Chris,
A tout hasard, je joins
- un extrait de feuille XL tout à fait similaire à celles que mon appli utilise.
- un doc word comparant un listing brut (colonne de gauche) et un listing transformé en tableau avec un élément extrait et placé dans une deuxième colonne sur laquelle le tout serait trié. C'est à quoi j'aimerais arriver. Merci de ton attention.
Cordialement
touche_a_tout
2 pièce(s) jointe(s)
Print #1 sous forme de tableau
Bon, j'ai oublié les annexes !
voici Pièce jointe 626842 Pièce jointe 626843
Cordialement
touche_a_tout
Print #1 sous forme de tableau
Print #1 sous forme de tableau
Bonjour 78Chris,
D'abord merci et bravo d'avoir décrypté ma demande un peu fumeuse. Le week-end je n'ai pas accès à mon PC mais à un portable d'emprunt avec Excel 1997-2003. Je n'ai donc pas eu accès à ton code. Je n'avais jamais entendu parle de PowerQuery jusqu'à ce jour !
Dans le listing Word traité, il y a juste un malentendu: dans la colonne de droite la première ligne doit être celle qui commence par le numéro de la source (0 @xxxx SOUR) c'est-à-dire que le tri ne se fait pas sur la première ligne de chaque source mais sur son titre. Je ne voulais pas tarder à te remercier mais je n'aurai accès aux détails que lundi.
Bon dimanche.
touche_a_tout
Print #1 sous forme de tableau
Bonsoir 78Chris et merci,
Je viens de prendre connaissance des annexes à ton post # 10 et suis un peu largué.
Je te remercie de l’énorme travail que tu as produit mais je pensais que ta réponse me permettrait d’appliquer moi-même le traitement adéquat à mes autres feuilles de données (j’en ai 21, qui contiennent entre 1 et 282 actes) mais en fait tu m’as livré le travail tout fait. Je n’avais pas l’intention de te confier un mandat d’exécution mais d’obtenir des explications qui me permettraient de m’en charger moi-même. En gros je pensais apprendre à pêcher et tu me livres le poisson tout prêt !
A propos de PowerQuery, dont tu recommandes l’emploi, j’ai essayé de saisir le nom dans un module standard Excel (ver 2016) mais les 2 termes, ensemble ou séparément, sont inconnus. Je nage complètement.
Dans ma réponse précédente, il y a une erreur : c’est dans le tableau Excel que la limite entre deux actes n’est pas au bon endroit : la première ligne de chaque acte est sa référence : 0 @Sxxx@ SOUR mais c’est la ligne qui commence par 1 TITL qui sert au tri.
A part cela, en examinant de plus près mon listing, j’ai constaté qu’il est encore plein d’erreurs qui m’avaient échappé jusqu’à maintenant et que je devrai corriger avant de procéder à l’opération de transformation en tableau.
Encore merci. Cordialement
touche_a_tout
Print #1 sous forme de tableau
Bonjour,
Toutes mes excuses: c'est moi qui n'ai pas compris ta démarche (les explications dans un deuxième temps), ce qui explique presque toutes mes remarques. La seule qui se justifiait est celle que j'avais formulée le 8.10 à 12 h 21 mais elle est parfaitement appliquée dans le nouveau fichier Excel. Il est donc possible maintenant de trier ces données sur la colonne TITL, soit dans l'ordre alphabétique du premier individu nommé dans l'acte: c'est exactement ce que je souhaitais, merci. Je vais faire les lectures que tu recommandes. Pour le PQ, j'ai mal interprété ta phrase indiquant qu'il est "intégré à Excel" où j'ai compris "intégré au VBA Excel"
Cordialement
touche_a_tout
Print #1 sous forme de tableau
Rebonjour,
J'ai parcouru les documents recommandés mais je n'ai pas pu approfondir car ma version d'Excel 2016 (Famille et petite entreprise) ne comporte pas PowerQuery. Ca vaudrait la peine d'être signalé. Le ruban de l'onglet Données n'est pas le même que dans l'exemple de P. Fauconnier. J'imagine que, comme pour certaines versions antérieures il est disponible en Add On. Je n'ai pas eu le temps de chercher.
Autre chose: je suis allé un peu vite à propos du second fichier Excel. Pour des raisons qui m'échappent, la ligne 0 @Snnn@ SOUR manque dans les actes de mariage (ou dans certains du moins).
A propos du tri, je suppose qu'il peut être effectué depuis PowerQuery, juste ?
Je vais voir si je peux me procurer PQ.
Encore merci
Cordialement
touche_a_tout
Print #1 sous forme de tableau
Rebonjour,
Rectification.
Ma version d'Excel comporte effectivement soit certaines, soit toutes les fonctionnalités incluses dans PowerQuery mais je n'ai pas pu faire apparaître l'interface visible dans l'article de blog de P. Fauconnier, et qui m'a semblé faire toute la puissance et la facilité d'emploi de PQ. Bref, PQ est encore mieux caché dans la version Famille que dans les autres.
Belle journée
touche_a_tout
Print #1 sous forme de tableau
Bonjour et merci,
La taille de police importe peu.
Je ne sais pas où saisir la ligne
Citation:
[B]Données, Obtenir des données, Lancer PowerQuery[/B]
Tu parlais toi-même de B.A. BA...;)
Cordialement
touche_a_tout
1 pièce(s) jointe(s)
Print #1 sous forme de tableau
Bonjour,
Voyez cette capture:
Pièce jointe 627057
C'est dans Excel 2016 (Famille et petite entreprise) qui ne possède pas Power Query. Si l'on clique sur "Ouvrir un fichier texte" on obtient la fenêtre classique "Ouvrir", mais que faire ensuite pour pallier l'absence de PQ ? Par exemple pour indiquer à quel emplacement, dans la feuille, Excel doit importer les données, et pour effectuer les traitements désirés ?
Si l'on cherche à importer PQ comme AddOn, la réponse est que ce PQ est déjà présent dans cette version d'Excel, ce qui est faux, donc pas d'importation.
Toute suggestion sera la bienvenue, merci.
Cordialement
touche_a_tout
Print #1 sous forme de tableau
Bonjour Bruno et merci,
Bingo, on finit par aboutir à un éditeur Power Query. Compliments !
Les lignes de mon txt commencent par un chiffre suivi d'un tag puis du texte; l'import m'a placé les chiffres dans une colonne et le reste (TAG + texte) dans une seconde. Avec la commande Transformer, j'ai pu rétablir le document dans sa forme d'origine.
Par contre mon tableau Excel contient une seule ligne de mon txt par ligne (cellule) Excel alors que le txt devrait être formé de blocs d'une trentaine(quarantaine) de lignes, mais je n 'ai pas trouvé de commandes agissant sur les lignes. Elles me crèvent probablement les yeux.
J'aurais besoin d'un autre coup de pouce !
Merci.
Cordialement
touche_a_tout
Print #1 sous forme de tableau
Bonsoir et merci à Chris et Jurassik Pork,
A propos du décalage, je peux proposer ceci: 1 QUAY est le TAG avec lequel on indique la fiabilité des données. Quand je n'obtenais pas de résultat précis, je sautais la rubrique QUAY. Ce que je peux faire, c'est un cherche et remplace qui ajoute la ligne 1 QUAY "vide" avant TITL là où elle manque. Du coup l'écart entre la cote 0 @Snnn... et TITL sera partout le même. A la réflexion, encore plus simple: pour les opérations que je veux faire avec ce tableau, la rubrique 1 QUAY ne sert à rien; je peux donc la supprimer par le même moyen. Il restera à remplacer les double signes de paragraphe par des simples. OK ? En attendant je regarde tes requêtes. Merci et bonne soirée
Cordialement
touche_a_tout
1 pièce(s) jointe(s)
Print #1 sous forme de tableau
Bonsoir Chris,
J'ai un problème pour afficher tes requêtes:
Pièce jointe 627103
Est-ce que je te transmets le chemin d'accès à mon desktop ?
Autre solution ?
Merci
touche_a_tout
1 pièce(s) jointe(s)
Print #1 sous forme de tableau
Rebonsoir,
Crois-moi si tu veux, voilà ce que j'obtiens avec "Actualiser"
Pièce jointe 627105
Pas étonnant que je sois encore nouveau membre au bout de 16 ans !
La réponse ne presse pas, je vais me saouler.
Bonne nuit
tat
1 pièce(s) jointe(s)
Print #1 sous forme de tableau
Bonjour Chris et merci,
Petite précision: je n'ai jamais travaillé avec une/des requête(s) .
Voilà où j'en suis.
Pièce jointe 627156
]e pense que je dois maintenant faire "Fermer et charger" et j'aurai mon document prêt à classer par ordre alphabétique.
Entre temps, il y a la question de la ligne QUAY qui décale tout; c'est ok si je la supprime (v. mon post d'hier à 21 h 18) ?
Ensuite il y a mes environ 10 autres listings à trier (il y a 3 séries d'actes par listing): j'imagine qu'il n'est pas nécessaire de copier les requêtes dans d'autres classeurs mais que je dois charger les autres listings dans ce même classeur équipé des requêtes et leur faire subir les mêmes traitements. C'est juste ? Pour finir je dois fusionner mes quelque 10 séries d'actes et classer le tout par ordre alphabétique: je les copies simplement à la suite les uns des autres ?
Désolé mais là, je débarque !
Merci d'avance.
Bien à toi
touche_a_tout
Print #1 sous forme de tableau
Merci Chris,
Je vais m'y mettre mais, en regardant de près mes listings, j'y ai trouvé plein d'erreurs dues au code; je vais corriger donc pas de nouvelles avant quelque temps.
A bientôt
touche_a_tout
[XL-2016] Print #1 sous forme de tableau
Bonjour 78Chris,
Désolé pour ce long silence. Je suis toujours sur mon problème mais j'ai du mal avec mes retouches au code (truffé de "Function" que je n'avais jamais utilisées jusqu'à maintenant :oops:!), au total 3200 et quelques lignes, sans compter avec les divers pépins dont je dois aussi m'occuper en dehors de l'informatique généalogique. Tout ça pour dire que je suis toujours très intéressé par ton aide, dont je te remercie, et à laquelle je ferai de nouveau appel d'ici quelques jours.
Bon début de semaine. Cordialement.
touche_a_tout
P.S. ce post n'appelle forcément pas de réponse
[XL-2016] Print #1 sous forme de tableau
Bonjour 78Chris et tout le monde,
J’ai pratiquement terminé les corrections de mes listings et nettoyé le code. Je peux donc envisager la suite (et fin).
Concernant tes requêtes, je dois avouer que je n’y comprends rien ; c’est la première fois que j’en vois ; par contre ça fonctionne parfaitement. J’ai copié le fichier Excel autant de fois que nécessaire et converti les listings en tableaux.
Toutefois il reste un problème : le tri doit se faire sur la ligne TITL mais chaque bloc doit commencer par la ligne qui contient SOUR ; autrement dit la ligne qu’on extrait de chaque bloc pour la copier dans la colonne de gauche est la 2ème et non la première.
Pour la rubrique QUAY, j’ai mis la ligne de code concernée en commentaire, ce qui évite de produire une ligne vide. Donc TITL sera toujours en 2ème position.
Reste la question du report des listings dans un seul et même classeur ; j’écrirai une routine VBA et tant pis si je reste un parfait ignorant en matière de requêtes !
Je te remercie d’avance de retoucher la requête concernant les lignes TITL et SOUR, ce dont je suis incapable.
Cordialement
Touche_a_tout
P.S. Pourquoi faut-il proscrire le copier-coller ?
(P.S. 2 Mon truc sur ce forum, c’est d’appuyer sur Ctrl en même temps que sur Shift pour faire un A majuscule ; du coup tout mon post est effacé et remplacé par le prochain mot que je tape ! Existe-t-il un moyen de récupérer le texte ainsi écrasé ? )
2 pièce(s) jointe(s)
[XL-2016] Print #1 sous forme de tableau
Bonjour,
Je n’ai sans doute pas été clair. Il y a 2 soucis.
En plus, les choses sont encore plus confuses du fait que le fichier texte que je t’ai transmis contenait encore des fautes. Par exemple il manque très souvent la ligne avec SOUR, qui est de première importance. Je suis désolé de t’avoir fourni un matos aussi défectueux. D'autre part, la numérotation des sources est différente, ce que j'ai corrigé dans la dernière version.
Cela dit, les 2 problèmes sont les suivants :
D’une part, la ligne avec QUAY, qui n’existe que dans certains fichiers texte, faisait cafouiller tes requêtes, mais maintenant elle ne s’imprime plus, donc ce problème est réglé.
L’autre souci est l’endroit où les blocs de texte (sources) sont séparés. A l’état d’origine, la limite passe au-dessus de la ligne contenant SOUR, cette ligne étant la première de chaque source, comme on voit sur l’image « origine » ; elle est suivie de la ligne avec TITL.
Pièce jointe 629004
Par contre, c’est la ligne avec TITL qui sert au tri tout en restant la 2ème du bloc de texte, et non la première (image « arrivée »
Pièce jointe 629005).
J’ai actuellement 11 fichiers texte, dont deux ne contiennent qu’une seule source. A l’avenir il est probable que j’en constituerai de nouveaux (fichiers texte).
Est-ce qu’un copier-coller pourrait modifier le texte de mes fichiers ? J’en doute. S’il affecte la structure interne des fichiers, est-ce que cela peut interférer avec le tri alphabétique sur la ligne TITL ?
Je te remercie de ton aide, qui m'est vraiment indispensable (et de ta patience)
Cordialement
touche_a_tout
3 pièce(s) jointe(s)
[XL-2016] Print #1 sous forme de tableau
Bonsoir,
Décidément, on ne doit pas parler la même langue (c'est vrai que je parle suisse !).
Point No 1, en ce qui concerne la ligne avec QUAY, elle n'apparaîtra pas dans les prochains tirages, donc cette question est réglée.
Autre sujet, le niveau de la limite entre deux sources. Dans mon modèle du 7 octobre, cette limite passe au-dessus de la ligne contenant le tag SOUR. Voir l'image:
Pièce jointe 629018
Dans le fichier Excel joint à ta réponse, cette limite passe entre la ligne SOUR, située au-dessus, et la ligne TITL, située au-dessous. Seconde image:
Pièce jointe 629019
C'est cela qu'il faudrait rectifier dans les requêtes.
L'absence du tag SOUR apparaît plus loin dans ton envoi, par exemple:
Pièce jointe 629020
Donc il vaudrait mieux que je t'envoie un .txt sans cette erreur.
Sur la différence de numérotation: j'ai craint que tu sois perturbé de voir le même acte de naissance (Marie-Thérèse Boursarie sauf erreur) portant le numéro 400 dans mon modèle puis 900 dans le txt que tu as traité.
Tu écris:
Citation:
D'après ton image il faut supprimer le début de cette ligne, ce qui change par rapport à la demande initiale
Il n'y a rien à supprimer. Dans ton traitement (Genealogie_PQ.xlsx), tu as repris le contenu de la ligne TITL sans reprendre le tag "1 TITL" lui-même, et c'est parfait.
A ce stade, je pense qu'il faut que je te transmette un .txt exempt des erreurs susmentionnées en vue d'obtenir un résultat identique à mon modèle du 7 octobre. Je prends le temps de vérifier qu'il n'y a pas de défaut dans mon listing avant de l'envoyer.
Au fait, pour quelle raison m'as-tu demandé le nombre de mes fichiers ?
Encore merci et à bientôt.
Cordialement
touche_a_tout