Rechercher et Remplacer en VBA

Sirberthoult

XLDnaute Occasionnel
Bonjour le forum

je souhaite utiliser Rechercher chaque contenue de cellule commençant par "08h00 - ... " et le Remlacer par "08h00" en VBA

il peut y avoir des "08h00 - 11h45" ou des "08h00 - 12h00" ou d'autre ... mais je souhaiterai que ce soit toujours strictement remplacer par "08h00"


de même quand il y a des cellules qui finissent toujours par " ... - 16h00" que ce soit Remplacer par "16h00"

il peut y avoir des "14h00 - 16h00" ou des " 13h30 - 16h00" ou d'autre encore ... mais je souhaiterai que ce soit toujours strictement remplacer par "16h00"

merci d'avance
 

Lolote83

XLDnaute Barbatruc
Salut,
En imaginant que tes données soient en colonne C, la formule suivante extraira si début = 08h00 et si fin = 16h00
Une fois la formule tirée sur toutes tes colonnes, un simple copier-coller les valeurs pourrait faire l'affaire
Formule : =SI(GAUCHE(C8;5)="08h00";"08h00";SI(DROITE(C8;5)="16h00";"16h00";"autre"))
En espérant avoir bien ciblé ta demande
Le seul HIC serait si tu as par exemple 08h00 - 16h00 et encore cela donnerait 08h00
@+ Lolote83
 

Paf

XLDnaute Barbatruc
bonjour

en supposant que les données sont en colonne C à partir de la ligne 1, à tester,

Code:
Sub Macro()
With WorkSheets("Feuil1")
For i= 1 to .Range("C" & Rows.Count).End(xlUp).Row
       if .cells(i,3) like "08h00*" then .cells(i,3)="08h00"
       if .cells(i,3) like "*16h00" then .cells(i,3)="16h00"
next
End Sub

Avec le même inconvénient que celui signalé par Lolote83

A+
 

Sirberthoult

XLDnaute Occasionnel
Bonsoir

merci pour vos réponse.

lolote83 : je souhaiterais une solution VBA

Paf : mon but et de transformer ce code en macro complémentaire pour différent fichier et les données ce trouvent dans différentes cellules dans toutes la feuille et pas seulement que dans une colonne isolé...

j'ai utilisé l'enregistreur de macro pour obtenir un bout de code mais c'est très sélectif... et doit en créer un pour chaque cas de figure ... j espéré une solution plus universelle ...
 

Paf

XLDnaute Barbatruc
Re,

alors plutôt comme ceci:

Code:
Sub Macro()
Dim cel As Range, Ws As Worksheet
For Each Ws In Worksheets
  For Each cel In Ws.UsedRange
  If cel.Value Like "08h00*" Then cel.Value = "08h00"
  If cel.Value Like "*16h00" Then cel.Value = "16h00"
  Next
Next
End Sub

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 393
Membres
103 537
dernier inscrit
alisafred974