Je gère des dizaines de discographies d'artistes de jazz, chacune dans un fichier excel.
Dans ce fichier, chaque enregistrement est identifié par une référence de label située dans la partie gauche de la cellule, le titre du vinyle ou du CD dans la partie droite.
Exemple souhaité:
* Clef MGC 4007, MGC 674; Verve MGV 8060; ARS G 419 Various Artists - The Jazz Scene
Je peine sur une macro qui permettrait un présentation comme ci-dessus (hors couleur), sachant que la partie label est séparée de la partie titre par 3 espaces
L'espace étant le séparateur par défaut, je ne sais pas si on peut y arriver !
Voici la macro actuelle :
Sub Macro3()
Dim Cel As Range
For Each Cel In Selection
Cel.Characters(18, 60).Font.Italic = True
Next Cel
End Sub
Pour cette macro les arguments 18, et 60 sont rentrés manuellement dans la fonction Characters(). Evidemment le résultat suivant ne convient pas.
* Clef MGC 4007, MGC 674; Verve MGV 8060; ARS G 419 Various Artists - The Jazz Scene
Afin d'illustrer mon propos, je vous ai mis un fichier en pièce jointe pour le cas que je souhaiterais traiter.
A tous les Vbéistes intéressés par ce sujet, merci d'avance
signé, un chiotteur de 68 ans qui merdoie avec excel 2007
Bonjour,
Il semble et si j'ai tout compris, que ta séparation ne soit pas ce que tu pense!!
entre les deux espaces chr(32) il y a un chr(160) pas trop ce que c'est!
alors:
Function chercheg(a)
n = InStr(1, a, Chr(160))
chercheg = Left(a, n)
End Function
Function cherched(a)
n = InStr(1, a, Chr(160))
cherched = Right(a, Len(a) - n)
End Function
Dim Cel As Range, X1 As Long, X2 As Integer, Cible As String
For Each Cel In Selection
Cible = Chr(32) & Chr(160) & Chr(32)
X1 = InStr(Cel, Cible)
X2 = Len(Cel) - X1 + 1
If X1 > 0 Then Cel.Characters(X1, X2).Font.Italic = True
Next Cel