Changement de caractères dans une chaine
Fermé
DragonRouge
Messages postés
337
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
25 janvier 2014
-
23 janv. 2014 à 19:49
DragonRouge Messages postés 337 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 25 janvier 2014 - 25 janv. 2014 à 18:21
DragonRouge Messages postés 337 Date d'inscription lundi 11 juin 2007 Statut Membre Dernière intervention 25 janvier 2014 - 25 janv. 2014 à 18:21
A voir également:
- Changement de caractères dans une chaine
- Caractères ascii - Guide
- Changer de dns - Guide
- Caractères spéciaux clavier azerty - Guide
- Chaine tnt gratuite sur mobile - Guide
- Changement d'écriture - Guide
3 réponses
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
24 janv. 2014 à 10:04
24 janv. 2014 à 10:04
Bonjour,
Pourquoi avec VBA ? Avec le bloc-notes "remplacer tout" n'est pas suffisant ?
A+
Pourquoi avec VBA ? Avec le bloc-notes "remplacer tout" n'est pas suffisant ?
A+
DragonRouge
Messages postés
337
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
25 janvier 2014
13
24 janv. 2014 à 18:37
24 janv. 2014 à 18:37
1657 lignes, ouahou...
En fait, j'ai trouvé une solution avec VBA.
Merci qu'en même.
A+
En fait, j'ai trouvé une solution avec VBA.
Merci qu'en même.
A+
JvDo
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
858
24 janv. 2014 à 18:48
24 janv. 2014 à 18:48
Bien explique ce que tu as fait!!
Montre ton code qu'on puisse s'en inspirer.
ça peut intéresser du monde.
Cdlt
Montre ton code qu'on puisse s'en inspirer.
ça peut intéresser du monde.
Cdlt
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
Modifié par Zoul67 le 24/01/2014 à 19:57
Modifié par Zoul67 le 24/01/2014 à 19:57
Je ne comprends toujours pas... "Remplacer tout" remplace...tout. Féclicitations pour la macro mais quel était l'intérêt de VBA ?
DragonRouge
Messages postés
337
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
25 janvier 2014
13
Modifié par DragonRouge le 25/01/2014 à 18:31
Modifié par DragonRouge le 25/01/2014 à 18:31
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. »