Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[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:

sousou

XLDnaute Barbatruc
Bonjour voilà de quoi t'expliquer l'instruction
Selectionne une plage de cellule et lance la macro
Sub deb()
For Each i In Selection
resultat = Right(i, Len(i) - InStrRev(i, ":"))
MsgBox resultat
Next
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.
 

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 Papou-net et bonne année

En prenant comme exemple SOLEIL:ÉTÉ:MER dans une seule cellule. Résultats en PJ.
 

Pièces jointes

  • Classeur1.xlsm
    17.8 KB · Affichages: 34
Dernière édition:

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.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…