Aide création AppleScript

DoiY

Membre confirmé
3 Mai 2020
41
1
45
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
1 - What I got.webp2 - What I want.webp
 
Bonjour,

J'ai répondu à ton message sur le site "Macbidouille"
Je te remet le script ici...

Tu ouvres ton fichier csv dans numbers puis tu exécutes le script . Il crée une nouvelle feuille dans laquelle il copie les éléments suivant ta demande...

Tu testes , et tu me dis si cela te convient

Bloc de code:
--créer une nouvelle feuille
tell application "Numbers"
    activate
    tell document 1
        make new sheet
        tell active sheet
            delete every table
            set thesheet to make new table with properties {row count:2, column count:7}
        end tell
    end tell
   
    -- copier les titres de colonnes
    set colonne to {"A", "B", "C", "D", "E", "F", "G"}
    repeat with i from 1 to 7
       
        set lacolonne to item i of colonne
       
        tell the first table of sheet 1 of front document
            set titre to value of cell (lacolonne & "7")
           
        end tell
        tell the first table of sheet 2 of front document
            set value of cell (lacolonne & "1") to titre
        end tell
    end repeat
end tell

set laligne to 8
set laligneplus to 8
set laligneB to 2

tell application "Numbers"
    activate
    tell the first table of sheet 1 of front document
        set nbligne to count row
    end tell
end tell


-- Concatenner et copier les mouvements
tell application "Numbers"
    activate
   
    repeat
        if laligne > nbligne then exit repeat
        tell the first table of sheet 1 of front document
            set ladate to value of cell ("A" & laligne)
            set nature to value of cell ("B" & laligne)
           
            repeat
                set laligneplus to laligneplus + 1
                if laligneplus > nbligne then exit repeat
                set x to value of cell ("A" & laligneplus)
               
                if x is missing value then
                    set nature to nature & " " & value of cell ("B" & laligneplus)
                else
                    exit repeat
                end if
            end repeat
            set debit to value of cell ("c" & laligne)
            set credit to value of cell ("D" & laligne)
            set devise to value of cell ("E" & laligne)
            set datevaleur to value of cell ("F" & laligne)
            set libelle to value of cell ("G" & laligne)
        end tell
       
       
       
        tell the first table of sheet 2 of front document
            set value of cell ("A" & laligneB) to ladate
            set value of cell ("B" & laligneB) to nature
            set value of cell ("C" & laligneB) to debit
            set value of cell ("D" & laligneB) to credit
            set value of cell ("E" & laligneB) to devise
            set value of cell ("F" & laligneB) to datevaleur
            set value of cell ("G" & laligneB) to libelle
            add row below last row
        end tell
        set laligneB to laligneB + 1
        set laligne to laligneplus
    end repeat
   
   
    tell the first table of sheet 2 of front document
        set value of cell ("A" & laligneB) to ladate
        set value of cell ("B" & laligneB) to nature
        set value of cell ("C" & laligneB) to debit
        set value of cell ("D" & laligneB) to credit
        set value of cell ("E" & laligneB) to devise
        set value of cell ("F" & laligneB) to datevaleur
        set value of cell ("G" & laligneB) to libelle
    end tell
   
end tell
 
Bonjour Zeltron54

:hushed: Magnifique...
Cela semble fonctionner parfaitement, je vais l'essayer sur un fichier original.
Est-il possible, lors du lancement de ce script, qu'il aille chercher le fichier qui est à l'origine au format .CSV, dans le dossier téléchargement du Mac?
Le fichier aura toujours le même nom disons 003600360036.csv.
J'aurais aussi besoin d'avoir aucun remplissage de couleur de cellule et aucune police grasse.

En attendant, merci beaucoup pour ce premier jet.:smiley:
 
Bonjour,
@Gerapp38 Je vois que tu es toujours très attentif :D :hand:

@DoiY
Essai ce script !

Numbers étant fermé.
Tu lances ce script, il ouvre ton fichier "003600360036.csv" qui doit se trouver dans ton dossier téléchargement.
Puis il copie les valeurs dans la nouvelle feuille qui n' a pas de colonne ni de ligne "titre" donc sans couleur et sans police grasse.

J'attend ton retour.

Bloc de code:
set chemin to ((path to home folder) & "downloads:003600360036.csv") as string
set chemin to chemin as alias

