extraction de dates

jlm38070

XLDnaute Nouveau
Bonjour,
Je fais partie d'une association qui rédige des biographies de personnes mortes en France durant la seconde guerre mondiale, le Maitron des fusillés.
Il est possible de récupérer des données au format txt.
J'utilise Excel pour récupérer les données et les"saucissonner". J'utilise pour cela les différents séparateurs : point-virgule, virgule...
La première finalité est de récupérer les lieux de décès afin de réaliser des cartes. Jusque là, je m'en sors à peu près.
Voici par exemple une carte que j'ai réalisée ces derniers jours. La chronologie a été faite "à la main". https://fr.batchgeo.com/map/98f88d384fa879421441b9814c9fbb5a
Mais je voudrais pouvoir extraire les dates de naissance et les dates de décès. Pour les premières, afin d'établir des statistiques relatives à l'âge au moment du décès, pour les secondes pour établir des chronologies.

Les dates sont au format jj mois aaaa, le mois étant écrit en toutes lettres. C'est une convention de rédaction et il y a déjà plus de 30000 notices biographiques.

Je joins un fichier pour exemple, avec quelques lignes, mais le traitement est susceptible de s'appliquer à des tableaux de plusieurs centaines, voire milliers de lignes !

Je vous remercie de votre aide car, sans être un néophyte (j'ai commencé avec Works et Windows 95 !), je suis laaaaaargement dépassé.
 

Pièces jointes

  • Demo jlm38070.xlsx
    10.3 KB · Affichages: 10

patricktoulon

XLDnaute Barbatruc
ben en fait je n'est pas essayé une requete
j'ai regardé dans une page il y a x sous pages

et vu que l'analyse se ferait par la librairie IE qui est devenue quasiment obsolete sur w 10 et 11 ca risque d'etre chaud

et faire un simple query en utilisant une feuille temporaire rendrait la chose interminable
 

Etoto

XLDnaute Barbatruc
Hello,

Désolé de polluer le fil @jlm38070.
et vu que l'analyse se ferait par la librairie IE qui est devenue quasiment obsolete sur w 10 et 11 ca risque d'etre chaud
Tu veux dire que sur W11, une requête WEB pourrait rencontrer des problèmes ? En tout cas, cela expliquerait plusieurs de mes soucis, notamment sur les pages web qui sont sur plusieurs pages ou sur pages rétractables.
 

jlm38070

XLDnaute Nouveau
Ce sont des listes établies à partir de la recherche avancée (vous pouvez le faire mais vous ne pourrez pas exporter les données, c'est réservé aux auteurs.) ou d'une requête SQL (Je ne savais pas faire ça il y a un mois !).
Pour faire simple, le Maitron des fusillés ( https://fusilles-40-44.maitron.fr/) est un dictionnaire en ligne des personnes mortes entre 1940 et 1945, victimes de la répression de Vichy ou des Allemands, mortes au combat, disparues, massacrées... C'est une partie d'un dictionnaire plus vaste, le Maitron (https://maitron.fr/).
Pour pouvoir établir des cartes, des statistiques, de regroupements... les notices sont complétées de balises, du genre profession, pays d'origine, organisation d'appartenance, de décès, département de décès, période de décès.... Ce sont ces mots clés qui servent aux requêtes SQL.
Je me suis lancé là-dedans car nous n'avons plus de personne susceptible d'exploiter cette grosse base de données qui s'étoffe chaque jour. Or, si la partie mémorielle est importante, l'aspect scientifique est vital.

Pour TooFatBoy : C'est bien comme cela que je faisais avec mon vieil ordi. Mais il semble que cela ne soit pas possible avec W11. L'Explorateur indique le nom du fichier, mais sans le suffixe, et si tu veux le modifier, tu obtiens quelque chose du genre fichier.csv.xls.

Je joins trois fichiers txt.
 

Pièces jointes

  • Fichiers txt.zip
    5.5 KB · Affichages: 2
  • Fichiers txt.zip
    5.5 KB · Affichages: 0

patricktoulon

XLDnaute Barbatruc
Hello,

Désolé de polluer le fil @jlm38070.

Tu veux dire que sur W11, une requête WEB pourrait rencontrer des problèmes ? En tout cas, cela expliquerait plusieurs de mes soucis, notamment sur les pages web qui sont sur plusieurs pages ou sur pages rétractables.
re
ben oui d'ailleurs je crois que tout les W10 et 11 bien sur ont vu leur librairie IE supprimées par une mise a jour en tout cas si c'est pas encore fait chez certains ça ne va pas tarder
 

patricktoulon

XLDnaute Barbatruc
bon je viens de regarder un de tes 3 fichiers du premier zip
et la fonction de scindage déjà a pris du volume et encore il en manque !!!!!
VB:
Function remasterFich(txt$)
    Dim i&, col
    txt = Replace(txt, "Né le ", ";Né le;")
    txt = Replace(txt, "Née le ", ";Née le;")
    
    txt = Replace(txt, "Né à ", ";Né /;Non connue;à ")
    txt = Replace(txt, "Né en ", "Né en;")
    txt = Replace(txt, "et en un lieu non connu", "lieu de naisance inconnue;")
    txt = Replace(txt, ", mort ", ";mort ")
    txt = Replace(txt, " à ", ";à ")
    txt = Replace(txt, "tué le ", ";tué le;")
    txt = Replace(txt, "tuée le ", ";tuée le;")
    'txt = Replace(txt, "tué ", ";tué ")
    txt = Replace(txt, "sommairement exécuté en représailles le ", ";sommairement exécuté en représailles le ;")
     txt = Replace(txt, "sommairement exécuté le ", ";sommairement exécuté le;")
   txt = Replace(txt, "massacré par un soldat allemand le ", ";massacré par un soldat allemand le;")
'massacré par un soldat allemand le
    txt = Replace(txt, "combat le ", "combat le;")
    txt = Replace(txt, "mortellement blessé le ", ";mortellement blessé le;")
    'mortellement blessé le

    txt = Replace(txt, "exécuté sommairement le", ";exécuté sommairement le;")
    txt = Replace(txt, "massacré le", ";massacré le;")
    txt = Replace(txt, "massacré par des Allemands le ", ";massacré par des Allemands le;")
    'massacré par des Allemands le
    txt = Replace(txt, "https", ";https")
    tbl = Split(txt, Chr(10))
    For i = 0 To UBound(tbl)
        tbl(i) = Replace(tbl(i), Val(tbl(i)), Val(tbl(i)) & ";")
        col = Split(tbl(i), ";")

        If UBound(col) >= 8 Then If InStr(1, col(8), "résistant") Then tbl(i) = Replace(tbl(i), "résistant", "proffession inconnue;résistant")
        If UBound(col) >= 3 Then If IsDate(col(3)) Then tbl(i) = Replace(tbl(i), col(3), DateValue(col(3)))
        If UBound(col) >= 6 Then If IsDate(col(6)) Then tbl(i) = Replace(tbl(i), col(6), DateValue(col(6)))
    Next
    txt = Join(tbl, vbCrLf)
    remasterFich = txt
End Function
je pense que je vais opter pour une methode plus radicale
 

patricktoulon

XLDnaute Barbatruc
bon
il y a tellement de différence entre tes 3 fichier (j'imagine avec plus!!)
que je suis passé par un regex pour pointer les dates + quelque replace

alors nous reste un soucis quand il y a 3 dates naissance / quand il a été blessé / quand il est mort

lancer la sub test2
choisir le fichier dans le dialog
cliquer oui pour voir le csv

toujours pareil que ce soit un fichier txt ou csv a la sortie la copie est un csv ouvrable dans excel
il est enregistré sous le meme non avec suffixe "remasterisé"+".csv"

je pense qu'au niveau de l'l'automation de "parser le texte" sans faire d'usine a gaz(pardon lionel) on aura pas mieux

si ça te convient, je te fait la conversion de tout les fichiers d'un dossier en un coup sinon j'arrête là

voila
maintenant tu va pouvoir a 95% traiter tes ages avec tes deux colonnes dates
comme je te l'ai dis précédemment dans le forum des fonctions personnalisées tu trouvera ma fonction age qui va jusqu’à 1800
 

Pièces jointes

  • fich 3945 V2 patricktoulon.xlsm
    33.4 KB · Affichages: 2

TooFatBoy

XLDnaute Barbatruc
Pour TooFatBoy : C'est bien comme cela que je faisais avec mon vieil ordi. Mais il semble que cela ne soit pas possible avec W11. L'Explorateur indique le nom du fichier, mais sans le suffixe, et si tu veux le modifier, tu obtiens quelque chose du genre fichier.csv.xls.
Tu veux dire que sous W11 il n'y a plus l'option à cocher qui permettrait, comme sous les W précédents, d'afficher l'extension ???
Franchement, le doute m'habite ! 🤔🤔🤔🤔🤔
 

Discussions similaires

Statistiques des forums

Discussions
315 102
Messages
2 116 222
Membres
112 690
dernier inscrit
noureddinee