web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Déplacer fichiers d'un...
Power Automate
Answered

Déplacer fichiers d'un dossier en fonction du nom des fichiers

(0) ShareShare
ReportReport
Posted on by 10

Bonsoir à tous, 

 

Après avoir lu des articles sur le forum et regardé pas mal de vidéos, je viens voir la communauté PowerAutomateDesktop pour m'aider sur mon problème.

 

En résumé : 

 

Je souhaite réaliser une action très simple, à savoir, déplacer les fichiers d'un dossier vers un dossier spécifique en me basant sur le nom du fichier. 

 

Je dispose d'un dossier : "Factures à comptabiliser" contenant toutes mes factures à comptabiliser.

Lorsqu'elles sont comptabilisées, je les renommes ainsi : N°société_N°pièce comptable_type paiement_idValideur. 

Exemple : 100_ACH000045_prélèvement_001

 

Chaque facture doit ensuite être validée par un valideur (manager).

 

Je souhaite donc que la facture se déplace automatiquement vers le bon dossier du  valideur concerné. 

 

Ainsi, je dispose d'un dossier "Factures à valider" avec une vingtaine de sous-dossiers (1 pour chaque valideur). 

Chacun de ces sous-dossiers est nommé ainsi : idValideur_PremièreLettrePrénom. Nom de FAMILLE

Exemple : 001_J. LAGARDE ; 002_F-B. CITRON

 

J'ai crée un flux ultra simple qui fonctionne, mais qui n'est clairement pas optimal car il m'oblige à répéter une vingtaine de fois là même action (1x par valideur...).

 

J'ai donc crée un fichier Excel contenant toutes les informations sur les idValideurs et leurs PremièreLettrePrénom.Nom (en p-j).

J'ai également rajouté une colonne indiquant le chemin du dossier du valideur (mais je ne sais pas si c'est nécessaire). Une deuxième feuille vous indique la structure globale pour vous aider.

 

Je souhaiterai utiliser des boucles et des variables afin d'utiliser mon fichier Excel comme base, mais étant nouveau sur PowerAutomate j'ai du mal à comprendre leur fonctionnement. Je ne sais pas si c'est la meilleure option d'ailleurs.

 

Quelqu'un pourrait-il m'aider sur ce sujet ? 😊

 

Je pense qu'avec votre première aide je pourrais réaliser la prochaine étape, à savoir  : 

 

Chaque dossier d'un valideur dispose de 2 sous-dossiers : 

"Factures validées" et "Factures rejetées". 

 

Lorsque le valideur a validé la facture, il la dépose dans le dossier "Factures validées" ce qui déclenchera un flux afin de déplacer la facture dans un dossier : "Factures validées à payer". 

 

Ce dossier est composé de sous-dossiers (1 pour chaque société --> Exemple  : 100_Société Contoso" ; 200_Société Cookies"; etc.).

Et chaque dossier de société est composé de 3 sous-dossiers : 

"Prélèvement" , "Virement", "En cours de paiement". 

 

En se basant sur le nom de la facture, le flux doit identifier le numéro de la société, puis le type de paiement "Prélèvement" OU "Virement". 

 

Si la facture est déplacée par le valideur dans le dossier "Factures rejetées", alors la facture revient dans un dossier chez-moi "Factures comptabilisées et rejetées par valideur" (exemple : je me trompe dans le code du valideur dans la facture, le valideur la dépose dans ce dossier et revient vers moi; je corrige alors le numéro et redépose la facture dans le dossier "Factures à comptabilise" afin de la réorienter vers le bon valideur)

 

Enfin, pour cette étape, si on procède avec des fichiers Excel, je créerai un classeur contenant idSociété et typePaiement (comme pour les valideurs) ; sauf si vous me conseillez une autre manière moins "lourde". 

 

Je vous remercie pour votre aide et reste bien évidemment disponible pour tout complément d'information,

 

En vous souhaitant un bon week-end, 

Bien sincèrement, 

NMP

 

