Formule VBA pour remplacement des valeurs dans des cellules

Bonjour,

je besoin de votre aide, concernant les codes VBA me permettant de creer un module pour remplacer des donner des cellules via les données saisi dans un input box. voici les codes que j'ai essayé de rédiger mais qui bloque dans l'exécution vers la fin.

Sub traitement_date()
Dim resultat1, resultat2 As String
resultat1 = InputBox("remplacement1", "remplacer date debut:", "30/06/2017 00:00:00")
resultat2 = InputBox("remplcament2", "remplacer date fin:", "30/06/2017 00:00:00")
'Sheets("Crédit").Select
'Columns("I:I").Select
Range("F1:F20000").Select
' prcedure de remplacement
Selection.Replace what:=resultat1, replacement:=resultat2, lookat:=xlPart, _
searchOrder:=xlByRows, MatchCase:=False, searchformat:=False, replacementformat:=False

End Sub

En attache le fichiers avec des dates.

Merci de votre aide, en attente.

18remplacement.xlsm (111.77 Ko)

Bonsoir

Erreur de syntaxe : replacement à remplacer par replace

replacementformat:=False

=>

ReplaceFormat:=False

De même :

resultat2 = InputBox("remplcament2", "remplacer date fin:", "30/06/2017 00:00:00")

=>

resultat2 = InputBox("remplacement2", "remplacer date fin:", "30/06/2017 00:00:00")

Là, c'est moins grave

Bonne soirée

Bouben

Merci, pour la correction, il n'y a plus d'erreur de syntaxe, il reste des erreur de la sémantique.

Les codes ne fonctionnent pas selon que je m'attendais.

dans le premier inputbox j'ai inséré le "02/08/2017 00:00:00" et dans le deuxième inputbox "31/07/2017" mais aucun changement après exécution.

Avec des nombre simple, ça c'est modifie, mais quand il s'agit de date, c'est là que ça ne fonctionne pas comme attendu.

Bonjour, Salut Bouben !

Suggestion

Sub traitement_date()
    Dim resultat1, resultat2, c As Range
    resultat1 = InputBox("remplacement1", "remplacer date debut:", "30/06/2017 00:00:00")
    resultat1 = CLng(DateValue(Split(resultat1)(0))) + TimeValue(Split(resultat1)(1))
    resultat2 = InputBox("remplacement2", "remplacer date fin:", "30/06/2017 00:00:00")
    resultat2 = CLng(DateValue(Split(resultat2)(0))) + TimeValue(Split(resultat2)(1))
    Application.ScreenUpdating = False
    For Each c In ActiveSheet.Range("F1:F20000")
        If c.Value2 = resultat1 Then c.Value2 = resultat2
    Next c
End Sub

Cordialement.

edit : F1:F20000 serait à limiter à la plage effectivement utilisée... ! (je n'ai pas pris le temps de le faire)

Rechercher des sujets similaires à "formule vba remplacement valeurs"