IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Renommage fichier audio à l'aide d'un script vbs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Chargé qualite
    Inscrit en
    Juillet 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chargé qualite

    Informations forums :
    Inscription : Juillet 2022
    Messages : 2
    Par défaut Renommage fichier audio à l'aide d'un script vbs
    Bonjour les amis,

    Je vous explique la situation, je dispose d'une liste d'audios au format wav, et je dois tous les renommer suivant une forme précise. On m'a fournit un script qui doit réaliser ce renommage. Or, je n'arrive pas à le faire fonctionner, je vois bien que je dois adapter une partie du code afin qu'il reconnaisses les fichiers audios mais je n'y arrive pas.

    Il est mentionné que dans l'état livré, le srcipt reconnait les fichiers audio nommés ainsi : N° téléphone sur 10 chiffres#date heure de l’appel sur 12 chiffres # « ce qu’on veut »


    OR mon audio se nomme sous la forme : [NOM, prenom]_210-0610745177_202206091040201(16574).wav

    le [nom prenom] etant celui de l'agent qui fait l'appel et non celui du client


    et dois être transformé en : NUMERO DE VENTE _DATE HEURE APPEL _NOM CLIENT.format audio du fichier



    VOICI LE SCRIPT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    Const ForReading = 1
    	Set FSO = CreateObject("Scripting.FileSystemObject")
    	Set g_oSB = CreateObject("System.Text.StringBuilder")
     
    	separateurFichierExportSwapp = "|"
    	separateurAudioNamesOutput = "_"
     
    	'Caractéristiques des fichiers audios: le script doit être placé dans le même répertoire que les fichiers audios
    	audioPath = FSO.GetParentFolderName(WScript.ScriptFullName)
    	separateurAudioNamesInput = "#"
    	audioAcceptedExtensions = "mp3mp4wav"
     
    	strLigne1 = "-Ce script doit etre positionne dans un dossier qui contient les enregistrements WCC et le fichier d'export WCC issu du parcours de conformite Swapp."
    	strLigne2 = "-Les enregistrements WCC doivent commencer par le numero de telephone ainsi que la date/heure de l'appel comme suit: 0645946591"+separateurAudioNamesInput+"202107291550 pour un appel effectue le 29 juillet a 15H50"
    	strLigne3 = "-Veuillez selectionner le fichier d'export WCC lors de l'etape suivante"
     
    	MsgBox strLigne1 & vbcrlf & strLigne2 & vbcrlf & strLigne3 ,64, "Mode d'emploi: renommer les enregistrements WCC"
     
    	'Sélection du fichier d'export des ventes Swapp
    	Set wShell=CreateObject("WScript.Shell")
    	Set oExec=wShell.Exec("mshta.exe ""about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0);</script>""")
    	exportSwappFullPath = oExec.StdOut.ReadLine
     
    	If exportSwappFullPath <> "" Then
     
    			dateMaintenant = now()
    			maintenant = sprintf("{0:yyyyMMddHHmmss}", Array(dateMaintenant))
     
    			'Là ou seront copiés les audios renommées pour Engie
    			audioPathPourEngie = audioPath & "\Engie" & maintenant & "\"
    			FSO.CreateFolder(audioPathPourEngie)
     
     
    			Set FLD = FSO.GetFolder(audioPath)
     
    			ecrireLigneLog("Transformation des enregistrements WCC le " & dateMaintenant )
    			ecrireLigneLog("---------------")
    			'Boucle  sur chaque fichier du dossier
    			For Each fil in FLD.Files
    				strOldAudioName = fil.Name
    				strAudioExtension = FSO.GetExtensionName(fil.Path)
     
    				'On ne prend que les fichiers mp3 mp4 wav, munis du séparateur pré-défini
    				If (InStr(strOldAudioName, separateurAudioNamesInput) * InStr(audioAcceptedExtensions, strAudioExtension))  > 0 Then
    					strFileParts = Split(strOldAudioName, separateurAudioNamesInput)
    					'Ici on récupère depuis le nom de fichier le numéro de téléphone et la date / heure de l'appel
    					'Zone à adapter selon le format de fichier produit par l'enregistreur d'appels du partenaire
    					strTelephone = strFileParts(0)
    					strTimestampAppel = strFileParts(1)
     
    					compteurAssociationDuFichier = 0
    					compteurFichiersAudioParcourus = compteurFichiersAudioParcourus + 1
     
    					'On va rechercher dans le fichier d'export swapp la ou les lignes qui contiennetn le numéro de téléphone extrait du nom de fichier audio
    						'Si on trouve plusieurs lignes, on créé une copie du fichier audio pour chaque ligne (cas ou le même téléphone sert pour plusieurs ventes)
    						'Si plusieurs fichiers correspondent au même numéro de téléphone identifié à une vente, chaque fichier sera associé à cette vente
    						'On exclut les AF
     
    					Set objTextFile = FSO.OpenTextFile(exportSwappFullPath, ForReading)
    					do until objTextFile.AtEndOfStream
    						strLine = objTextFile.ReadLine()
     
    							If InStr(1, strLine, strTelephone) <> 0 then
    								strTypeEnergie = Split(strLine, separateurFichierExportSwapp)(47)
     
    								'Uniquement pour les ventes Energie: G, E, GE
    								If (InStr("GE", strTypeEnergie) > 0) then
    									'Récupération de idVente (=premiere colonne)
    									strIdVente = Split(strLine, separateurFichierExportSwapp)(0)
    									strNomClient = Split(strLine, separateurFichierExportSwapp)(14)
     
    									'Construction du nouveau nom du fichier audio Idvente_timestamp_NomCLient.mp3
    									strNewName = strIdVente & separateurAudioNamesOutput & strTimestampAppel & separateurAudioNamesOutput & strNomClient & "." & strAudioExtension
     
    									'Copie du fichier audio renommé
    									FSO.CopyFile fil.Path, audioPathPourEngie & strNewName
     
    									compteurCopies = compteurCopies + 1
    									compteurAssociationDuFichier = compteurAssociationDuFichier +1 
    									'Ecriture de la copie dans le log
    									ecrireLigneLog("Fichier " & fil.Path & " copié dans " & audioPathPourEngie & strNewName)
     
     
     
    								End If
    							End If
     
    					loop
    					objTextFile.Close	
    					ecrireLigneLog("Fichier " & fil.Path & " copié " & compteurAssociationDuFichier & " fois car associé à " & compteurAssociationDuFichier & " vente(s)")
    					ecrireLigneLog("---------------")
     
    					If (compteurAssociationDuFichier = 0) then
    						warning1 = "Attention: Certains enregistrements WCC n'ont pas été associés à une vente Swapp  : le numéro de téléphone du fichier audio n'est retrouvé dans aucune vente du fichier d'export Swapp"
    					ElseIf compteurAssociationDuFichier > 1 then
    						warning2 = "Attention: Certains enregistrements WCC ont été associés à plusieurs ventes Swapp : le numéro de téléphone du fichier audio est retrouvé dans plusieurs ventes différentes du fichier d'export Swapp"
    					End If
     
    				End If
    			Next
    			ecrireLigneLog("Bilan:")
    			ecrireLigneLog("Transformation de fichiers audio le " & dateMaintenant )
    			ecrireLigneLog(compteurFichiersAudioParcourus & " fichiers d'enregistrements WCC ont été parcourus")
    			ecrireLigneLog(compteurCopies & " associations enregistrements WCC / vente Swapp ont été effectuées")
    			ecrireLigneLog(warning1)
    			ecrireLigneLog(warning2)
     
     
     
    	End If
     
    	'Cleanup the objects
    	Set FLD = Nothing
    	Set FSO = Nothing
    	Set g_oSB = Nothing
    	Set oExec = Nothing
     
     
    Function sprintf(sFmt, aData)
       g_oSB.AppendFormat_4 sFmt, (aData)
       sprintf = g_oSB.ToString()
       g_oSB.Length = 0
    End Function
     
    Function ecrireLigneLog(strLigne)
    	Set logtxt = FSO.OpenTextFile(audioPathPourEngie & maintenant & "log.txt",8,true)
    	logtxt.WriteLine(strLigne)
    	logtxt.Close
    	Set logtxt = Nothing
    End Function
    Merci de votre aide

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour mc031813,


    On m'a fournit un script qui doit réaliser ce renommage. Or, je n'arrive pas à le faire fonctionner
    Il me semble que ce serait sans doute plus simple de demander à ton fournisseur les adaptations souhaitées car il a lui le contexte nécessaire.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Chargé qualite
    Inscrit en
    Juillet 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chargé qualite

    Informations forums :
    Inscription : Juillet 2022
    Messages : 2
    Par défaut
    Bonjour,

    Malheureusement ces modifications sont à faire par nos propres moyens..

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 437
    Par défaut
    Bonjour,

    Voir s'il ne suffit pas de remplacer les lignes 48 et 49 par celles-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    strTelephone = strFileParts(1)
                    strTimestampAppel = strFileParts(2)
    Cordialement.

Discussions similaires

  1. Modification d'un fichier XML à l'aide d'un script shell
    Par ichi_straw dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 12/03/2018, 14h17
  2. Réponses: 3
    Dernier message: 22/08/2014, 19h32
  3. Réponses: 5
    Dernier message: 08/11/2010, 11h36
  4. Réponses: 1
    Dernier message: 07/12/2007, 11h53
  5. Modifier un fichier *.prf à l'aide d'un script
    Par blackbull974 dans le forum VBScript
    Réponses: 11
    Dernier message: 07/03/2007, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo