Skip to main content

Création d'ordres de réparation DPAN (AS400)

Ce script Power Automate Desktop automatise la création d'ordres de réparation (OR) dans le logiciel AS400 pour la société DPAN. Il lit les données depuis un fichier Excel structuré et effectue les saisies dans AS400 via simulation de clavier et souris.


Vue d'ensemble

flowchart TD
A[Ouverture du fichier Excel] --> B[Activation de la feuille 'traitement']
B --> C[Saisie de la date du jour]
C --> D[Demande du nom de la feuille de données]
D --> E[Écriture du nom en B1 de 'traitement']
E --> F[Calcul de la première ligne/colonne libre]
F --> G{Boucle sur chaque colonne}
G --> H{Boucle sur chaque répétition}
H --> I[Clic AS400 + navigation clavier]
I --> J[Copie des 6 lignes Excel dans AS400]
J --> K[Validations et confirmations]
K --> H
H --> G
G --> L[Fermeture du fichier Excel]

1. Initialisation

Ouverture du fichier Excel

Le script ouvre un fichier Excel fixe en mode non visible (arrière-plan) :

C:\Users\a-roussel\Work folders\Documents\Pole développement\
Développement\Projet création logiciel ouverture OR par fichier excel\
5 - etude du 19012026\Etude du 19012026xlsx.xlsx

La feuille active est ensuite fixée sur traitement.

Date du jour

La date actuelle (format date seule) est récupérée automatiquement et proposée comme valeur par défaut dans la boîte de dialogue suivante.

Saisie du nom de la feuille de données

Une fenêtre de saisie demande à l'utilisateur le nom de la feuille de données (exemple : 19/01/2026).
Ce nom est écrit en cellule B1 de la feuille traitement, ce qui active les formules dynamiques qui référencent cette feuille.


2. Structure du fichier Excel

Le classeur Excel est composé de deux feuilles :

Feuille de données

Contient les informations brutes des ordres de réparation à créer. Chaque colonne représente un OR.

Les données doivent être disponibles à partir de la ligne 7 (les lignes 1 à 6 étant des en-têtes ou métadonnées).

Les colonnes utilisées par les formules de la feuille traitement sont :

ColonneContenu
ARéférence / immatriculation
FInformations complémentaires
HQuantité ou référence pièce
KCode pièce / désignation
LLibellé complémentaire

La feuille de données doit également contenir deux cellules de référence croisée :

=test!K7 (référence colonne K de la feuille 'test')
=test!L7 (référence colonne L de la feuille 'test')

Remplacer test par le nom réel de la feuille de données dans votre fichier.


Feuille traitement

C'est la feuille active utilisée par le script. Elle agrège et formate les données pour la saisie dans AS400.

Cellule B1 : nom de la feuille de données (saisi par l'utilisateur au démarrage).

Cellule B2 : doit également contenir le nom de la feuille de données.

Ligne 9 : contient le nombre de répétitions (nombre d'OR à créer) pour chaque colonne.

Formule principale (à étendre à partir de la ligne 3)

La formule suivante est à saisir en A3 et à étendre sur 5 colonnes et autant de lignes que nécessaire (par blocs de 8 lignes par OR) :

=SI(MOD(LIGNE()-LIGNE($A$3);8)=2;"QTE:1";
SI(MOD(LIGNE()-LIGNE($A$3);8)=6;
INDIRECT($B$1&"!H"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3));
SI(OU(MOD(LIGNE()-LIGNE($A$3);8)=3;
MOD(LIGNE()-LIGNE($A$3);8)=4;
MOD(LIGNE()-LIGNE($A$3);8)=7);"";
SI(MOD(LIGNE()-LIGNE($A$3);8)=5;
SI(OU(
INDIRECT($B$1&"!K"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3))="ORIGINE";
INDIRECT($B$1&"!K"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3))="Brain";
GAUCHE(INDIRECT($B$1&"!K"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3));4)="DEC-";
GAUCHE(INDIRECT($B$1&"!K"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3));4)="dec:");
INDIRECT($B$1&"!K"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3))
&" "&INDIRECT($B$1&"!L"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3));
"DEC-"&INDIRECT($B$1&"!K"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3))
&" "&INDIRECT($B$1&"!L"&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3)));
INDIRECT($B$1&"!"
&CHOISIR(MOD(LIGNE()-LIGNE($A$3);8)+1;"A";"F";"K";"L";"K";"L";"K";"L")
&ENT((LIGNE()-LIGNE($A$3))/8)+7+COLONNE()-COLONNE($A$3))))))

Logique de la formule

Chaque OR occupe 8 lignes dans la feuille traitement. Le MOD(LIGNE()-LIGNE($A$3);8) détermine le rôle de chaque ligne dans le bloc :

Position dans le bloc (MOD)Valeur générée
0Colonne A de la feuille de données (immatriculation/référence)
1Colonne F
2QTE:1 (fixe)
3Vide
4Vide
5Code pièce : si la colonne K commence par DEC-, dec:, ou vaut ORIGINE/Brain → valeur brute ; sinon, préfixe DEC- est ajouté
6Colonne H (référence quantité / pièce)
7Vide

3. Logique du script (boucles)

Boucle externe — colonnes Excel

Le script itère sur chaque colonne de la feuille traitement, jusqu'à la dernière colonne non vide (FirstFreeColumn).

Boucle interne — répétitions par colonne

Pour chaque colonne, le script lit la cellule en ligne 9 (repetitionor) qui indique le nombre d'OR à créer. Il répète alors les actions AS400 ce nombre de fois.

Actions AS400 pour chaque OR

Pour chaque itération, le script effectue dans AS400 :

ÉtapeAction
1Clic à la position (688, 364) dans AS400
2Frappe clavier [8][4] (navigation AS400)
3Copie des 6 lignes de la colonne active (lignes 3 à 8) depuis Excel
4Navigation dans AS400 : ↓↓ puis Ctrl+V
5Attente 1 s puis validation Entrée × 3
6Attente 2 s puis navigation clavier complexe (déplacement curseur + A + retour)
7Attente 1 s
8Clic à (9, 56) — deux fois avec attente de 2 s
9Frappe F12 F12 1 1 8 9 (séquence de confirmation AS400)
10Attente 2 s
11Clic à (527, 266)
12Frappe 3 8 0 0 8 4 Entrée Entrée F6 ↓↓

Les coordonnées de clic (X, Y) sont relatives à l'écran et peuvent nécessiter un recalibrage si la résolution ou la position de la fenêtre AS400 change.


4. Prérequis et points d'attention

PointDétail
Résolution écranLes coordonnées de clic sont fixes — AS400 doit être positionné exactement au même endroit sur l'écran
Feuille traitementDoit exister dans le classeur et contenir la formule à partir de A3 (étendue sur 5 colonnes)
Cellule B1Remplie automatiquement via la boîte de dialogue au démarrage
Cellule B2Doit contenir manuellement le nom de la feuille de données
Ligne 9Doit contenir le nombre de répétitions par colonne
Données sourceÀ partir de la ligne 7 dans la feuille de données
Mode non-visibleLe fichier Excel s'ouvre en arrière-plan — ne pas interagir avec Excel pendant l'exécution

5. Ressources

RessourceDescription
Power Automate DesktopMoteur d'exécution du script
AS400 (IBM iSeries)Logiciel cible de saisie des ordres de réparation
Excel (fichier local)Source de données et feuille de traitement