--créer une nouvelle feuille
tell application "Numbers"
    activate
    open chemin
    tell document 1
        make new sheet
        tell active sheet
            delete every table
            set thesheet to make new table with properties {row count:3, column count:8}
        end tell
    end tell
    tell the first table of sheet 2 of front document
        remove column 1
        remove row 1
    end tell
   
    -- copier les titres de colonnes
    set colonne to {"A", "B", "C", "D", "E", "F", "G"}
    repeat with i from 1 to 7
       
        set lacolonne to item i of colonne
       
        tell the first table of sheet 1 of front document
            set titre to value of cell (lacolonne & "7")
           
        end tell
        tell the first table of sheet 2 of front document
            set value of cell (lacolonne & "1") to titre
        end tell
    end repeat
end tell

set laligne to 8
set laligneplus to 8
set laligneB to 2

tell application "Numbers"
    activate
    tell the first table of sheet 1 of front document
        set nbligne to count row
    end tell
end tell


-- Concatenner et copier les mouvements
tell application "Numbers"
    activate
   
    repeat
        if laligne > nbligne then exit repeat
        tell the first table of sheet 1 of front document
            set ladate to value of cell ("A" & laligne)
            set nature to value of cell ("B" & laligne)
           
            repeat
                set laligneplus to laligneplus + 1
                if laligneplus > nbligne then exit repeat
                set x to value of cell ("A" & laligneplus)
               
                if x is missing value then
                    set nature to nature & " " & value of cell ("B" & laligneplus)
                else
                    exit repeat
                end if
            end repeat
            set debit to value of cell ("c" & laligne)
            set credit to value of cell ("D" & laligne)
            set devise to value of cell ("E" & laligne)
            set datevaleur to value of cell ("F" & laligne)
            set libelle to value of cell ("G" & laligne)
        end tell
       
       
       
        tell the first table of sheet 2 of front document
            set value of cell ("A" & laligneB) to ladate
            set value of cell ("B" & laligneB) to nature
            set value of cell ("C" & laligneB) to debit
            set value of cell ("D" & laligneB) to credit
            set value of cell ("E" & laligneB) to devise
            set value of cell ("F" & laligneB) to datevaleur
            set value of cell ("G" & laligneB) to libelle
            add row below last row
        end tell
        set laligneB to laligneB + 1
        set laligne to laligneplus
    end repeat
   
   
    tell the first table of sheet 2 of front document
        set value of cell ("A" & laligneB) to ladate
        set value of cell ("B" & laligneB) to nature
        set value of cell ("C" & laligneB) to debit
        set value of cell ("D" & laligneB) to credit
        set value of cell ("E" & laligneB) to devise
        set value of cell ("F" & laligneB) to datevaleur
        set value of cell ("G" & laligneB) to libelle
    end tell
   
end tell
 
Merveilleux,

cela fonctionne comme un charme.
Voilà un script qui va me faire gagner beaucoup de temps, je t'en remercie infiniment.

Existe t-il un moyen plus rapide, pour lancer un script, que d'ouvrir AppleScript, comme la création d'un bouton par exemple?
Avec automator peut-être ?
 
Il te suffit d'enregistrer le script en tant qu' application. ensuite un simple double clic dessus le lancera.
Lors de la première utilisation il te demandera les autorisations système d'accès....

Pour l'enregistrer dans "Editeur de script" un "enregistrer sous" et dans la format choisir "application".
 
Bon OK, je considérais que seul le document concerné était ouvert.

Je modifie , et je travaille donc sur le document qui s'appelle "003600360036" Attention il devra toujours avoir ce nom !

voila le script modifié.
Bloc de code:
set mondoc to "003600360036"
set chemin to ((path to home folder) & "downloads:" & mondoc & ".csv") as string
set chemin to chemin as alias
set mondoc to "003600360036"

--créer une nouvelle feuille
tell application "Numbers"
    activate
    open chemin
    tell document mondoc
        make new sheet
        tell active sheet
            delete every table
            set thesheet to make new table with properties {row count:3, column count:8}
        end tell
    end tell
    tell the first table of sheet 2 of document mondoc
        remove column 1
        remove row 1
    end tell
    
    -- copier les titres de colonnes
    set colonne to {"A", "B", "C", "D", "E", "F", "G"}
    repeat with i from 1 to 7
        
        set lacolonne to item i of colonne
        
        tell the first table of sheet 1 of document mondoc
            set titre to value of cell (lacolonne & "7")
            
        end tell
        tell the first table of sheet 2 of document mondoc
            set value of cell (lacolonne & "1") to titre
        end tell
    end repeat
end tell

