VBA fonction Replace

Bonjour.

Je suis débutant en Vba Excel et je commence à me poser mes premières questions.

Je voulais tester une macro avec la fonction replace mais j'ai une erreur d'exécution 5.

Situation: sur une feuille j'ai mis les noms suivants de A1 à A4:

Jean, Pierre, Paul, Jacques

Avec la fonction Replace, je voulais remplacer Paul par Toto.

Voici ma macro:

Sub texte()
    Dim tablo() As String
    Dim compteur As Byte
    compteur = 0
    Dim i As Integer

    Do
    compteur = compteur + 1
    Loop Until IsEmpty(Cells(compteur, 1))
    compteur = compteur - 1

    ReDim tablo(compteur)

    For i = 1 To compteur
        [color=#FF0000]Cells(i, 1) = Replace(Cells(i, 1).Value, "Jean", "Toto", -1, vbBinaryCompare)[/color]
    Next i

End Sub

Cette macro peut paraître lourde, mais j'essaye d'appliquer mon apprentissage.

La ligne qui ne fonctionne pas est soulignée en rouge.

Pouvez-vous m'expliquer où est mon erreur ?

Je vous remercie d'avance de votre réponse.

Bonjour et bienvenue sur le forum,

La partie ", -1, vbBinaryCompare" de ta fonction Replace est inutile ici. De plus, l'argument "-1" est faux puisque normalement il faut mettre la position où la recherche doit commencer. La position par défaut est 1 (premier caractère). Le caractère "-1" est donc inexistant.

Je vois aussi que tu crées une boucle pour déterminer la dernière ligne. Il existe une façon plus simple.

Voici un code plus optimisé :

Sub texte()
    Dim i As Long, derlign As Long
    derlign = Range("A65000").End(xlUp).Row 'donne la dernière ligne non vide en colonne A
    For i = 1 To derlign
        Cells(i, 1) = Replace(Cells(i, 1).Value, "Jean", "Toto")
    Next i
End Sub

Merci vba-new.

Je pense que je vais mieux me documenter sur les commandes de placement en début et fin de cellule:

ça m'évitera de faire des boucles inutiles.

Au passage je voudrais dire quelque chose: j'essaye d'apprendre VBA avec un bouquin mais c'est super lourd. Je pense qu'en faisant ses propres macros et en parcourant les forums l'apprentissage sera rapide et efficace.

flyEmirates a écrit :

Au passage je voudrais dire quelque chose: j'essaye d'apprendre VBA avec un bouquin mais c'est super lourd. Je pense qu'en faisant ses propres macros et en parcourant les forums l'apprentissage sera rapide et efficace.

Je suis tout à fait d'accord avec toi ! Le mélange macros perso+enregistreur de macro+aide VBA (F1)+ forums y'a rien de mieux pour commencer !
Rechercher des sujets similaires à "vba fonction replace"