Bonsoir à tous,
J'ai un soucis de conversion d'une macro crée sur excel 2003 en excel 97.
J'utilise la fonction replace (excel2003) pour me changer les nombres décimal ecrit avec un point en nombre decimal ecrit avec une virgule.
Sur le 97 cette fonction n'existe pas, j'ai trouvé sur le net une macro qui "créé" cette macro dans le 97.
la voici:
SourcePublic Function Remplace(ByVal classStringValue As String, _
ByVal strSearch As String, _
ByVal strReplac As String, _
Optional ByVal IntStart As Integer = 0, _
Optional ByVal intCount As Integer = 2 ^ 16 / 2 - 1) As String
' ------------------------------------------------
' strSearch : chaîne recherchée
' strReplac : chaîne qui se substituera
' IntStart : Nombre d'occurrences à partir de laquelle commenceront les remplacements (par défaut 0)
' IntCount : Nombre de valeurs qui seront remplacées (par défaut le maximum pour un type Integer)
' ------------------------------------------------
Dim i As Integer, iCount As Integer, iStart As Integer
Dim strOut As String 'chaîne qui contiendra le résultat
iCount = 0
iStart = 0
If Len(classStringValue) > 0 Then
i = 1
' Boucle qui parcourt la chaîne
Do While i <= Len(classStringValue)
If Mid(classStringValue, i, Len(strSearch)) = strSearch And iCount < intCount Then
'cas d'une occurence trouvée et le nb maximum de remplacements n'est pas atteint
If iStart >= IntStart Then
strOut = strOut & strReplac
i = i + Len(strSearch)
iCount = iCount + 1 'on incrémente le compteur de remplacements
iStart = iStart + 1 'on incrémente le compteur d'occurences trouvées
Else 'le nombre de remplacement est atteint on laisse le caractère d'origine
iStart = iStart + 1
strOut = strOut & Mid(classStringValue, i, 1)
i = i + 1
End If
Else 'il n'y a pas de remplacement à faire la chaîne recherchée n'est pas trouvée
strOut = strOut & Mid(classStringValue, i, 1)
i = i + 1
End If
Loop
Remplace = strOut
Else
Remplace = ""
End If
End Function
mais il me met une erreur que je sais pas reparer. Il me revoit à cette macro en me soulignant " mid "
ou est l'erreur... je galère...
Si quelqu'un peut me filler un coup de pouce....
Merci encore..
seb
J'ai un soucis de conversion d'une macro crée sur excel 2003 en excel 97.
J'utilise la fonction replace (excel2003) pour me changer les nombres décimal ecrit avec un point en nombre decimal ecrit avec une virgule.
Sur le 97 cette fonction n'existe pas, j'ai trouvé sur le net une macro qui "créé" cette macro dans le 97.
la voici:
SourcePublic Function Remplace(ByVal classStringValue As String, _
ByVal strSearch As String, _
ByVal strReplac As String, _
Optional ByVal IntStart As Integer = 0, _
Optional ByVal intCount As Integer = 2 ^ 16 / 2 - 1) As String
' ------------------------------------------------
' strSearch : chaîne recherchée
' strReplac : chaîne qui se substituera
' IntStart : Nombre d'occurrences à partir de laquelle commenceront les remplacements (par défaut 0)
' IntCount : Nombre de valeurs qui seront remplacées (par défaut le maximum pour un type Integer)
' ------------------------------------------------
Dim i As Integer, iCount As Integer, iStart As Integer
Dim strOut As String 'chaîne qui contiendra le résultat
iCount = 0
iStart = 0
If Len(classStringValue) > 0 Then
i = 1
' Boucle qui parcourt la chaîne
Do While i <= Len(classStringValue)
If Mid(classStringValue, i, Len(strSearch)) = strSearch And iCount < intCount Then
'cas d'une occurence trouvée et le nb maximum de remplacements n'est pas atteint
If iStart >= IntStart Then
strOut = strOut & strReplac
i = i + Len(strSearch)
iCount = iCount + 1 'on incrémente le compteur de remplacements
iStart = iStart + 1 'on incrémente le compteur d'occurences trouvées
Else 'le nombre de remplacement est atteint on laisse le caractère d'origine
iStart = iStart + 1
strOut = strOut & Mid(classStringValue, i, 1)
i = i + 1
End If
Else 'il n'y a pas de remplacement à faire la chaîne recherchée n'est pas trouvée
strOut = strOut & Mid(classStringValue, i, 1)
i = i + 1
End If
Loop
Remplace = strOut
Else
Remplace = ""
End If
End Function
mais il me met une erreur que je sais pas reparer. Il me revoit à cette macro en me soulignant " mid "
ou est l'erreur... je galère...
Si quelqu'un peut me filler un coup de pouce....
Merci encore..
seb