I have the same question (0)
  • Agnius Bartninkas Profile Picture
    Most Valuable Professional on at

    Hello. First of all, I would like to note that these forums are in English. You are very unlikely to get much help, if you communicate in any other language.

     

    As for the first case you described, you don't really need an Excel file, because you really have the validator ID in both the file name and the folder name. So, all you need to do is parse the file name to get it, and then find the appropriate folder based on the validator ID. There are essentially two actions you need to do this - Parse text to get the validator ID from the file name, and Get subfolders in folder to get the correct folder.

     

    Now, the exact steps in the flow depend on how exactly you intend to trigger the flow and also where your files are actually stored. You may actually need some extra steps. But the following instructions are based on the assumption that those folders are on a directory on your machine, and not some SharePoint/OneDrive or other cloud storage. And also that you have your input file in a file type variable called %File%.

     

    What you then need to do is use Parse text with regular expressions enabled on %File.NameWithoutExtension% and use the following regex pattern to get the validator ID: \d+$

     

    This will return a match for multiple digits at the end of your file name. So, assuming that your validator IDs follow the pattern of being digit-only, this will work. The action should look like this:

    Agnius_0-1708838640278.png

     

    The important thing is to enable the "Is regular expression" toggle. Then the output validator ID will be returned in a variable called %Match%.

     

    You can then use this in a Get subfolders in folder action. Assuming your parent directory will all validator subfolders is in a variable called %Directory%, you can do it as follows:

    Agnius_1-1708838774769.png

     

    This will return all folders that start with the validator ID followed by an underscore. Ideally, this should return one item only. But it is still in a list of folders. So, to target the specific folder, you need to get it as %Folders[0]%. And then you can use Move file(s) to move %File% to %Folders[0]%.

     

    The flow should essentially look like this:

    Agnius_3-1708838898358.png

     

    Since, I assume, your PAD is likely in French, to make it easier, you can simply copy and paste the following code directly into your PAD designer to have those actions created for you:

    Text.ParseText.RegexParseForFirstOccurrence Text: File.NameWithoutExtension TextToFind: $'''\\d+$''' StartingPosition: 0 IgnoreCase: False OccurrencePosition=> Position Match=> Match
    Folder.GetSubfolders Folder: Directory FolderFilter: $'''%Match%_*''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.NoSort SortDescending1: False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Subfolders=> Folders
    File.Move Files: File Destination: Folders[0] IfFileExists: File.IfExists.DoNothing MovedFiles=> MovedFiles

  • Noureddine_MP Profile Picture
    10 on at

    Hi Agnius,

     

    First, I'd really like to thank you for you detailed and quick response, especially because I asked for help in french !

     

    Noted, next time will be in English 😊

     

    I do confirm that my folders are on  a directory on my machine.

     

    I've copied your code directly into my PAD (it is indeed in french) but do have a small question because I don't think I understood one part of your response correctly.

     

    Could you tell me how to correctly : “(…) have your input file in a file type variable called %File%. ”.

     

    I’m not sure if I should insert the name of a file as an example or if I should insert the directory containing my files to move. I’d like to have all the files to be analyzed and moved to the correct validator id folder.

     

    Furthermore, since I’m going to develop the flow with other variables (such as enterprise code and type of payment), could you explain how I should interpret the regex pattern “\d+$” ?

    I’m not sure what regex pattern I’m going to need to insert for these 2 variables (enterprise code + type payment (which is text)).

     

    Here’s a print screen of the flow as I’ve interpreted right now, which is clearly wrong because I haven’t properly declared  my input file in a file type variable called %File%:

    Noureddine_MP_2-1708939533564.png

     

     

     

    Error on parse text (the variable "File" does not have the propery "NameWithoutExtension")

    Noureddine_MP_1-1708939297345.png

     

     

    Thank you for your time and help, very much appreciated ! 

     

    Best, 

    NMP

     

     

     

     

     

     

  • Verified answer
    Agnius Bartninkas Profile Picture
    Most Valuable Professional on at

    You will need to use Get files in folder to generate a list of files as a variable. You can then pick one of them (either in a loop if you plan on processing several of them, or using a 0 index, if you somehow manage to make sure it will always be only one file). So, you can either

    1. do a For each loop to iterate through your list and then use the %CurrentItem% variable that the loop generates instead of the %File% variable I suggested earlier, or
    2. use Set variable to set %File% to %Files[0]% (where %Files% is the list of files generated by Get files in folder) to pick the first file in the list.

     

    This will result in a variable of type 'file', which has the appropriate properties, such as .NameWithoutExtension.

     

    As to the regex, it has the following constructs:

    1. \d - a digit
    2. + - a multiplier (meaning "one or more" of the previous character)
    3. $ - indicating the end of the string

    So, its output is one or more digits at the end of the string that you're parsing.

     

    If you plan on using regex further, but are not familiar with it, I recommend checking this article for reference: https://learn.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference

    Also this tester tool for testing: http://regexstorm.net/tester

     

  • Noureddine_MP Profile Picture
    10 on at

    Thank you so much Agnius ! It works perfectly 😊

     

    Going to try to figure out how to do the next steps by myself with the tools you gave me ! 

     

    Have a great day & MERCI 😉

     

    Best, 

    NMP 

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Season of Sharing Community Challenge Launch!

Jump in, show your community spirit, and win prizes!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Congratulations to the May Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Valantis Profile Picture

Valantis 484

#2
11manish Profile Picture

11manish 282

#3
David_MA Profile Picture

David_MA 280 Super User 2026 Season 1

Last 30 days Overall leaderboard