set laligne to 8
set laligneplus to 8
set laligneB to 2

tell application "Numbers"
    activate
    tell the first table of sheet 1 of document mondoc
        set nbligne to count row
    end tell
end tell


-- Concatenner et copier les mouvements
tell application "Numbers"
    activate
    
    repeat
        if laligne > nbligne then exit repeat
        tell the first table of sheet 1 of document mondoc
            set ladate to value of cell ("A" & laligne)
            set nature to value of cell ("B" & laligne)
            
            repeat
                set laligneplus to laligneplus + 1
                if laligneplus > nbligne then exit repeat
                set x to value of cell ("A" & laligneplus)
                
                if x is missing value then
                    set nature to nature & " " & value of cell ("B" & laligneplus)
                else
                    exit repeat
                end if
            end repeat
            set debit to value of cell ("c" & laligne)
            set credit to value of cell ("D" & laligne)
            set devise to value of cell ("E" & laligne)
            set datevaleur to value of cell ("F" & laligne)
            set libelle to value of cell ("G" & laligne)
        end tell
        
        
        
        tell the first table of sheet 2 of document mondoc
            set value of cell ("A" & laligneB) to ladate
            set value of cell ("B" & laligneB) to nature
            set value of cell ("C" & laligneB) to debit
            set value of cell ("D" & laligneB) to credit
            set value of cell ("E" & laligneB) to devise
            set value of cell ("F" & laligneB) to datevaleur
            set value of cell ("G" & laligneB) to libelle
            add row below last row
        end tell
        set laligneB to laligneB + 1
        set laligne to laligneplus
    end repeat
    
    
    tell the first table of sheet 2 of document mondoc
        set value of cell ("A" & laligneB) to ladate
        set value of cell ("B" & laligneB) to nature
        set value of cell ("C" & laligneB) to debit
        set value of cell ("D" & laligneB) to credit
        set value of cell ("E" & laligneB) to devise
        set value of cell ("F" & laligneB) to datevaleur
        set value of cell ("G" & laligneB) to libelle
    end tell
    
end tell
 
Pas la moindre erreur :wave:.
Une dernière chose je l'espère :smile:.
Serait-il possible de faire en sorte que les colonnes:
ladate et datevaleur soient au format date et heure avec date sous la forme jj/mm/aaaa et heure sur aucun.
debit et credit soient au format devise, euros, avec deux décimales après la virgules.
 
Pour les colonnes date, la date est automatiquement reconnue par Numbers et elle est bien formatée comme telle (à droite dans la cellule)
J'ai ajouté ce format juste par acquis de conscience ...

J'ai ajouté le format devise en € pour les colonnes débit et crédit

J'espère que cela te convient ?

Bloc de code:
set mondoc to "003600360036"
set chemin to ((path to home folder) & "downloads:" & mondoc & ".csv") as string
set chemin to chemin as alias
set mondoc to "003600360036"

--créer une nouvelle feuille
tell application "Numbers"
    activate
    open chemin
    tell document mondoc
        make new sheet
        tell active sheet
            delete every table
            set thesheet to make new table with properties {row count:3, column count:8}
        end tell
    end tell
    tell the first table of sheet 2 of document mondoc
        remove column 1
        remove row 1
    end tell
   
    -- copier les titres de colonnes
    set colonne to {"A", "B", "C", "D", "E", "F", "G"}
    repeat with i from 1 to 7
       
        set lacolonne to item i of colonne
       
        tell the first table of sheet 1 of document mondoc
            set titre to value of cell (lacolonne & "7")
           
        end tell
        tell the first table of sheet 2 of document mondoc
            set value of cell (lacolonne & "1") to titre
        end tell
    end repeat
end tell

set laligne to 8
set laligneplus to 8
set laligneB to 2

tell application "Numbers"
    activate
    tell the first table of sheet 1 of document mondoc
        set nbligne to count row
    end tell
end tell


-- Concatenner et copier les mouvements
tell application "Numbers"
    activate
   
    repeat
        if laligne > nbligne then exit repeat
        tell the first table of sheet 1 of document mondoc
            set ladate to value of cell ("A" & laligne)
            set nature to value of cell ("B" & laligne)
           
            repeat
                set laligneplus to laligneplus + 1
                if laligneplus > nbligne then exit repeat
                set x to value of cell ("A" & laligneplus)
               
                if x is missing value then
                    set nature to nature & " " & value of cell ("B" & laligneplus)
                else
                    exit repeat
                end if
            end repeat
            set debit to value of cell ("c" & laligne)
            set credit to value of cell ("D" & laligne)
            set devise to value of cell ("E" & laligne)
            set datevaleur to value of cell ("F" & laligne)
            set libelle to value of cell ("G" & laligne)
        end tell
       
        tell the first table of sheet 2 of document mondoc
            set value of cell ("A" & laligneB) to ladate
            set value of cell ("B" & laligneB) to nature
            set value of cell ("C" & laligneB) to debit
            set value of cell ("D" & laligneB) to credit
            set value of cell ("E" & laligneB) to devise
            set value of cell ("F" & laligneB) to datevaleur
            set value of cell ("G" & laligneB) to libelle
            add row below last row
        end tell
        set laligneB to laligneB + 1
        set laligne to laligneplus
    end repeat
   
   
    tell the first table of sheet 2 of document mondoc
        set value of cell ("A" & laligneB) to ladate
        set value of cell ("B" & laligneB) to nature
        set value of cell ("C" & laligneB) to debit
        set value of cell ("D" & laligneB) to credit
        set value of cell ("E" & laligneB) to devise
        set value of cell ("F" & laligneB) to datevaleur
        set value of cell ("G" & laligneB) to libelle
    end tell
   
    tell the first table of sheet 2 of document mondoc
        set the selection range to column "C"
        set format of selection range to currency
        set the selection range to column "D"
        set format of selection range to currency
        set the selection range to column "A"
        set format of selection range to date and time
        set the selection range to column "F"
        set format of selection range to date and time

    end tell
end tell
 
Dernière édition:
Je ne t'ai pas précisé, mais on ne peut agir que sur le format général, pas les sous-format.

Lorsque l'on met format devise, il utilise le format défini dans le système et celui défini dans numbers, il en est de même pour le format date qui sera celui par défaut dans numbers...
 
J'ai remarqué que lorsqu'il n'y avait qu'une seule opération dans le fichier initial, celle-ci apparait en double dans le tableau final.
Autre point, dans certains cas le fichier d'origine peut ne pas avoir de données dans certaines cellules, dans le cas présent c'est une opération qui n'affiche pas de données dans la cellule libellé. Le script trouve alors une erreur.
Est-il possible de corriger cela ?
 
Dernière édition:
Bonjour,

pour le problème de l'affichage en double le bug est corrigé !
Par contre je n'ai pas réussi à reproduire ton problème de libellé vide, chez moi il laisse la cellule vide et cela ne provoque pas d' erreurs...

il me faudrait un fichier csv qui provoque cette erreur !

le script qui chez moi fonctionne:

Bloc de code:
set mondoc to "003600360036"
set chemin to ((path to home folder) & "downloads:" & mondoc & ".csv") as string
set chemin to chemin as alias
set mondoc to "003600360036"

--créer une nouvelle feuille
tell application "Numbers"
    activate
    open chemin
    tell document mondoc
        make new sheet
        tell active sheet
            delete every table
            set thesheet to make new table with properties {row count:2, column count:8}
        end tell
    end tell
    tell the first table of sheet 2 of document mondoc
        remove column 1
        remove row 1
    end tell
    
    -- copier les titres de colonnes
    set colonne to {"A", "B", "C", "D", "E", "F", "G"}
    repeat with i from 1 to 7
        
        set lacolonne to item i of colonne
        
        tell the first table of sheet 1 of document mondoc
            set titre to value of cell (lacolonne & "7")
            
        end tell
        tell the first table of sheet 2 of document mondoc
            set value of cell (lacolonne & "1") to titre
        end tell
    end repeat
end tell

set laligne to 8
set laligneplus to 8
set laligneB to 2

tell application "Numbers"
    activate
    tell the first table of sheet 1 of document mondoc
        set nbligne to count row
    end tell
end tell


