IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Traitement de données généalogiques (conception et mise en place technique)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Traitement de données généalogiques (conception et mise en place technique)
    Bonjour,
    Je crois avoir exactement reproduit l'un des exemples donnés sur ce forum et pourtant j'ai l'erreur "Nous ne trouvons pas E:\3_G_E_N_E_A_L_O_G_I_E\creation_sources_ged\Naissances\wb.x". Et d'où vient ce .x ajouté à wb ? Voici le code (ces 6 lignes se répètent 22 fois en lien avec 22 fichiers Excel similaires):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Workbooks.Open ("E:\3_G_E_N_E_A_L_O_G_I_E\creation_sources_ged\Naissances\Base_Etat_civil_F_Naissances.xlsm")
    Set wb = Workbooks("Base_Etat_civil_F_Naissances.xlsm")
    wb.Activate
    indice = indice + 1: index = index + 1
    Application.Run "wb!creation_squeeze_gedcom_d_apres_XL"
    wb.Close
    C'est la ligne que je mets en italique qui apparaît surlignée en jaune quand je clique sur Débogage.
    Même erreur si j'ajoute "sub" devant la moulinette et les parenthèses vides à la fin.
    Merci pour toute suggestion/explication/solution
    Cordialement
    touche_a_tout

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    si ton classeur contenant la macro a exécuter est ouvert dans la meme instance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.Run "'" & nomduclasseur & "'!" & "nomdelamacro"
    sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mavariableapplication.Run "'" & nomduclasseur & "'!" & "nomdelamacro"
    mavariableapplication est une variable que tu a instancié pour créer une instance d'excel dans la quelle tu a ouvert ton fichier

    nomduclasseur est un string et non un object workbook !!!!!!

    respecte les simple cote sinon ca ne fonctionne pas
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Encore Application Run
    @PatrickToulon
    Salut Patrick,
    Content de te retrouver plein de punch !
    Suis pas sûr de bien comprendre donc de bien savoir lequel des deux codes choisir.
    J'ai un classeur "lanceur" dans lequel j'ai le code que j'ai cité et 22 autres classeurs où je veux lancer (en série) des procédures depuis le "lanceur". Les procédures à lancer ne sont donc pas dans le même classeur que mon bout de code. Il faut donc, je suppose, que j'instancie une variable renvoyant chaque fois à un nouveau classeur. Il faut donc que je choisisse la 2ème formule. Correct ?
    Merci de soutenir un pauvre débutant qui patauge !
    Bien à toi
    touche_a_tout

  4. #4
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Encode Application Run
    Re-bonjour,
    encore une question:
    Comme ma macro est une sub VBA, est-ce que je dois mettre le mot sub et la parenthèse vide ou pas ?
    En plus, alors que je viens d'ouvrir un classeur avec Open, le système me dit, à propos du nom de ce classeur: "variable non définie". J'ai du mal à suivre !
    Amitiés
    touche_a_tout

  5. #5
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Encore Application Run
    Bonjour,
    Toujours plus surprenant. J'ai fouillé et trouvé une solution chez Ouskel-nor (une référence, non ?) (pardon à lui d'écorcher son vulgo) et ça marche, mais seulement sur les 4 premiers classeurs; au 5ème j'ai le message "impossible d'exécuter la macro..." . Pourtant l'écriture du code me semble identique. Je mets seulement le 4ème bloc, qui marche, et le 5ème, qui ne marche pas. Si quelqu'un voit pourquoi, je lui devrai une fière chandelle. (Par flemme d'effacer j'ai mis en commentaire [cherche et remplace avec '] des tentatives abandonnées). Voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    '4
    Workbooks.Open ("E:\3_G_E_N_E_A_L_O_G_I_E\creation_sources_ged\Naissances\Naissances_formatees3.xlsm")
    'Set wb = Workbooks("Naissances_formatees3.xlsm")
    'wb.Activate
    indice = indice + 1: index = index + 1
    Application.Run "'Etat_civil_CH_Naissances5.xlsm'!'creation_squeeze_gedcom_d_apres_XL'"
    MkDir "E:\3_G_E_N_E_A_L_O_G_I_E\newallged\ALL_GED" & index
     
    '5
    Workbooks.Open ("E:\3_G_E_N_E_A_L_O_G_I_E\creation_sources_ged\Naissances\Par_France_SAGA_Naissances6.xlsm")
    'Set wb = Workbooks("Par_France_SAGA_Naissances6.xlsm")
    'wb.Activate
    indice = indice + 1: index = index + 1
    Application.Run "'Par_France_SAGA_Naissances6.xlsm'!'creation_squeeze_gedcom_d_apres_XL'"
    MkDir "E:\3_G_E_N_E_A_L_O_G_I_E\newallged\ALL_GED" & index
    Quand l'informatique devient capricieuse, je panique !
    Merci pour toute aide.
    Cordialement
    touche_a_tout

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    c'est pas l'informatique qui devient capricieuse
    c'est toi qui ne fait pas comme on te dit

    alors!!! regarde lettre par lettre mes lignes et fait de même avec les tiennes tu comprendra tout seul
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    En fait, je faisais la rédaction du poste #14, quand tu as poster le poste #13.

    Ce qui explique ton incompréhension!

    Je voulais juste dire que tu pouvais passer le nom et le chemin de ton fichier en paramètres de ta procédure, mais on dirait que j'ai tou faut !

  8. #8
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Traitement de données généalogiques (conception et mise en place technique)
    Bonsoir dysorthographie,
    J'ai bien noté qu'il me faudrait
    passer le nom et le chemin de ton fichier en paramètres de ta (=ma) procédure,
    . Je te remercie et vais tâcher de suivre efficacement ton conseil. Cela dit, ces jours-ci ça modère sans modération, on dirait. Pourtant le blog du personnage m'a bien intéressé. Pourvu qu'on ne modère pas mes remerciements, ça me ferait moinsser.
    Bonne soirée
    touche_a_tout

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Que les données soient des données généalogiques ou tout autres, ça ne change rien à la démarche informatique à mettre en place. Pour un informaticien, traiter des données généalogiques ou des données traitant de la vente de petits pois par mauvais temps, c'est kif. il y a toujours trois questions à ce poser.

    Quelles sont tes sources? Tu dis que ce sont de multiples documents, photos, etc... Je suppose qu'au delà de leur consistance réelle, elles sont "encodées" dans tes (22) feuilles Excel.
    Comment sont-elles organisées? (Sont-elles organisées? ). il ne pourra y avoir de traitement informatique que si l'on peut mettre en place un algorithme qui les traite.
    Comment doit-on les transformer pour les intégrer à GedCom (les mettre au format qui...)?

    Tant que nous n'aurons pas vu de quoi sont constituées tes feuilles (avec les exceptions, les "bizarreries", ...), nous parlerons dans le vide et nous serons obligés de théoriser. Ce qui serait intéressant pour pouvoir intégrer tes sources, c'est de voir tes feuilles, puis, avec un ou deux exemples, de voir le traitement qui doit être appliqué aux données pour les formater "GedCom".

    A partir de là, ce sera normalement assez simple de mettre en place le code à réaliser.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Traitement de données généalogiques (conception et mise en place technique)
    Bonjour à tous deux,
    Et merci, vous vous donnez beaucoup de mal. J’apprécie votre aide mais vous n’avez pas assez d’infos pour qu’elle soit tout à fait adéquate. Voici donc quelques réponses et précisions.
    Par ma faute (je remanie sans cesse) vous vous basez sur des états de mon travail qui sont dépassés. Je précise donc que je travaille maintenant sur un seul classeur qui rassemble toutes les feuilles et 3 versions du code (naissance, mariage, décès) et que je suis en train d’appliquer le conseil de Pierre : je divise ma tartine de 431 lignes en « briques » beaucoup plus petites. Je vous montrerai quand ce sera fait. Vos posts maintenant :
    Pierre écrit :
    "encodées" dans tes (22) feuilles Excel.
    Alors oui, elles sont « encodées », mais pas dans 22 feuilles excel (à l’époque je parlais de 22 classeurs), mais dans environ 70 feuilles contenues dans un seul et même classeur, nommé « consolidation » (puis new_new_consolidation) parce que tu trouvais absurde de travailler sur 22 classeurs.
    Voir post 13:
    Suivant les conseils de P. Fauconnier j'ai tout réuni dans un seul classeur, 69 worskheets et le code; ensuite j'ai variabilisé le nom des feuilles et des macros comme vous me l'aviez indiqué l'un et l'autre;
    Mais en fait j'ai 79 feuilles dans mon classeur ! Pourquoi ? Parce que quand mes feuilles étaient d'un seul tenant (jusqu'à 250 lignes ou enregistrements), telles que saisies à l'origine, l'impression s'arrêtait spontanément en cours de route et personne sur cet excellent forum ne m'a suggéré une idée utile. Personne. Plutôt que d'attendre, j'ai examiné les résultats et comme il semblait que l'impression pouvait aller jusqu'à environ 25 lignes, j'ai décomposé mes tables en sous-tables de 25 lignes au maximum, ce qui m'a donné 79 feuilles, et ça marche.

    Tu veux savoir (c’est indispensable)
    Comment sont-elles organisées? (Sont-elles organisées? ).
    J’ai très tôt décidé de standardiser la structure des feuilles en ayant toujours le même nombre de colonnes placées dans le même ordre et ayant le même contenu parce que ma méthode (oui, oui !) consiste à déboguer une sub puis à la copier pour traiter une autre feuille : il est donc indispensable que les coordonnées des données (ligne, colonne) restent identiques d’une feuille à l’autre.
    Ces indications pourront être vérifiées en examinant le classeur joint (exempt de code)
    Tu continues ainsi :
    il ne pourra y avoir de traitement informatique que si l'on peut mettre en place un algorithme qui les traite.
    L’algorithme existe virtuellement depuis longtemps, mais ici le pseudo-code est suffisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Regarde dans la cellule( x, y)
    S’il y a quelque chose, rédige la phrase A en incorporant ce que tu as trouvé, sinon rédige la phrase B (en tenant compte du type de contenu, donc du No de colonne)
    Tu demandes encore :
    Comment doit-on les transformer pour les intégrer à GedCom (les mettre au format qui...)?
    La réponse est simple : en faisant précéder chaque phrase rédigée par le tag approprié.

    Maintenant, excuse-moi, mais ces questions ne sont pas pertinentes. J’ai déjà indiqué ou sous-entendu plusieurs fois ce que j’ai répété hier :
    Je suis arrivé depuis des mois à imprimer, et aussi à sauvegarder, des gedcoms utilisables
    Cela signifie
    1) que mes données sont organisées,
    2) que l’algorithme de traitement existe implicitement,
    3) qu’un code a été rédigé à partir de cet algorithme virtuel
    4) et qu’il donne d’assez bons résultats.
    Donc ce dont j’ai besoin, c’est de réponses à des questions qui n’en ont jamais reçu ; en fait une seule question (que j’ai déjà posée au moins une fois, mais je ne retrouve pas le post (Robert a raison, je suis un littéraire et mes discussions prennent vite les dimensions de romans), et quand je saurai ça, le job sera terminé. Vous avez ça dans une sub séparée à la fin du code que je vous ai transmis hier.
    Pourquoi l’impression de mes gedcoms démarre-t-elle si je parcours le code avec F8 et ne fonctionne-t-elle pas lorsqu’elle est activée par le même code en cours d’exécution ?
    Les quelque 70 lignes de ce post ne servent qu'à expliquer la phrase en italique qui le termine.
    Merci de votre patience et de votre soutien.
    Cordialement
    touche_a_tout

  11. #11
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Traitement de données généalogiques (conception et mise en place technique)
    Désolé, un oubli de plus, voici le classeur annoncé. C'est du .xls ne contenant aucun code
    t_a_t
    facsimile_Actes_paroissiaux_France.xls

  12. #12
    Invité
    Invité(e)
    Par défaut
    bonjour touche_a_tout et bonjour Patrick,

    je ne suis pas intervenue plus tôt car mon intervention aurait engendré de la Confusion, il était préférable que vous restiez tous les deux.

    je me demandait cependant pour quelle raison la macro ce trouvait dans le fichier lancé et pas dans le fichier lanceur? la macro es spécifique à chaque fichier ou identique pour tous?

    en terme de maintenance évolutive et/ou curative ça pose problème? non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub test()
     creation_squeeze_gedcom_d_apres_XL "c:\mondossier\A_modele_Chambon_baptemes6.xlsm"
    End Sub
    Sub creation_squeeze_gedcom_d_apres_XL(Fichier As String)
    Dim Wb As Workbook
    Set Wb = Workbooks.Open(Fichier)
    Wb.Close
    Set Wb = Nothing
    End Sub
    Edite: j'étais en train de rédiger mon message!

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Je remets ici ce qui a été modéré ce matin et dont Touche-a-tout parle dans son mail... (mon intervention puis la sienne en réponse)

    Mon intervention
    Histoire de recentrer la discussion sur ses aspects techniques.

    Devoir créer un lanceur qui ouvre 22 fichiers (le nombre n'a pas d'importance ici) pour lancer des macros contenues dans ces fichiers révèle un défaut de conception (ce n'est pas une attaque personnelle, c'est un constat technique). Il serait plus logique et stable que le code soit placé dans le "lanceur" qui deviendrait ainsi "l'application" qui piloterait les fichiers. Elle pourrait alors ouvrir les fichiers de données et y effectuer des traitements, en extraire des données, ... Bref, faire son boulot d'application.

    Il serait pertinent de se poser la question "pourquoi 22 fichiers". Une conception nécessitant ce genre de montage ne se rencontre pas tous les jours "dans la vraie vie". Je doute qu'elle soit nécessaire à une gestion de données généalogiques. Si vraiment les données sont contenues dans x fichiers, les bonnes pratiques enseignent de rapatrier les données des x fichiers dans le fichier applicatif puis de travailler en local.

    Pour faire référence à la remarque de Patrick sur les multi-instances, il me semble inintéressant d'ouvrir le fichier applicatif dans une autre instance que les fichiers de données. Ca complique inutilement une tâche qui est déjà trop complexe à l'heure actuelle. Donc, il est inutile d'en parler ici et de mettre en place cette solution.

    Si l'on doit ouvrir un fichier, une bonne pratique à mettre en oeuvre par l'apprenti est de créer une variable qui contient ce classeur. set wb = workbooks.open(...). Ca permet de manipuler plus facilement le fichier. Il faut également noter que lorsque l'on ouvre un classeur, il devient le classeur actif. Il faut bien entendu tenir compte de cela dans la gestion du code. C'est notamment pour cela que l'on essaie de travailler en local autant que possible. Ca évite de se mêler les pinceaux entre activeworkbook, thisworkbook, et de devoir être attentif à quel classeur est actif lors de l'exécution du code.

    Il faut sortir absolument les noms de fichiers du code et les stocker dans une feuille de l'applicatif. Idéalement, surtout vu l'arborescence, il serait intéressant de regrouper les fichiers de données dans le même dossier que l'applicatif. Ca permettrait de limiter les problèmes de déplacement de fichiers (au sens large, ce qui veut dire que renommer un fichier ou un dossier dans l'arborescence revient à déplacer) car on pourrait alors travailler avec ThisWorkbook.Path pour simplifier le code et limiter les erreurs de saisie au strict minimum.

    Il est extrêmement rare de devoir, d'un fichier, lancer du code se trouvant dans un autre fichier. Ca doit de suite interpeller sur le défaut de conception. Perso, en plus de 25 ans d'Excel, je n'ai jamais eu besoin de créer un montage pareil.
    La réponse de Touche-a-tout
    Salut,
    Très intéressant message.
    Depuis mon dernier post sur ce sujet, j'ai réuni toutes les "feuilles de données" (je pense à Access Lite) dans un seul classeur qui contient toutes les procédures. Ca fonctionne, à quelques menus détails près. Sauf qu'il reste un gros défaut de conception: une longue séries de "Call" avec les procédures en dur. Je réfléchis (à mon rythme) à la manière de simplifier. Elles ne diffèrent que par un élément distinctif qui correspond chaque fois au nom d'une feuille. Il suffirait donc alors d'une seule procédure contenant une variable qui prendrait la valeur de mes éléments distinctifs. Comment mettre ces éléments distinctifs à portée de ma sub ? En les stockant dans un tableau ? Ils sont complexes, du fait des 8 x 3 caractéristiques citées plus bas.

    A propos des 22 fichiers, j'ai déjà donné l'explication quelque part. Ils représentent des sources. Une généalogie n'est crédible que si l'on y incorpore les sources. Je l'ignorais quand j'ai rempli mes 22 feuilles de données. On peut à propos du nombre se représenter une matrice cartésienne avec en abscisse les 3 événements généalogiques clés: naissance, mariage, décès et en ordonnées les types de documents avec leur origine. Dans mes tables, il y en a 8. La formulation des textes et leur classement incite à les traiter séparément. On arrive donc à 24 séries de sources, mais chez moi il y en a 2 qui sont vides, donc absentes.
    Plutôt que des dizaines de fichiers, on peut penser à des dizaines de feuilles dans un même fichier et je l'ai fait.
    Mais en fait j'ai 79 feuilles dans mon classeur ! Pourquoi ? Parce que quand mes feuilles étaient complètes, telles que saisies à l'origine, l'impression s'arrêtait spontanément en cours de route et personne sur cet excellent forum ne m'a suggéré une idée utile. Personne. Plutôt que d'attendre, j'ai examiné les résultats et comme il semblait que l'impression pouvait aller jusqu' environ 25 lignes, j'ai décomposé mes tables en sous-tables de 25 lignes au maximum, ce qui m'a donné 79 feuilles, et ça marche.
    "Ce n'est pas une attaque personnelle". Et ce qui précède est sûrement un travail d'éclopé aidé par quelques paraplégiques. Mais figure-toi que j'en suis assez satisfait. Et je vais sans doute faire encore mieux !
    Merci pour ton analyse et tes conseils, dont j'ai anticipé quelques-uns et dont je vais suivre d'autres. Pour faire encore mieux.
    touche_a_tout
    P.S. Pour ta gouverne, le .txt que je veux faire s'appelle un gedcom; c'est un "langage" à tags inventé par les Mormons pour permettre l'échange de données généalogies entre systèmes différents. Tu relèves quelque part qu'il ne s'agit pas d'une bidouille mais d'un développement qui exploite les données Excel pour les transmettre à Word sous la forme adéquate: c'est exactement à quoi sert ma procédure, qui fonctionne très bien, avec les réserves déjà exprimées.
    Je pense que cela aidera à mieux comprendre le cheminement
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Invité
    Invité(e)
    Par défaut
    Désolé si je t'es offensés, mais ce code contient,a mon avis, intrinsèquement tout ce dont tu as besoin!

    Je l'ai utilisé moi même pour tout autres choses, vraiment désolé oublis ce que j'ai écris.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    mets un fichier je vais regarder!

  16. #16
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Traitement de données généalogiques (conception et mise en place technique)
    Bonjour,
    C'est tellement long (des heures) entre deux retouches que j'ai réduit les "volumes". En principe, à part les références, ça ne change rien au code, qui ne fonctionne plus d'ailleurs! Dans ma "maquette" B_maquette_consolidation.xlsm, je n'ai plus que 8 feuilles et chacune d'elles n'a que 2 à 3 enregistrements (avec 2 lignes d'en-têtes). J'ai ajouté une feuille "registre" pour voir le temps que prends un tour.Ca va beaucoup plus vite (mais ça bogue). Je me perds dans les boucles. Et je me cramponne aux "Call" comme à des bouées !
    Merci d'y jeter un coup d'oeil.
    Bien à toi
    t_a_t

  17. #17
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 537
    Par défaut Traitement de données généalogiques (conception et mise en place technique)
    re,
    Attends !
    Ne te fatigue par à regarder les "briques" comme dit Pierre, elles fonctionnent, ce sont les 3 lanceurs, un pour les naissances, 1 pour mariages, 1 pour décès, qui cafouillent.
    Merci et bon courage !
    t_a_t

  18. #18
    Invité
    Invité(e)
    Par défaut
    Pour ce qui concerne word, il est possible de créer un fichier texte sens passe par word,mais il n'est pas opportun d'aborder le sujet pour l'heure.

    Il me semble avoir vu une source d'un arbres généalogiques élaboré par fichier texte via word sur ce même forum, c'est cela qui à initier la présente discutions ?

  19. #19
    Invité
    Invité(e)
    Par défaut
    Pour répondre à Robert: il n'y a plus de lanceur;
    oui, mais je suis un fainéant et j'ai rééditer mon poste pour ne pas le réécrire!

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je ne peux que plussoyer Robert.

    "Tout commence par un dessin", disait Da Vinci. En informatique, tout commence par un schéma, qui va du général au particulier. A la fin, le particulier (la plus petite unité possible) est transformée en code. Le process n'est alors que la colonne vertébrale qui assemble (appelle) ces bouts de code selon les besoins.

    On part donc de ce qu'on a (des feuilles avec des données, avec une "structure" qui permet un traitement informatique), on regarde comment traiter telle donnée, puis telle autre, ... au travers de petites procédures/fonctions. Ouvrir un fichier, repérer les limites des données, vérifier les données, en extraire les infos pertinentes, assembler telles données, ..., sont autant de "fonctionnalités" de ton appli qui vont être traduites en petits morceaux de code digestes recevant les données qu'ils doivent traiter en arguments, faciles à tester, à corriger et à faire évoluer. Après, c'est un jeu de Lego. Chaque "brique logicielle" fait sa "petite" part du travail.

    Dès lors, le fichier GedCom n'est que la résultante de tous ces traitements, qui seront appelés autant de fois qu'il y a de naissances, de décès, de mariages, ..., pour créer ton fichier final au bon format.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/09/2006, 13h08
  2. [C#] Application.Run sans Form
    Par papouAlain dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/06/2006, 16h36
  3. [C#]Fenetre de chargement avant Application.run()
    Par 5:35pm dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2006, 03h02
  4. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50
  5. Application.run ?
    Par bobymaw dans le forum Langage
    Réponses: 5
    Dernier message: 29/12/2005, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo