Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ma premiere macro ?

15 réponses
Avatar
alainL
Bonjour,
J'utilise Word2002 sous XP2.
Je voudrais faire une macro qui me permettrait de transposer des accords...
Les lettres A, B, C.... sont écrites en rouge.
Pour le moment, j'en suis à "rechercher A en rouge et "remplacer par D"
Je cherche une solution du genre "rechercher A,B,C,D...." et "remplacer par
"D,E,F,G..."
Est-ce possible ?
Merci

Alain

5 réponses

1 2
Avatar
Geo

Je reformule :
Chaque accord est défini par un à cinq caractères en rouge.
Les accords sont séparés par des espaces ou une virgule ou une virgule
suivie d'espaces.
Quand le dernier caractère est un m ou un 7 ou un 5 ou les trois
derniers "dim", ce(s) caractères doi(ven)t être ajoutés à l'accord
transposé.
L'opérateur saisira la tonalité d'origine et la tonalité transposée en
utilisant la notation anglo-saxonne.

Remarque personnelle : on aurait pu imaginer que la tonalité d'origine
soit indiquée sur la partition, ça fait un truc de moins à saisir (je
suis très fainéant) et ça évite des erreurs.

Voilà, ça semble simple ... à première vue :-)))


Si on veut

Je me demande d'ailleurs si le Rechercher Remplacer ne reste pas la
meilleure méthode et la plus rapide à l'usage.

A l'étude ...

--
A+

Avatar
alainL
"Geo" a écrit dans le message de groupe de discussion :


Je me demande d'ailleurs si le Rechercher Remplacer ne reste pas la
meilleure méthode et la plus rapide à l'usage.


La (les) chanson étant dans un fichier word avec les accords dans la
tonalité d'origine (déjà enregistrée, oui, c'est plus simple), il suffit de
choisir la nouvelle tonalité pour avoir de suite la série d'accords
correspondants. Et si c'est encore trop haut ou trop bas, une simple touche
du clavier permet de changer encore.
Un modèle sur
http://www.boiteachansons.net/Partitions-paroles-accords/Christophe-Mae/Ca-fait-mal.php
mais là, je pense que le progr appelle des pages différentes suivant la
tonalité choisie.

alain

Avatar
Geo

Un modèle sur
http://www.boiteachansons.net/Partitions-paroles-accords/Christophe-Mae/Ca-fait-mal.php
mais là, je pense que le progr appelle des pages différentes suivant la tonalité
choisie.


Oui, manifestement, mais l'exemple est intéressant en effet.
L'accord se déplace un peu selon la tonalité choisie, ce n'est pas
gênant ?
Je vais essayer de m'y replonger.

--
A+

Avatar
alainL
"Geo" a écrit dans le message de groupe de discussion :


Un modèle sur
http://www.boiteachansons.net/Partitions-paroles-accords/Christophe-Mae/Ca-fait-mal.php
mais là, je pense que le progr appelle des pages différentes suivant la
tonalité choisie.


Oui, manifestement, mais l'exemple est intéressant en effet.
L'accord se déplace un peu selon la tonalité choisie, ce n'est pas gênant
?


En principe, il est écrit au-dessus de la syllabe sur laquelle il est plaqué
et répété jusqu'à l'accord suivant.
Il est possible qu'un accord soit indiqué en-dehors de la zone des
paroles... Pour le refrain la chanson citée au-dessus, ne la connaissant
pas, je me demande s'il n'y a pas un décalage involontaire .
_________________________________________________________________________________________________________

J'ai ecrit ce bout de code pour " sortir" la partie du nom de l'accord
susceptible de changer, mais je ne sais pas comment le tester !
dim Accord as variant ' Exemple: A#m7
dim Note as variant ' Exemple : A#
dim Mode as Variant ' Exemple : m7

Function Note(Accord)
If InStr("#", Accord) = 0 Then
Note = Left(Accord, 1)
Mode = Right(Accord, (Len(Accord) - 1))
End If
If InStr("b", Accord) = 0 Then
Note = Left(Accord, 1)
Mode = Right(Accord, (Len(Accord) - 1))
End If
If InStr("#", Accord) = 2 Then
Note = Left(Accord, 2)
Mode = Right(Accord, (Len(Accord) - 2))
End If
If InStr("#", Accord) = 2 Then
Note = Left(Accord, 2)
Mode = Right(Accord, (Len(Accord) - 2))
End If

End Function
________________________________________________________________________________________________________
Bonne soirée
alain


Avatar
Geo

Un modèle sur
http://www.boiteachansons.net/Partitions-paroles-accords/Christophe-Mae/Ca-fait-mal.php


Partant sur ce modèle, j'ai fait un embryon de macro.
Il y a d'autres cas, par exemple :
Fmaj7 Bbmaj7 E7 A6 C#m Gmaj7 F#7

J'ai donc pensé qu'il valait mieux se baser sur les mots rouges et les
traiter.
Problème : Word considère que le # est un mot à lui tout seul, donc
d'une part C#m correspond à trois mots et le fait de le remplacer par
Em supprime 2 mots au document. A l'inverse, remplacer Em par C#m
ajoute 2 mots au document.
En bonne logique on doit alors mouliner le document à l'envers, mais
l'analyse des mots ou groupes de mots, s'avère nettement plus complexe.
Pour pallier, on modifie (oh horreur) la variable dans la boucle.
Voici le résultat :
http://cjoint.com/?bxwrTOmuj5
Il reste du travail à faire, mais ça à l'air de bien tourner.
Par rapport à l'exemple les accords ne se déplacent pas, ce qui est
mieux.
Il y a des select complètement inutiles fonctionnellement, mais ça
permet de bien visualiser le travail de la macro. Ils sont à supprimer
par la suite.
C'est pas mal comme première macro, ça va vous faire voir pas mal de
choses. Faudrait mettre ça dans un bouquin comme exemple.

--
A+

1 2