Microsoft 365 la gestion des sons

PatrickDubreuil

XLDnaute Nouveau
Bonjour à tous,

J'apprends le mandarin et j'aimerai faire une table dans une feuille pour répertorier les sons du type "1 cellule = 1 son".

çà me permettrait d'appeler ce son en interrogeant la cellule "caractère".

Mais surtout d'avoir un fichier autonome pour l'exporter sur mon téléphone portable.

Merci d'avance aux connaisseurs d'Excel.

1657011487951.jpeg
Patrick
 

Dudu2

XLDnaute Barbatruc
Bonjour,

Si ça doit être un fichier autonome, il faut préalablement charger tous les fichiers son en tant qu'objet dans une feuille du classeur -> Onglet Insertion / Texte / Objet / Créer à partir d'un fichier / désigner le fichier en sélectionnant l'option Afficher sous forme d'icône

Il faut ensuite de préférence donner à ces objets insérés un nom intelligible qui ne soit pas celui par défaut "Objet1", "Objet2" ,etc... Pour ça utilise le classeur joint qui te permettra de les renommer.

Sur une autre feuille de ton classeur, écris le libellé du son dans une cellule et sur la cellule à coté indique le nom que tu as donné à l'objet son inséré qui lui correspond.

Ensuite poste ton classeur ici et @Dudu2 ou quelqu'un d'autre codera le lancement du son sur le double-clic ou la sélection de la cellule du libellé du son.
 

Pièces jointes

  • Renommer Shape sélectionnée.xlsm
    30 KB · Affichages: 3

PatrickDubreuil

XLDnaute Nouveau
Bonjour Dudu2,

Excepté la ligne "codage" j'avais déjà réalisé ce type de feuille avec seulement des objets sons qui se trouvent dans un répertoire de mon ordi. j'ai utilisé l'insertion sans préciser "sous forme d'icone" car les icones arrivent en large dépassement de la dimension de la cellule. Les objets arrivent déjà nommés du nom qu'ils ont dans le répertoire "de stockage" et sans dépasser la surface de la cellule.

Donc, ton explication m'a fait touché du doigt que je n'étais pas totalement faux, j'ai exporté mon fichier sur l'ordi d'un copain et çà marche pas mal. donc un premier merci pour tes explications.

Je te joins la première feuille que j'avais faite pour que tu puisses " l'encoder" à ta façon.

Merci encore Dudu2.

à bientôt
 

Pièces jointes

  • Classeur exemple 1.xlsm
    124 KB · Affichages: 4

Dudu2

XLDnaute Barbatruc
Ok, le but n'était pas de réduire la taille des objets son insérés sous forme d'icône puisqu'il suffisait de les mettre "en vrac" sur la 2ème feuille, de les nommer autrement que par le nom par défaut défini lors de l'importation Excel grâce au fichier fourni en Post #4) et de faire référence à ce nom dans la 1ère feuille à coté du / des libellés (chinois signe / chinois latin / traduction).