-- Concatenner et copier les mouvements
tell application "Numbers"
    activate
    
    repeat
        if laligne > nbligne then exit repeat
        tell the first table of sheet 1 of document mondoc
            set ladate to value of cell ("A" & laligne)
            set nature to value of cell ("B" & laligne)
            
            repeat
                set laligneplus to laligneplus + 1
                if laligneplus > nbligne then exit repeat
                set x to value of cell ("A" & laligneplus)
                
                if x is missing value then
                    set nature to nature & " " & value of cell ("B" & laligneplus)
                else
                    exit repeat
                end if
            end repeat
            set debit to value of cell ("c" & laligne)
            set credit to value of cell ("D" & laligne)
            set devise to value of cell ("E" & laligne)
            set datevaleur to value of cell ("F" & laligne)
            set libelle to value of cell ("G" & laligne)
        end tell
        
        tell the first table of sheet 2 of document mondoc
            add row below last row
            set value of cell ("A" & laligneB) to ladate
            set value of cell ("B" & laligneB) to nature
            set value of cell ("C" & laligneB) to debit
            set value of cell ("D" & laligneB) to credit
            set value of cell ("E" & laligneB) to devise
            set value of cell ("F" & laligneB) to datevaleur
            set value of cell ("G" & laligneB) to libelle
            
        end tell
        
        
        
        set laligneB to laligneB + 1
        set laligne to laligneplus
    end repeat
    
    
    tell the first table of sheet 2 of document mondoc
        set the selection range to column "C"
        set format of selection range to currency
        set the selection range to column "D"
        set format of selection range to currency
        set the selection range to column "A"
        set format of selection range to date and time
        set the selection range to column "F"
        set format of selection range to date and time
        
    end tell
end tell
 
Effectivement je n'ai pas réussi à créer l'erreur du libellé vide mais j'en obtiens une autre.
Je te joins le fichier csv qui crée l'erreur chez moi.
Le code erreur est le suivant:
error "Erreur dans Numbers : Il est impossible d’obtenir document \"0036700027000854\"." number -1728 from document "0036700027000854".
0036700027000854 est le numéro que je substitue à 003600360036

azerty;;;;;;
FRxxxxxx;Compte à moi;;;;;
CTE CTE;;;;;;
Solde au;04/02/2025;;;;;
Solde;1234;EUR;;;;
;;;;;;
Date;Nature de l'opération;Débit;Crédit;Devise;Date de valeur;Libellé interbancaire
27/01/2025;VIR RECU 12345;;1;EUR;27/01/2025;AUTRES VIREMENTS RECUS
;DE: M. dupons;;;;;
;MOTIF: ..;;;;;
;REF: NOT PROVIDED;;;;;
27/01/2025;CARTE X 24/01;-1,99;;EUR;27/01/2025;FACTURES CARTES PAYEES
;COMMERCE ELECTRONIQUE;;;;;
27/01/2025;CARTE X 25/01 marché;-40,00;;EUR;27/01/2025;FACTURES CARTES PAYEES
27/01/2025;CARTE X 25/01 sport;-90,00;;EUR;27/01/2025;FACTURES CARTES PAYEES
28/01/2025;PRELEVEMENT EUROPEEN 12345;-58,643;;EUR;28/01/2025;PRELEVEMENTS EUROPEENS EMIS
;DE: elec;;;;;
;ID: xxxxx;;;;;
;MOTIF: MONSIEUR dupons Ref elec25;;;;;
;1234 RUM:++M12345? 2025-;;;;;
29/01/2025;PRELEVEMENT EUROPEEN 1234;-1,39;;EUR;29/01/2025;PRELEVEMENTS EUROPEENS EMIS
;DE: telephone;;;;;
;ID: FR00000;;;;;
;REF: fmpmt-1234;;;;;
;MANDAT ++FM-1234;;;;;
30/01/2025;VIR RECU 1234;;124;EUR;30/01/2025;AUTRES VIREMENTS RECUS
;DE: smith;;;;;
;MOTIF: motif;;;;;
31/01/2025;VIR RECU 1234;;123,33;EUR;31/01/2025;AUTRES VIREMENTS RECUS
;DE: xxxxx;;;;;
;MOTIF: xxxxx;;;;;
;REF: 1234;;;;;
31/01/2025;CARTE X 30/01 men;-0,19;;EUR;31/01/2025;FACTURES CARTES PAYEES
;C E;;;;;
03/02/2025;VIR RECU 11111;;123,00;EUR;03/02/2025;AUTRES VIREMENTS RECUS
;DE: xxxxx;;;;;
;MOTIF: VIR xxx;;;;;
03/02/2025;PRELEVEMENT EUROPEEN 1234;-53,00;;EUR;03/02/2025;PRELEVEMENTS EUROPEENS EMIS
;DE: xxx;;;;;
;ELOPPEMENT DE;;;;;
;ID: FR01111;;;;;
;MOTIF: Prelevement xxxxx;;;;;
 
Dernière édition:
Je viens de faire un copié collé de ton fichier, et je n'ai pas d'erreur ! voila ce que j'obtiens.

