Aide création AppleScript

Peux-tu essayer ce script
au lancement il te demande de sélectionner le fichier
C'est pour vérifier s'il s'agit bien d'un problème de chemin
Bloc de code:
tell application "Finder"
    set chemin to choose file with prompt "Sélectionnez le fichier a traiter"
    set extension hidden of chemin to true
    set mondoc to displayed name of chemin
    set extension hidden of chemin to false
end tell

--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 ne comprend toujours pas !
Sans avoir l'erreur chez moi, il va m'être difficile de trouver ce qui pêche ....

Juste une question, après l'erreur ou en est le tableau qui devrait se construire sur la feuille 2 de numbers ?
 
Ça part toujours bien, le tableau se construit correctement jusqu'à la ligne 11 des fois 12 ou 19 c'est assez aléatoire mais il s'est rarement arrêté avant la ligne 10.
En général c'est à la fin de la construction de la ligne, dans la colonne libellé mais ça arrive aussi des fois lorsqu'il en est à la colonne débit.
Toujours à l'étape du remplissage de texte, avant de passer à l'étape de formatage des cellules.
 
Bon j'arrête pour ce soir !
je n'ai plus d'idée, pour où chercher ...
 
Bonjour,
Je continue de chercher ...

Une autre question, lorsque tu as l'erreur, peux-tu aller vérifier si dans la feuille 1 de numbers tu as bien le fichier original correct qui est rempli, vérifie bien si chaque mouvement est correct sur cette feuille .

Ce qui me surprend c'est que le script de PBell travaille exclusivement sur le fichier original, pas dans numbers, donc si il a aussi l'erreur c'est que cela provient du fichier original ! ou de ton ordi ...
 
Bonjour @zeltron54

Tout semble correct dans la feuille 1.
Je viens de lancer le dernier script qui a bloqué à la ligne 10 qui a été complètement rempli, dans la feuille 1 cette opération ne révèle rien d'anormal.
Je ferme le fichier numbers créé, je relance le script et là il est allé jusqu'à la ligne 18 intégralement rempli aussi.
Je ferme à nouveau le fichier numbers créé, je relance le script et là il est allé jusqu'à la ligne 16 toujours intégralement rempli.

Mais toujours le même message d'erreur
erreur -1728.webp
 
Bonjour,
nouvelle tentative
Bloc de code:
tell application "Finder"
    set chemin to choose file with prompt "Sélectionnez le fichier a traiter"
    set extension hidden of chemin to true
    set mondoc to displayed name of chemin
    set extension hidden of chemin to false
end tell

--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 front document
            activate
            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
            activate
            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 front document
        activate
        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
 
J’ai l’impression que c’est l’import csv qui bloque (si on part d’un fichier Numbers ça ne met pas l’erreur et Numbers semble attendre une validation du csv lors de l’import): il faut peut-être ouvrir le csv, l’enregistrer en .numbers puis embrayer sur le reste du script avec ce fichier .numbers ?
 
J'ai juste forcé la mise au premier plan du fichier numbers avant chaque lecture de données...
donc je vais pouvoir te mettre la sélection automatique du fichier dans téléchargement .

Voilà avec le nom "monfichier" sur la première ligne , tu sauras changer cela à ta convenance.

J'attends tes nouveaux tests, en espérant que ce soit bon ! je croise les doigts

Bloc de code:
set mondoc to "monfichier"
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 front document
            activate
            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
            activate
            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 front document
        activate
        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 tu as réussi.
Donc le problème était qu'au bout d'un moment le fichier n'était plus au premier plan et il perdait son chemin d'accès, en gros ?
En tous les cas et en espérant ne pas créer à nouveau une erreur, bravo et merci infiniment pour le temps passé à résoudre cela.
 
Content pour toi !
Il suffit de persévérer mais dur dur quand on n’ arrive pas à reproduire l’erreur.
 
Déjà très compliqué sans le fichier source, mais avec ce genre de documents sensibles il était compliqué de te le fournir.
Étrange que tu n'ai pas rencontres pas ce problème avec ton PC.

Tiens, petit casse tête plus simple je pense :yum: