Script ou Automatisation

Wolf_51

Membre actif
14 Mars 2016
142
8
50
Bonjour j’essaye de créer un script (grâce à l’aide de Chat GPT car je n’y connais rien)
Qui après attribution de raccourci me permettrait de supprimer 2 lignes d’espaces.
Exemple :

NOM CLIENT
ADRESSE
CP VILLE


TEL.
INFO

Deviendrait après exécution du script :

NOM CLIENT
ADRESSE
CP VILLE
TEL.
INFO
Je souhaiterais que le scripte sélectionne tous le texte présent dans le champ réservé à la saisie et y supprime toutes les lignes vierges

Après avoir questionné Chat GPT, celui-ci me propose de créer un script puis avec Automator de l'exécuter via un raccourci :


Nouvelle méthode : Créer un Service avec AppleScript

1️⃣ Ouvrir l’application “Script Editor”
Cmd + Espace, tape Éditeur de script et ouvre-le.

2️⃣ Créer un nouveau script
• Clique sur Fichier > Nouveau.

3️⃣ Copier et coller ce script
Copie-colle ce code dans l’Éditeur de Script :

Bloc de code:
set theText to (the clipboard) 
set newText to do shell script "pbpaste | sed '/^$/N;/^\\n$/D'" 
set the clipboard to newText 
display notification "Lignes vides supprimées !" with title "Action terminée"

4️⃣ Enregistrer comme Service
• Va dans Fichier > Exporter.
Nom du fichier : Supprimer lignes vides.
Format de fichier : Script (et non “Texte” !).
Enregistre-le dans :

Bloc de code:
~/Library/Services/



Ajouter aux Services macOS

1️⃣ Ouvre Automator
Cmd + Espace, tape Automator et ouvre-le.

2️⃣ Créer une nouvelle “Action rapide”
• Clique sur Fichier > Nouveau.
• Sélectionne “Action rapide” et clique sur “Choisir”.

3️⃣ Ajouter une action AppleScript
• Dans la barre de recherche à gauche, tape “Exécuter un script AppleScript”.
• Fais glisser l’action au centre.

4️⃣ Coller ce code dans Automator
Remplace le texte par ce code :

Bloc de code:
on run {input, parameters}
    do shell script "pbpaste | sed '/^$/N;/^\\n$/D' | pbcopy"
    display notification "Lignes vides supprimées !" with title "Action terminée"
end run

5️⃣ Enregistrer et tester
• Va dans Fichier > Enregistrer.
• Nom : “Supprimer lignes vides”.
• Emplacement : ~/Library/Services/.



Activer le raccourci clavier

1️⃣ Ouvre Réglages Système > Clavier > Raccourcis > Services.
2️⃣ Cherche “Supprimer lignes vides” dans “Texte” ou “Général”.
3️⃣ Coche la case et attribue un raccourci (ex. Cmd + Alt + L).



Tester dans TextEdit
Ouvre TextEdit, écris un texte avec des lignes vides.
Sélectionne tout le texte.
Appuie sur ton raccourci (Cmd + Alt + L).
• Un message “Lignes vides supprimées” devrait apparaître.



Si ça ne marche toujours pas :
1. Le service apparaît-il dans “Services” maintenant ?
2. Le raccourci fonctionne-t-il ?
3. As-tu bien enregistré l’AppleScript dans ~/Library/Services/ ?


On ajustera ensemble si besoin. On va y arriver !


-----


J'exécute toutes les étapes avec succès et je retrouve ma commande dans les raccourcis clavier à laquelle j'assigne le raccourci Cmd + Alt + L
Capture d’écran 2025-03-17 à 15.40.04.webp

Lorsque je teste dans "TextEdit", une fois mon texte sélectionné j'applique mon racourci.
je vois que le raccourci se lance (une petite roue apparait dans la barre de tache)
Mais aucune action n'est exécutée sur mon texte, les 2 lignes vides sont toujours la.

Quelqu'un pourrait-il m'aider svp :nerd_face:
 
Dernière édition:
Bonjour,

Pour essayer de te faire un script, il me faudrait plus d'éléments.
Je souhaiterais que le scripte sélectionne tous le texte présent dans le champ réservé à la saisie et y supprime toutes les lignes vierges
Ton texte à traiter se trouve dans un "champ" mais dans quelle application ? (TextEdit, Word, excel , pages, Numbers, autre...)
Dans la fenêtre ouverte de cette application , il n'y a que le texte à traiter ou d'autre champs à ne pas traiter ?

Autrement dit, peut-on faire, dans le menu de l'application, un "tout sélectionner", puis traiter la sélection ?
 
Bonjour,

Mes texte sont utilisé depuis les appli iMessage, WhatsApp, Notes, Pages, Numbers
En fait j'ai créé au fil du temps tout un tas de raccourcis depuis "Remplacement de texte" que j'utilise au quotidien et qui constituent ma liste de clients

Je les utilises
  • dans Numbers et page notamment pour envoyer mes devis et factures
  • mais également dans WhatsApp et iMessage pour envoyer les adresses clients a mes collaborateurs

J'emploie ce codes a longueur de journée (une bonne moyenne de 100 par jour à minima)
Et du coup, je supprime manuellement ces 2 lignes vides quand je m'en sers sur les messageries

Pour répondre à ta question : oui on peut tout sélectionner avant de traiter le scripte
 
Alors désolé, je ne sais pas comment faire.

Je sais faire un script pour traiter:

  • Un fichier texte sur le disque dur.
  • le texte contenu dans le presse papier
  • le texte dans une fenêtre d’une application ouverte.

Mais pas, avec un seul script, dans plusieurs applications, Il faudrait un script par application …


Je vais réfléchir à la question, mais pour le moment je n’ai pas d’idée.
 
Si tu remplaces, dans la base des "remplacements de texte", toutes les valeurs (adresse) des clients par les mêmes sans les lignes vides, est ce que cela te gênes (est-ce que dans d'autre cas tu as besoin de ces lignes vide) ou peuvent elles être supprimées définitivement ?

Si tu peux les supprimer alors je te donnerais une procédure pour avoir ce résultat.
 
Oui j'ai besoin de ces lignes d'espaces car je les utilise sur mes devis et factures
 
  • J’aime
Réactions: Wolf_51
Oui tout à fait, mais au quotidien ce n'est pas pratique de l'utiliser via une "appli"
J'aurais aimé pourvoir l'utiliser directement depuis la saisie de mon texte
 
Bonjour,

Tu peux aussi créer autant de "remplacement de texte" avec les mêmes clients sans ces 2 lignes en faisant une petite nuance dans le texte à remplacer:
Exemple
Cli1 se remplace avec les valeurs avec les 2 lignes vides
Ccli1 se remplace avec les valeurs sans les 2 lignes vides.

Il suffira de faire un script pour automatiser la création des nouveaux "remplacement"
 
Bonsoir,

Ça veut dire que je dois recréer tous mes codes sans les espaces ?
Le script devrait pouvoir le faire.

Il me faudra juste savoir quelle lettre ajouter devant le code existant pour qu'il crée un nouveau code automatiquement.

Par exemple en ajoutant un "C" devant ton code actuel
si ton code actuel pour saisir le client 'Dupont ....." est : "cli12"
alors pour saisir ce même client "Dupont..." sans les 2 lignes vides tu taperais "Ccli12"

Pour préparer cela il faudra faire quelques manips simples et exécuter un script qui fera le job.

Si cela te convient , tu me donnes la lettre à ajouter devant le code actuel et je te préparerais un script et un tuto pour la mise en place.