Capture d’écran 2025-02-09 à 19.24.32.webp
 
C'est bizarre, chez moi il compile et s'arrête au milieu de son travail sur une ligne, pas toujours la même et me met le code erreur que je t'ai mis dans le précédent post.
Ce qui est bizzarre c'est que j'ai plusieurs fichiers avec différents codes et certains sont bien compilés jusqu'au bout et un en particulier bug.

Après avoir insisté, fermé le fichier relancé le code, bug, fermé le fichier relancé le code, celui-ci a fini par fonctionner.
Etrange comportement.
 
Dernière édition:
Ah! OK !
J'avais pas fait attention que tu changeais le nom du fichier.
Ce nom était répété 2 fois dans le script.
Donc voila le nouveau script avec le nom du fichier écrit une seule fois sur la première ligne, donc c'est celui que tu changeras.
Ou alors tu y met un nom générique et tu changes le nom du fichier CSV.

le script:
Bloc de code:
set mondoc to "0036700027000854"
set chemin to ((path to home folder) & "downloads:" & mondoc & ".csv") as string
set chemin to chemin as alias


--créer une nouvelle feuille
tell application "Numbers"
    activate
    open chemin
    tell document mondoc
        make new sheet
        tell active sheet
            delete every table
            set thesheet to make new table with properties {row count:2, column count:8}
        end tell
    end tell
    tell the first table of sheet 2 of document mondoc
        remove column 1
        remove row 1
    end tell
   
    -- copier les titres de colonnes
    set colonne to {"A", "B", "C", "D", "E", "F", "G"}
    repeat with i from 1 to 7
       
        set lacolonne to item i of colonne
       
        tell the first table of sheet 1 of document mondoc
            set titre to value of cell (lacolonne & "7")
           
        end tell
        tell the first table of sheet 2 of document mondoc
            set value of cell (lacolonne & "1") to titre
        end tell
    end repeat
end tell

set laligne to 8
set laligneplus to 8
set laligneB to 2

tell application "Numbers"
    activate
    tell the first table of sheet 1 of document mondoc
        set nbligne to count row
    end tell
end tell


-- Concatenner et copier les mouvements
tell application "Numbers"
    activate
   
    repeat
        if laligne > nbligne then exit repeat
        tell the first table of sheet 1 of document mondoc
            set ladate to value of cell ("A" & laligne)
            set nature to value of cell ("B" & laligne)
           
            repeat
                set laligneplus to laligneplus + 1
                if laligneplus > nbligne then exit repeat
                set x to value of cell ("A" & laligneplus)
               
                if x is missing value then
                    set nature to nature & " " & value of cell ("B" & laligneplus)
                else
                    exit repeat
                end if
            end repeat
            set debit to value of cell ("c" & laligne)
            set credit to value of cell ("D" & laligne)
            set devise to value of cell ("E" & laligne)
            set datevaleur to value of cell ("F" & laligne)
            set libelle to value of cell ("G" & laligne)
        end tell
       
        tell the first table of sheet 2 of document mondoc
            add row below last row
            set value of cell ("A" & laligneB) to ladate
            set value of cell ("B" & laligneB) to nature
            set value of cell ("C" & laligneB) to debit
            set value of cell ("D" & laligneB) to credit
            set value of cell ("E" & laligneB) to devise
            set value of cell ("F" & laligneB) to datevaleur
            set value of cell ("G" & laligneB) to libelle
           
        end tell
       
       
       
        set laligneB to laligneB + 1
        set laligne to laligneplus
    end repeat
   
   
    tell the first table of sheet 2 of document mondoc
        set the selection range to column "C"
        set format of selection range to currency
        set the selection range to column "D"
        set format of selection range to currency
        set the selection range to column "A"
        set format of selection range to date and time
        set the selection range to column "F"
        set format of selection range to date and time
       
    end tell
end tell
 
Je crois que ça le fait lorsque numbers est bien ouvert mais qu'aucun document n'est ouvert.

Edit: Oui enfin non même pas, j'ai l'erreur de temps en temps.....
 
Pour être sur et comprendre ce qui se passe je te propose de changer le première ligne du script en :
Bloc de code:
set mondoc to "monfichier"

et de faire des essais de tes fichiers csv en les renommant du nom de "monfichier" en gardant bien sur l'extension ".csv"
Et voir si comme cela tout fonctionne !

Le fichier aura toujours le même nom disons 003600360036.csv.
pourtant tu m'avais dit : ! ! ! :D