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

AppleScript Discussion :

Aide pour la création d'un script


Sujet :

AppleScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Artisan
    Inscrit en
    Février 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Artisan

    Informations forums :
    Inscription : Février 2025
    Messages : 3
    Par défaut Aide pour la création d'un script
    Bonjour à toutes et tous,

    Je souhaiterais utiliser AppleScript pour transformer un fichier .csv.
    Afin de rendre les choses facilement compréhensibles, je joins deux fichiers:
    1- Le fichier d’origine au format csv
    2- Le fichier tel que je le souhaiterai après être passé dans le script.


    Voici les étapes à réaliser

    1-Ouverture du fichier dans numbers. (Information: Le fichier se situe dans le dossier téléchargement)
    2-Suppression des 6 premières lignes
    3-Suppression de toutes formes de style de police et de couleur de cellule
    4-Rassembler toutes les cellules de la colonne nature de l’opération d’une même opération appartenant à la même date dans la première cellule de l’opération, la suppression de tous les espaces du texte n’est pas nécessaire, et ce pour chacune des opérations.
    5- Supprimer toutes les lignes vides.

    J’espère avoir réussi à exposer clairement ma demande.
    Si quelqu’un parmi vous avait les connaissances suffisantes pour réaliser cela, si toute fois c’était réalisable, je serait très reconnaissant de pourvoir bénéficier de son aide pour l’écriture du script.

    Par avance merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour BipBip33,

    Comme c'est un dimanche gris, je me suis dit que refaire un peu d'Applescript pourrait me distraire !
    J'ai regardé ton problème et je pense que le script ci-dessous réponds bien à tes questions.
    J'ai changé un peu la logique: par exemple je ne conseille pas de supprimer les 6 premières lignes car le script ne fonctionnera plus le jour où ta banque changera ce nombre ...bien évidemment sans te prévenir (-:

    Je suis donc parti de la logique de lecture d'une ligne du fichier source, en me demandant ce que je dois en faire:
    1) Si c'est une ligne sans date et qu'il n'y a pas eu précédemment une ligne avec une date valide, c'est que c'est une ligne d'entête: peu importe combien il y en a, il ne faut rien en faire !
    2) si c'est une ligne sans date, mais qu'il y a eu précédemment une ligne avec une date, alors c'est une "sous-ligne" d'écriture et il faut ajouter la Nature au bout de la Nature de la ligne valide précédente
    3) si c'est une ligne avec une date, c'est bien une écriture valide, et il faudra l'écrire, soit quand on lira une autre ligne avec une date (alors cette ligne contiendra la somme des Natures des lignes précédentes), soit quand on sera à la fin du fichier

    L'essentiel se passe dans le handler Conversion qui lit le fichier source et écrit le fichier destination
    Ce handler utilise un autre handler (une sous-routine !) Date_Valide qui détermine si le premier item de la ligne est bien une date valide, ou pas !

    La variable TSep contient un séparateur pour mieux voir les morceaux de Nature mis bout à bout dans le fichier final. je l'ai mise à " | ", mais tu peux la fixer à vide ("") si tu préfères.

    Enfin, comme je suis dans un bon jour, j'ai arrangé le tout pour que ce script soit utilisable de 2 façons différentes, une fois que tu l'as enregistré comme Application à partir de l'éditeur de script:

    Méthode 1: tu ouvres l'application qui te demandera de sélectionner le fichier source (le relevé de ta banque), puis te demandera de choisir le nom et l'emplacement du fichier converti (le CSV que tu utiliseras dans Numbers)
    Méthode 2 (ma préférée): tu glisses/dépose un ou plusieurs fichiers de relevés bancaire sur l’icône de l'application et celle-ci te crée automatiquement des fichiers dans les mêmes dossiers que les relevés, dont le nom reprend le nom du fichier de ta banque avec le suffixe "(converti")...tu peux changer ce suffixe si tu veux dans le script

    Pour des raisons de sécurité, ton Mac te demandera de donner l'autorisation à cette application d'écrire des fichiers (les convertis) lors de la première utilisation: c'est normal.

    J'ai mis des commentaires un peu partout dans le script pour que tout le monde comprenne.
    Voilà ! Voilà !

    Bonne fin de journée

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    property SepCSV : ";" -- separateur de CSV
    property TSep : "| " -- separateur des lignes dans le champs Nature
     
    (* Format source : fichier CSV
    Le fichier contient 3 types de lignes:
    1) lignes sans date valide et qui ne suivent pas un ligne avec date valide -> on ne fait rien
    2) lignes sans date valide et qui suivent une ligne avec date valide -> on ajoute la Nature à la Nature de la ligne type 3 qui précéde
    3) lignes avec date valide, Nature, Debit, Credit, Devise, Date_valeur, Libelle -> on enregistre
        
    *)
     
    global F_Source -- le fichier source csv
    global F_Dest -- le fichier converti
    global FRef -- La référence du fichier converti à écrire
    global Ligne_Pre -- true si une ligne précedente est de type 3
     
    on run -- utilisé lorsqu'on lance le script comme application: il demande le fichier source et destination
        set F_Source to (choose file with prompt ("Selection du fichier CSV à traiter")) as string
        set F_Dest to ((choose file name with prompt ("Nom et emplacement du fichier converti")) as string) & ".csv"
        Conversion()
    end run
     
    on open (Liste_Fichier) -- utilisé lorsqu'on drope un ou plusieurs fichiers source sur l'icone de l'application
        repeat with Un_Fichier in Liste_Fichier
            -- determine le fichier destination par ajout de (converti) en fin de nom de fichier, avant l'extension
            tell application "Finder" to set MExt to name extension of item Un_Fichier
            set F_Source to (Un_Fichier as string) -- converti le type fichier en string (chemin:fichier.csv)
            set F_Dest to text 1 thru ((count of F_Source) - (count of MExt) - 1) of F_Source -- supprime l'extension et le . à la fin du nom
            set F_Dest to F_Dest & "(converti).csv" -- rajoute le suffixe (converti) et l'extension .csv
            Conversion()
        end repeat
    end open
     
    on Conversion() -- lecture des lignes du fichier source et écriture des lignes du fichier converti
        set FRef to open for access (file F_Dest) with write permission
        set AppleScript's text item delimiters to SepCSV
        set Ligne_Pre to false
        set ligne_type3 to {"Date", "Nature", "Debit", "Credit", "Devise", "DateValeur", "Libelle"} -- les txt n'aiment pas les accents !
        set Releve to paragraphs of (read file F_Source)
        repeat with une_Ligne in Releve
            set Ligne_list to une_Ligne's text items
            if Date_Valide(text item 1 of Ligne_list) then
                -- on enregsitre la ligne de type 3
                set Ligne_finale to (ligne_type3 as text) & return
                write Ligne_finale to FRef -- enregistrement
                set ligne_type3 to Ligne_list
                set Ligne_Pre to true
            else
                if Ligne_Pre then -- il y a une date valide dans une ligne précédente, donc on ajoute Nature à la valeur Nature de la ligne valide précédente
                    set text item 2 of ligne_type3 to text item 2 of ligne_type3 & TSep & text item 2 of Ligne_list
                end if
            end if
        end repeat
        set Ligne_finale to (ligne_type3 as text)
        write Ligne_finale to FRef -- enregistrement
        close access FRef
    end Conversion
     
     
    on Date_Valide(S) -- renvoie True si S contient une date valide comme jj/mm/aaaa
        -- Attention: Applescript converti les dates avec une certaine flexibilité: par exemple le 33/05/2025 sera converti en 02/06/2025 !!
        if (count of S) is not 10 then return false
        try
            if day of (date S) > 31 then return false
            if month of (date S) > 12 then return false
            if (year of (date S) < 2000) or (year of (date S) > 2100) then return false -- je doute que cela soit utilisé après 2100 !!
        on error
            return false
        end try
        return true
    end Date_Valide

  3. #3
    Candidat au Club
    Homme Profil pro
    Artisan
    Inscrit en
    Février 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Artisan

    Informations forums :
    Inscription : Février 2025
    Messages : 3
    Par défaut
    Bonsoir PBELL,

    merci pour ton aide.
    Je viens d'essayer le script mais après avoir choisit le dossier de destination du fichier j'obtiens l'erreur suivante.
    Nom : Capture d’écran 2025-02-09 à 21.18.55.png
