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 : 56
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