Macro pour trouver et remplacer un caractère

excel12

XLDnaute Nouveau
Bonjour à tous!

J'ai un fichier Excel qui contient 5000 lignes et 4 colonnes. Dans ma quatrième colonne, j'ai plusieurs mots séparés par des points-virgules « ; ».

J'aimerais que le contenu avant le premier « ; » reste dans la quatrième colonne et que l'autre partie se déplace dans la cinquième colonne.

Avec Donnée, convertir, séparateur «;», je peux transférer les mots qui sont séparés dans la prochaine colonne. Mais parfois, j'ai des lignes où il y a plusieurs «;» et je ne veux pas que tous les mots de la cinquième colonne se répartissent dans plusieurs colonnes.

Donc, si quelqu'un aurait une idée de comment créer une macro qui permettrait de trouver le premier point-virgule « ; » dans chaque ligne dans la quatrième colonne et le remplacer par le caractère «#». Ensuite, je pourrais utiliser: Données, convertir, séparateur «#» et alors, j'aurais obtenu le résultat souhaité.

Merci beaucoup pour votre aide, c'est très gentil de m'aider.

Excel12
 

Eric 45

XLDnaute Occasionnel
Bonjour à tous
Bonjour excel12

Comme ceci :
Code:
Sub divise()

  Range("E4") = Mid(Range("D4"), InStr(Range("D4"), ";") + 1)
  Range("D4") = Mid(Range("D4"), 1, InStr(Range("D4"), ";") - 1)
End Sub
et tu mets dans une boucle.

Eric
 

excel12

XLDnaute Nouveau
Bonjour Eric,

Merci beaucoup d’avoir pris le temps de me répondre. C’est très gentil. J’ai essayé d’utilisé le code que vous m’avez donné, mais je n’ai pas réussir à réaliser ce que je souhaitais. La programmation, ce n’est vraiment pas ma tasse de thé.

Alors, pour simplifier les choses, j’ai téléversé un fichier Excel «Macro pour trouver et remplacer un caractère». J’ai aussi ajouté d’autres explications dans le fichier.

Quand vous aurez un peu de temps libre, merci de bien vouloir utiliser votre code sur mon fichier exemple pour que je puisse bien comprendre comment faire.

Passez une belle fin de semaine,

Excel12
 

Pièces jointes

  • Macro pour trouver et remplacer un caractère.xlsx
    11.7 KB · Affichages: 30

excel12

XLDnaute Nouveau
Bonjour M12,

Merci beaucoup pour votre aide. Le code fonctionne très bien.

Je viens de tester avec mon fichier de 5000 mots. J’ai un petit problème. J’avais oublié de préciser que certaines cellules ont seulement un mot, par conséquent elles n’ont pas de point-virgule «;».

Comment faire alors pour dire à Excel de passer à la ligne suivante s’il ne trouve pas de point-virgule « ;» ?

J’ai joint un nouveau fichier Excel «Macro pour trouver et remplacer un caractère-2.0.xlsm» Il contient 50 lignes au lieu des 10 lignes de l’ancien fichier.

Merci beaucoup pour votre aide, j’apprécie beaucoup. :)

Passez une excellente journée !

Excel12
 

Pièces jointes

  • Macro pour trouver et remplacer un caractère-2.xlsm
    23.1 KB · Affichages: 30

Eric 45

XLDnaute Occasionnel
Bonjour à tous
Bonjour excel12

Comme ceci :
Code:
Sub divise()
Dim DernLigne As Long
Dim i As Integer
DernLigne = Range("A" & Rows.Count).End(xlUp).Row 'Cherche la dernière ligne remplidepuis la colonne A
    For i = 1 To DernLigne 'boucle de la ligne 1 à la dernière ligne
        If InStr(Range("D" & i), ";") > 0 Then
            Range("E" & i) = Mid(Range("D" & i), InStr(Range("D" & i), ";") + 1)
            Range("D" & i) = Mid(Range("D" & i), 1, InStr(Range("D" & i), ";") - 1)
        End If
    Next i
End Sub

Eric
 

Discussions similaires

Réponses
6
Affichages
384

Statistiques des forums

Discussions
315 087
Messages
2 116 084
Membres
112 655
dernier inscrit
fannycordi