Affichages : 29
Taille : 19,5 Ko

    EDIT:

    Je me suis aperçu que le script fonctionne avec un fichier que j'ai ouvert et exporté en csv et non pas directement téléchargé depuis le site de ma banque au format csv.
    Lorsque la manipulation d'exportation est faite, le fichier créé fonctionne, j'ai remarqué qu'il était créé avec l'extension masqué cependant, si je vais dans "lire les informations" d'un fichier qui ne fonctionne pas avec le script, que je coche la case "masquer l'extension" celui-ci ne fonctionne toujours pas.
    Une idée ?

    Aussi serait-il possible de:
    1- supprimer le style gras des polices
    2- supprimer les fonds colorés des cellules
    3- mettre les cellules date , date de valeur avec le format de donnée date (date jj/mm/aaaa) et heure (aucun)
    4- debit et crédit au format de données devise euros avec deux chiffres après la virgule.

  4. #4
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour BipBip33,

    Citation Envoyé par BipBip33 Voir le message
    Je viens d'essayer le script mais après avoir choisit le dossier de destination du fichier j'obtiens l'erreur suivante.
    L'erreur indique que ton fichier source contient des lignes totalement vides, ce qui n'était pas le cas du fichier d'exemple que tu avais partagé initialement. Dans ce cas, la décomposition d'une ligne vide ne contient aucun item (des morceaux de texte séparés par des : donc impossible au script de prendre le premier item pour tester si c'est une date !
    J'ai ajouter ce test dans une nouvelle version ci-dessous.


    Citation Envoyé par BipBip33 Voir le message
    Je me suis aperçu que le script fonctionne avec un fichier que j'ai ouvert et exporté en csv et non pas directement téléchargé depuis le site de ma banque au format csv.
    Lorsque la manipulation d'exportation est faite, le fichier créé fonctionne, j'ai remarqué qu'il était créé avec l'extension masqué cependant, si je vais dans "lire les informations" d'un fichier qui ne fonctionne pas avec le script, que je coche la case "masquer l'extension" celui-ci ne fonctionne toujours pas.
    Une idée ?
    J'ai effectivement écrit le script avec le fichier d'exemple que tu m'as envoyé. Si le fichier original de ta banque est différent, le script doit être adapté. Mais pour savoir comment, il me faut l'original ! J'imagine que tu ne souhaites pas le mettre à disposition de tous sur ce site. Si tu veux, tu peux me l'envoyer en message privé sur ce site.

    Citation Envoyé par BipBip33 Voir le message
    Aussi serait-il possible de:
    1- supprimer le style gras des polices
    2- supprimer les fonds colorés des cellules
    3- mettre les cellules date , date de valeur avec le format de donnée date (date jj/mm/aaaa) et heure (aucun)
    4- debit et crédit au format de données devise euros avec deux chiffres après la virgule.
    Ton commentaire me laisse perplexe, car les fichier CSV ne contiennent pas, en principe de balise de gras, couleurs,...
    A moins que le fichier de ta banque soit en fait un autre format...
    Enfin, le format de date est bien une date dans le fichier d'exemple jj/mm/aaaa donc il devrait être lisible tel quel dans Numbers (Il l'est dans Excel lorsque j'ouvre le scv.

    Cordialement

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    property SepCSV : ";" -- separateur de CSV
    property TSep : "| " -- separateur des lignes dans le champs Nature
     
    (* Format source : fichier CSV
    Le fichier contient 3 types de lignes:
    1) lignes sans date valide et qui ne suivent pas un ligne avec date valide -> on ne fait rien
    2) lignes sans date valide et qui suivent une ligne avec date valide -> on ajoute la Nature à la Nature de la ligne type 3 qui précéde
    3) lignes avec date valide, Nature, Debit, Credit, Devise, Date_valeur, Libelle -> on enregistre
        
    *)
     
    global F_Source -- le fichier source csv
    global F_Dest -- le fichier converti
    global FRef -- La référence du fichier converti à écrire
    global Ligne_Pre -- true si une ligne précedente est de type 3
     
    on run -- utilisé lorsqu'on lance le script comme application: il demande le fichier source et destination
        set F_Source to (choose file with prompt ("Selection du fichier CSV à traiter")) as string
        set F_Dest to ((choose file name with prompt ("Nom et emplacement du fichier converti")) as string) & ".csv"
        Conversion()
    end run
     
    on open (Liste_Fichier) -- utilisé lorsqu'on drope un ou plusieurs fichiers source sur l'icone de l'application
        repeat with Un_Fichier in Liste_Fichier
            -- determine le fichier destination par ajout de (converti) en fin de nom de fichier, avant l'extension
            tell application "Finder" to set MExt to name extension of item Un_Fichier
            set F_Source to (Un_Fichier as string) -- converti le type fichier en string (chemin:fichier.csv)
            set F_Dest to text 1 thru ((count of F_Source) - (count of MExt) - 1) of F_Source -- supprime l'extension et le . à la fin du nom
            set F_Dest to F_Dest & "(converti).csv" -- rajoute le suffixe (converti) et l'extension .csv
            Conversion()
        end repeat
    end open
     
    on Conversion() -- lecture des lignes du fichier source et écriture des lignes du fichier converti
        set FRef to open for access (file F_Dest) with write permission
        set AppleScript's text item delimiters to SepCSV
        set Ligne_Pre to false
        set ligne_type3 to {"Date", "Nature", "Debit", "Credit", "Devise", "DateValeur", "Libelle"} -- les txt n'aiment pas les accents !
        set Releve to paragraphs of (read file F_Source)
        repeat with une_Ligne in Releve
            if une_Ligne is not "" then
                set Ligne_list to une_Ligne's text items
                if Date_Valide(text item 1 of Ligne_list) then
                    -- on enregsitre la ligne de type 3
                    set Ligne_finale to (ligne_type3 as text) & return
                    write Ligne_finale to FRef -- enregistrement
                    set ligne_type3 to Ligne_list
                    set Ligne_Pre to true
                else
                    if Ligne_Pre then -- il y a une date valide dans une ligne précédente, donc on ajoute Nature à la valeur Nature de la ligne valide précédente
                        set text item 2 of ligne_type3 to text item 2 of ligne_type3 & TSep & text item 2 of Ligne_list
                    end if
                end if
            end if
        end repeat
        set Ligne_finale to (ligne_type3 as text)
        write Ligne_finale to FRef -- enregistrement
        close access FRef
    end Conversion
     
     
    on Date_Valide(S) -- renvoie True si S contient une date valide comme jj/mm/aaaa
        -- Attention: Applescript converti les dates avec une certaine flexibilité: par exemple le 33/05/2025 sera converti en 02/06/2025 !!
        if (count of S) is not 10 then return false
        try
            if day of (date S) > 31 then return false
            if month of (date S) > 12 then return false
            if (year of (date S) < 2000) or (year of (date S) > 2100) then return false -- je doute que cela soit utilisé après 2100 !!
        on error
            return false
        end try
        return true
    end Date_Valide

  5. #5
    Candidat au Club
    Homme Profil pro
    Artisan
    Inscrit en
    Février 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Artisan

    Informations forums :
    Inscription : Février 2025
    Messages : 3
    Par défaut
    Je viens de tester à l'instant et j'ai le même message d'erreur.

    Ton commentaire me laisse perplexe, car les fichier CSV ne contiennent pas, en principe de balise de gras, couleurs,...
    A moins que le fichier de ta banque soit en fait un autre format...
    Enfin, le format de date est bien une date dans le fichier d'exemple jj/mm/aaaa donc il devrait être lisible tel quel dans Numbers (Il l'est dans Excel lorsque j'ouvre le scv.
    Cela doit-être en l'ouvrant dans numbers qu'il est affiché ainsi, comme tu le dis et comme j'y ai pensé après coup le fichier texte ne doit pas contenir de format de style.

    J'imagine que tu ne souhaites pas le mettre à disposition de tous sur ce site. Si tu veux, tu peux me l'envoyer en message privé sur ce site.
    C'est effectivement le problème.
    Mais sans cela tu ne pourras pas essayer dans les conditions réelles.
    Je t'envoie un fichier original, non retouché en mp.

  6. #6
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour,
    Voici donc, après quelques corrections et améliorations, le script final:
    - Adaptation en fonction du fichier de relevé initial (un cvs donc chaque champs et encadré par des ", possibilité de lignes vides)
    - le script ne renvoie plus un fichier cvs, mais insère les données dans une nouvelle feuille Numbers
    - mise en forme dans Numbers (largeur de colonnes, format des nombres, alignement)

    Bonne journée à tous

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    property SepCSV : ";" -- separateur de CSV
    property TSep : "| " -- separateur des lignes dans le champs Nature
     
    (* Format source : fichier CSV
    Le fichier contient 3 types de lignes:
    1) lignes sans date valide et qui ne suivent pas un ligne avec date valide (y compris un ligne vide)-> on ne fait rien
    2) lignes sans date valide et qui suivent une ligne avec date valide -> on ajoute la Nature à la Nature de la ligne type 3 qui précéde
    3) lignes avec date valide, Nature, Debit, Credit, Devise, Date_valeur, Libelle -> on enregistre
        
    *)
     
    global F_Source -- le fichier source csv
    global Ligne_Pre -- true si une ligne précedente est de type 3
     
    on run -- utilisé lorsqu'on lance le script comme application: il demande le fichier source et destination
        set F_Source to (choose file with prompt ("Selection du fichier CSV à traiter")) as string
        Conversion()
    end run
     
    on open (Liste_Fichier) -- utilisé lorsqu'on drope un ou plusieurs fichiers source sur l'icone de l'application
        repeat with Un_Fichier in Liste_Fichier
            set F_Source to first item of Liste_Fichier
            Conversion()
        end repeat
    end open
     
    on Conversion() -- lecture des lignes du fichier source et écriture des lignes du fichier converti
        set L_Numbers to 1 -- creation d'un document Numbers vide et sans couleurs
        tell application "Numbers"
            activate
            make new document
            tell first table of active sheet of front document
                set header row count to 0
                set header column count to 0
                set name to "" -- "Relevé bancaire"
                set row count to 60 -- defini le nombre de lignes maxi pour les données d'un relevé
                set width of column 1 to 70
                set width of column 2 to 200
                set width of column 3 to 60
                set width of column 4 to 60
                set width of column 5 to 42
                set width of column 6 to 70
                set width of column 7 to 200
                set myrange to column 1
                tell myrange to set alignment to center
                set myrange to column 6
                tell myrange to set alignment to center
                set myrange to column "C"
                tell myrange to set format to currency
                set myrange to column "D"
                tell myrange to set format to currency
            end tell
        end tell
     
        set AppleScript's text item delimiters to SepCSV
        set Ligne_Pre to false
        set T3_Date to "Date"
        set T3_Nature to "Nature"
        set T3_Debit to "Débit"
        set T3_Credit to "Crédit"
        set T3_Devise to "Devise"
        set T3_DateVal to "Date Valeur"
        set T3_Libelle to "Libellé"
        set ligne_type3 to {"Date", "Nature", "Debit", "Credit", "Devise", "DateValeur", "Libelle"} -- les txt n'aiment pas les accents !
        set Releve to paragraphs of (read file F_Source)
        repeat with une_Ligne in Releve
     
            set Ligne_list to une_Ligne's text items
            if (count of une_Ligne) > 7 then -- on ne traite que les lignes avec 7 items
                if Date_Valide(Sup_Guillemets(text item 1 of Ligne_list)) then
                    -- on enregistre la ligne de type 3
                    tell application "Numbers" to tell first table of active sheet of front document
                        set value of cell L_Numbers of column 1 to T3_Date
                        set value of cell L_Numbers of column 2 to T3_Nature
                        set value of cell L_Numbers of column 3 to T3_Debit
                        set value of cell L_Numbers of column 4 to T3_Credit
                        set value of cell L_Numbers of column 5 to T3_Devise
                        set value of cell L_Numbers of column 6 to T3_DateVal
                        set value of cell L_Numbers of column 7 to T3_Libelle
                    end tell
                    set L_Numbers to L_Numbers + 1
                    -- on assigne les nouvelles valeurs
                    set T3_Date to Sup_Guillemets(text item 1 of Ligne_list)
                    set T3_Nature to Sup_Guillemets(text item 2 of Ligne_list)
                    set T3_Debit to Sup_Guillemets(text item 3 of Ligne_list)
                    set T3_Credit to Sup_Guillemets(text item 4 of Ligne_list)
                    set T3_Devise to Sup_Guillemets(text item 5 of Ligne_list)
                    set T3_DateVal to Sup_Guillemets(text item 6 of Ligne_list)
                    set T3_Libelle to Sup_Guillemets(text item 7 of Ligne_list)
                    set Ligne_Pre to true
                else
                    if Ligne_Pre then -- il y a une date valide dans une ligne précédente, donc on ajoute Nature à la valeur Nature de la ligne valide précédente
                        set T3_Nature to T3_Nature & TSep & Sup_Guillemets(text item 2 of Ligne_list)
                    end if
                end if
            end if
        end repeat
        tell application "Numbers" to tell first table of active sheet of front document
            set value of cell L_Numbers of column 1 to T3_Date
            set value of cell L_Numbers of column 2 to T3_Nature
            set value of cell L_Numbers of column 3 to T3_Debit
            set value of cell L_Numbers of column 4 to T3_Credit
            set value of cell L_Numbers of column 5 to T3_Devise
            set value of cell L_Numbers of column 6 to T3_DateVal
            set value of cell L_Numbers of column 7 to T3_Libelle
        end tell
    end Conversion
     
     
    on Date_Valide(S) -- renvoie True si S contient une date valide comme jj/mm/aaaa
        -- Attention: Applescript converti les dates avec une certaine flexibilité: par exemple le 33/05/2025 sera converti en 02/06/2025 !!
        if (count of S) is not 10 then return false
        try
            if day of (date S) > 31 then return false
            if month of (date S) > 12 then return false
            if (year of (date S) < 2000) or (year of (date S) > 2100) then return false -- je doute que cela soit utilisé après 2100 !!
        on error
            return false
        end try
        return true
    end Date_Valide
     
    on Sup_Guillemets(S) -- supprimer les guillemets au début et la la fin, si il y en a (code ASCII = 34)
        set S0 to S
        if id of first character of S is 34 then
            set S to text 2 thru -1 of S
        end if
        if id of last character of S is 34 then
            if (count of S) > 1 then
                set S to text 1 thru ((count of S) - 1) of S
            else
                set S to ""
            end if
        end if
        return S
    end Sup_Guillemets

Discussions similaires

  1. [XL-2010] Aide pour la création d'un script
    Par oboigelot dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/04/2013, 11h46
  2. aide pour le choix d'un script social
    Par swissman dans le forum Débuter
    Réponses: 3
    Dernier message: 02/10/2012, 14h01
  3. Aide pour le dév. d'un script disclaimer
    Par bluebloy24 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 09/05/2012, 09h14
  4. [E-03] Besoin d'aide pour l'adaptation d'un script vba sur excel
    Par Tinien dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/02/2009, 11h17
  5. aide pour traduire un bout de script php
    Par maximenet dans le forum ASP
    Réponses: 1
    Dernier message: 04/10/2007, 00h14

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