[RESOLU] Ne garder que chaine à droite

cathodique

XLDnaute Barbatruc
Bonjour,

Je voudrai svp en vba balayer une plage de cellules et ne garder que la chaine de caractères se trouvant à droite du signe ":" (2 points). ce signe doit aussi être supprimé.

exemple----> Prévention : Hygiène scrupuleuse des accessoires et de la cage.
Résultat escompté-----> Hygiène scrupuleuse des accessoires et de la cage.

En vous remerciant par avance.

nb: le fichier original comporte beaucoup plus de lignes
 

Pièces jointes

  • Traitements.xlsm
    10.5 KB · Affichages: 40
Dernière édition:

cathodique

XLDnaute Barbatruc
Merci beaucoup Sousou, c'est un bon début. je vais essayer d'adapter ton code.
En fait, mon tableau est assez grand, je glane sur le net des traitements de maladies d'oiseaux pour faire une base de données.

Je voulais remplacer le contenu des cellules (celles qui contiennent une chaine de caractères de part et d'autre du ":"), par juste ce qu'il y a à droite du ":".

Bon WE à toutes et à tous.
 

Lone-wolf

XLDnaute Barbatruc
Bonjour cathodique, Cath et bonne année :)

Si je ne dit pas de connerie, en reprenant l'exemple de sousou

Sub deb()
For Each i In Selection
resultat = Left(i, Len(i) - InStrRev(i, ":")) & Right(i, Len(i) - InStrRev(i, ":"))
MsgBox resultat
Next
End Sub
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Bonjour Cathodique, Sousou, Lone-wolf, le Forum,

Autre façon de procéder:

Sub Demo()
Application.ScreenUpdating = False
For Each cel In Cells.SpecialCells(xlCellTypeConstants)
cel.Value = Trim(Replace(cel.Value, Left(cel.Value, InStr(cel.Value, ":")), ""))
Next
Application.ScreenUpdating = True
End Sub

La boucle balaie uniquement les cellules remplies et supprime la partie située à gauche du deux-points (celui-ci inclus).

Cordialement.
 

Pièces jointes

  • Copie de Traitements.xlsm
    21.8 KB · Affichages: 32

Lone-wolf

XLDnaute Barbatruc
Bonjour Si... :)

Voilà, j'ai ajouter des conditions mais je ne sais pas si c'est correct.

VB:
Sub Decompose()
Dim derlig&, k&
Dim NPr$, t1$, t2$, t3$

  On Error Resume Next
  With Feuil1
  derlig = .Range("A" & Rows.Count).End(xlUp).Row
  For k = 2 To derlig
  NPr = .Range("A" & k)
  If .Range("A" & k) Like "*.*" Or .Range("A" & k) Like "*;*" _
  Or .Range("A" & k) Like "*:*" Then
  t1 = Split(NPr, ":")(0)
  t2 = Split(NPr, ":")(1)
  t3 = Split(NPr, ":")(2)
  End If
  t1 = Replace(t1, t1, "OH")
  t2 = Replace(t2, t2, "LA")
  t3 = Replace(t3, t3, "LA !")

  resultat = "" & .Range("A" & k).Address & ":  " & _
  Left(t1, Len(t1) - InStrRev(t1, ":")) & ", " & _
  Right(t2, Len(t2) - InStrRev(t2, ":")) & ", " & _
  Right(t3, Len(t3) - InStrRev(t3, ":"))
  MsgBox resultat
  Next k
  End With
End Sub
 

cathodique

XLDnaute Barbatruc
Merci beaucoup Sousou, c'est un bon début. je vais essayer d'adapter ton code.
En fait, mon tableau est assez grand, je glane sur le net des traitements de maladies d'oiseaux pour faire une base de données.

Je voulais remplacer le contenu des cellules (celles qui contiennent une chaine de caractères de part et d'autre du ":"), par juste ce qu'il y a à droite du ":".

Bon WE à toutes et à tous.
 

Statistiques des forums

Discussions
312 198
Messages
2 086 132
Membres
103 127
dernier inscrit
willwebdesign