Donc, à part le 1er point, tu n'as absolument pas suivi les consignes.
Les objets son ne sont pas renommés (avec le fichier fourni en Post #4)
Les objets son ne sont pas dans une feuille à part
Et leur nom après renommage non fait n'est évidemment pas en regard des libellés.

J'en ai donc:
  1. Placé les Objets son en feuille "Sons" sans me poser de question sur la taille de l'icône.
  2. Renommé les objets avec le fichier fourni en Post #4.
  3. Créé un tableau structuré des mots qui est infiniment plus facile à gérer (en VBA en particulier) que des données qui se baladent n'importe comment et n'importe où dans la feuille.
    D'ailleurs si tu veux regrouper des mots par catégories, tu peux créer d'autres tableaux structurés sur le même modèle, la macro va chercher tous les tableaux structurés de la feuille.
  4. Placé dans ce tableau les noms affectés en étape #2 en colonne Objet Son.
  5. Ajouté une temporisation en colonne Temporisation qui correspond au temps de jeux du fichier avant que la macro ne tue l'application qui le joue (Media Player, VLC, autre) pour pouvoir revenir au fichier Excel automatiquement.
  6. Ajouté une bouton d'activation / désactivation des sons qui se jouent sur simple sélection de cellule dans le tableau structuré. Ce bouton permet de travailler sur le tableau sans automatiquement jouer les sons.
Edit: fichier supprimé, voir plus loin !
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
J'ai bataillé pendant 2 heures pour un détail que je voulais régler.
La conservation du Workbook.Saved entre le début de la fonction qui joue le son et sa fin.

En effet, le Me.Worksheets(NomFeuilleSons).OLEObjects(NomObjetSon).Verb Verb:=xlPrimary a pour effet de modifier le Workbook.Saved. Qu'à cela ne tienne ! Sauvons le avant l'instruction et restaurons le après.

Mais ce n'est pas suffisant car Excel modifie (selon ses désirs) le Workbook.Saved APRÈS le retour de la fonction. Et malgré des essais plus ou moins fructueux avec des Wait et autres boucles d'attente, le problème persiste et ce de manière non déterministe.

Donc, à la fermeture du classeur, même s'il n'y pas eu de modification utilisateur, Excel demandera s'il faut enregistrer ou non le classeur, car je n'ai pas trouvé de solution à ce problème.

Edit: peut-être faudrait-il s'y prendre autrement pour jouer le son à partir de l'emplacement dans le C:\Users\<Utilisateur>\AppData\Local\Temp\{xxxxxxx}\xxx.mp3 de l'OLEObject directement par un ShellExecute.

Edit: fichier supprimé, voir plus loin !
 
Dernière édition:

PatrickDubreuil

XLDnaute Nouveau
Bonsoir Dudu2,

Effectivement c'est une belle avancée, je te remercie de ton aide. je suppose que comme moi, quand tu n'arrives à tes fins ça reste un objectif à atteindre. Si donc tu perseveres pour resoudre ce problème, je serais ravi d'appliquer ton nouveau code.

Merci à tous pour votre savoir et votre gentillesse.

Amicalexcellement.

Patrick.
 

Dudu2

XLDnaute Barbatruc
En effet, j'aimerais bien trouver une autre solution que celle-ci, simplissime mais avec ce petit problème de modification du classeur lors de l'exécution du Verb.

En réalité les Embedded OLE Objects c'est pas de la tarte.
Je m'attendais à trouver une propriété standard indiquant le fichier temporaire associé, mais c'est ce site qui a donné une réponse qui est tout sauf simple et que j'ai placée dans ce fichier à toutes fins utiles.

Edit: Fichier supprimé, voir plus loin
 
Dernière édition:

PatrickDubreuil

XLDnaute Nouveau
En effet, j'aimerais bien trouver une autre solution que celle-ci, simplissime mais avec ce petit problème de modification du classeur lors de l'exécution du Verb.

En réalité les Embedded OLE Objects c'est pas de la tarte.
Je m'attendais à trouver une propriété standard indiquant le fichier temporaire associé, mais c'est ce site qui a donné une réponse qui est tout sauf simple et que j'ai placée dans ce fichier à toutes fins utiles.

Maintenant reste plus qu'à lancer ce fichier (.mp3) et là faut que je cherche encore !
Vraimet merci de passer du temps sur ce sujet.

Ai-je le droit de te souhaiter bonne nuit?

à demain Dudu2

Patrick
 

Dudu2

XLDnaute Barbatruc
J'ai essayé des tonnes de trucs dont celui qui paraissait le plus simple pour aller chercher le fichier son de l'Embbeded OLE Object par l'affichage du verbe xlOpen ce qui j'ai pu faire avec des SendKeys jusqu'à ce que je découvre qu'il n'est pas mis à jour et qu'il ne représente pas le "vrai" fichier ! Misère d'Excel.

Faudra que je me concentre sur la récupération du ClipBoard de l'Object avec un texte Unicode.
Je verrai plus tard.

Je suis revenu sur le fonctionnement du fichier et me suis rendu compte qu'il y avait plein de problèmes, notamment en voulant tuer l'application qui joue le son. J'ai donc fait machine arrière et laisse tranquille l'application et utilise l'API pour revenir sur Excel.

Ça marche bien pour Windows Media Player.
Pour VLC il est préférable d'avoir ce paramètre (Outils / Préférence)
1657194600333.png
sinon des tas d'instances vont s'empiler en barre des tâches vu que je ne les tue plus.

Effet secondaire bénéfique de ne plus pratiquer la violence sur l'application qui joue le son, le Workbook.Saved est préservé des changements "behind the scene" incontrôlables.
Après avoir seulement joué des sons, le fichier peut être fermé sans qu'il soit demandé de l'enregistrer !
 

Pièces jointes

  • Jouer des sons de fichiers Embbeded OLEOjects.xlsm
    169.2 KB · Affichages: 4
Dernière édition:

Statistiques des forums

Discussions
312 690
Messages
2 090 981
Membres
104 720
dernier inscrit
drd74