Changement de caractères dans une chaine
DragonRouge
Messages postés
337
Date d'inscription
Statut
Membre
Dernière intervention
-
DragonRouge Messages postés 337 Date d'inscription Statut Membre Dernière intervention -
DragonRouge Messages postés 337 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comment changer le "40" en "10" et le "#00CED1" en "#FFA500" dans une liste de chaine de type suivant avec une macro VBA :
<font size="40"><font color="#4169E1">(Ripley)<font color="#00CED1">
Merci d'avance pour votre aide.
PS: Pour infos, il s'agit d'un fichier .srt pour le sous-titrage d'un film.
Comment changer le "40" en "10" et le "#00CED1" en "#FFA500" dans une liste de chaine de type suivant avec une macro VBA :
<font size="40"><font color="#4169E1">(Ripley)<font color="#00CED1">
Merci d'avance pour votre aide.
PS: Pour infos, il s'agit d'un fichier .srt pour le sous-titrage d'un film.
A voir également:
- Changement de caractères dans une chaine
- Changer de dns - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
3 réponses
Alors les Loulous, voilà ma solution. Peut-être pas esthétique mais très performante.
Donc, le problème, dans la liste suivante, est de remplacer une partie d'une chaine par une autre.
Exemple :
Extrait d'un document WordPad pour un sous-titrage en .srt copier/coller dans Excel sur une colonne.
Dans cette liste (6 à 1659), je veux remplacer "<font color="#FF00FF">" où qu'il se trouve dans la liste, avec par exemple "<font color="#32CD32">".
Avec la macro ci-dessous rien de plus facile. Ajouter un bouton (contrôle formulaire) dans votre feuille de calcul "Feuil1" et affecter lui la macro ci-dessous. Bien sur, il faut des données dans la colonne "A" qui soit quelque peu redondante, comme un fichier de sous-titre par exemple. Quel avantage d'utiliser une macro pour ne modifier qu'une dizaine de données. =)
Remarque: J'ai ajouté du code pour afficher les modifications effectuées dans les cellules E3:E10 (Partie de chaine à changée) et F3:F10 (Partie de chaine changée par :). Au-delà, une Box vous demande d'effacer le tableau pour recommencer à 0.
__________________________________________________
LISTE
6
00:01:05,009 --> 00:01:08,996
<font size="10"><font color="#FF00FF">Augmentation du fond sonore.</font>
7
00:01:27,929 --> 00:01:31,517
<font size="10"><font color="#FF00FF">Fond sonore
de plus en plus présent.</font>
........
1658
01:53:23,425 --> 01:53:24,927
<font size="10"><font color="#FFFFFF">
Aller, viens le chat.</font></font></font>
1659
01:53:47,171 --> 01:53:50,468
<font size="10"><font color="#FF0000">Musique douce et apaisante.
Générique de fin.</font></font>
___________________________________________
MACRO
Sub Bouton4_Clic()
Dim feuil As Worksheet
Dim MotRecherche As Variant
Dim MotRemplace As Variant
Dim Msg, Style, Title, Response, MyString
MotRecherche = InputBox("Quel partie de la chaine recherchez-vous ?", Title:="Recherche une partie de la chaine")
If MotRecherche = "" Then Exit Sub
MotRemplace = InputBox("Remplace partie de la chaine par : ", Title:="Remplace une partie de la chaine par : ")
If MotRemplace = "" Then Exit Sub
For Each feuil In ThisWorkbook.Worksheets
Worksheets("Feuil1").Columns("A").Replace What:=MotRecherche, Replacement:=MotRemplace
Next feuil
If Cells(3, 5).Value <> "" Then GoTo Suivant1
Cells(3, 5).Value = MotRecherche
Cells(3, 6).Value = MotRemplace
GoTo SuivantFin
Suivant1:
If Cells(4, 5).Value <> "" Then GoTo Suivant2
Cells(4, 5).Value = MotRecherche
Cells(4, 6).Value = MotRemplace
GoTo SuivantFin
Suivant2:
If Cells(5, 5).Value <> "" Then GoTo Suivant3
Cells(5, 5).Value = MotRecherche
Cells(5, 6).Value = MotRemplace
GoTo SuivantFin
Suivant3:
If Cells(6, 5).Value <> "" Then GoTo Suivant4
Cells(6, 5).Value = MotRecherche
Cells(6, 6).Value = MotRemplace
GoTo SuivantFin
Suivant4:
If Cells(7, 5).Value <> "" Then GoTo Suivant5
Cells(7, 5).Value = MotRecherche
Cells(7, 6).Value = MotRemplace
GoTo SuivantFin
Suivant5:
If Cells(8, 5).Value <> "" Then GoTo Suivant6
Cells(8, 5).Value = MotRecherche
Cells(8, 6).Value = MotRemplace
GoTo SuivantFin
Suivant6:
If Cells(9, 5).Value <> "" Then GoTo Suivant7
Cells(9, 5).Value = MotRecherche
Cells(9, 6).Value = MotRemplace
GoTo SuivantFin
Suivant7:
If Cells(10, 5).Value <> "" Then GoTo Suivant8
Cells(10, 5).Value = MotRecherche
Cells(10, 6).Value = MotRemplace
GoTo SuivantFin
Suivant8:
Msg = "Tableau plein. Voulez-vous l'effacer ?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Effacer le Tableau "
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then Range(Cells(3, 5), Cells(10, 6)).Value = "" Else Exit Sub
Cells(3, 5).Value = MotRecherche
Cells(3, 6).Value = MotRemplace
SuivantFin:
End Sub
______________________________________________
Y a peut-être mieux, mais pour moi cela me suffit amplement.
A+
« De l'Elève naît le Maître, mais un Maître sans Elève ne reste qu'un savoir perdu. »
Donc, le problème, dans la liste suivante, est de remplacer une partie d'une chaine par une autre.
Exemple :
Extrait d'un document WordPad pour un sous-titrage en .srt copier/coller dans Excel sur une colonne.
Dans cette liste (6 à 1659), je veux remplacer "<font color="#FF00FF">" où qu'il se trouve dans la liste, avec par exemple "<font color="#32CD32">".
Avec la macro ci-dessous rien de plus facile. Ajouter un bouton (contrôle formulaire) dans votre feuille de calcul "Feuil1" et affecter lui la macro ci-dessous. Bien sur, il faut des données dans la colonne "A" qui soit quelque peu redondante, comme un fichier de sous-titre par exemple. Quel avantage d'utiliser une macro pour ne modifier qu'une dizaine de données. =)
Remarque: J'ai ajouté du code pour afficher les modifications effectuées dans les cellules E3:E10 (Partie de chaine à changée) et F3:F10 (Partie de chaine changée par :). Au-delà, une Box vous demande d'effacer le tableau pour recommencer à 0.
__________________________________________________
LISTE
6
00:01:05,009 --> 00:01:08,996
<font size="10"><font color="#FF00FF">Augmentation du fond sonore.</font>
7
00:01:27,929 --> 00:01:31,517
<font size="10"><font color="#FF00FF">Fond sonore
de plus en plus présent.</font>
........
1658
01:53:23,425 --> 01:53:24,927
<font size="10"><font color="#FFFFFF">
Aller, viens le chat.</font></font></font>
1659
01:53:47,171 --> 01:53:50,468
<font size="10"><font color="#FF0000">Musique douce et apaisante.
Générique de fin.</font></font>
___________________________________________
MACRO
Sub Bouton4_Clic()
Dim feuil As Worksheet
Dim MotRecherche As Variant
Dim MotRemplace As Variant
Dim Msg, Style, Title, Response, MyString
MotRecherche = InputBox("Quel partie de la chaine recherchez-vous ?", Title:="Recherche une partie de la chaine")
If MotRecherche = "" Then Exit Sub
MotRemplace = InputBox("Remplace partie de la chaine par : ", Title:="Remplace une partie de la chaine par : ")
If MotRemplace = "" Then Exit Sub
For Each feuil In ThisWorkbook.Worksheets
Worksheets("Feuil1").Columns("A").Replace What:=MotRecherche, Replacement:=MotRemplace
Next feuil
If Cells(3, 5).Value <> "" Then GoTo Suivant1
Cells(3, 5).Value = MotRecherche
Cells(3, 6).Value = MotRemplace
GoTo SuivantFin
Suivant1:
If Cells(4, 5).Value <> "" Then GoTo Suivant2
Cells(4, 5).Value = MotRecherche
Cells(4, 6).Value = MotRemplace
GoTo SuivantFin
Suivant2:
If Cells(5, 5).Value <> "" Then GoTo Suivant3
Cells(5, 5).Value = MotRecherche
Cells(5, 6).Value = MotRemplace
GoTo SuivantFin
Suivant3:
If Cells(6, 5).Value <> "" Then GoTo Suivant4
Cells(6, 5).Value = MotRecherche
Cells(6, 6).Value = MotRemplace
GoTo SuivantFin
Suivant4:
If Cells(7, 5).Value <> "" Then GoTo Suivant5
Cells(7, 5).Value = MotRecherche
Cells(7, 6).Value = MotRemplace
GoTo SuivantFin
Suivant5:
If Cells(8, 5).Value <> "" Then GoTo Suivant6
Cells(8, 5).Value = MotRecherche
Cells(8, 6).Value = MotRemplace
GoTo SuivantFin
Suivant6:
If Cells(9, 5).Value <> "" Then GoTo Suivant7
Cells(9, 5).Value = MotRecherche
Cells(9, 6).Value = MotRemplace
GoTo SuivantFin
Suivant7:
If Cells(10, 5).Value <> "" Then GoTo Suivant8
Cells(10, 5).Value = MotRecherche
Cells(10, 6).Value = MotRemplace
GoTo SuivantFin
Suivant8:
Msg = "Tableau plein. Voulez-vous l'effacer ?"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = "Effacer le Tableau "
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then Range(Cells(3, 5), Cells(10, 6)).Value = "" Else Exit Sub
Cells(3, 5).Value = MotRecherche
Cells(3, 6).Value = MotRemplace
SuivantFin:
End Sub
______________________________________________
Y a peut-être mieux, mais pour moi cela me suffit amplement.
A+
« De l'Elève naît le Maître, mais un Maître sans Elève ne reste qu'un savoir perdu. »