Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction replace

2 réponses
Avatar
elect31
Bonjour à tous et bonnes fêtes
Bon! je ne suis pas encore en vacances...
La fonction collée ci-dessous ne fonctionne pas ( un comble...)avec
select case.
Je m'y prends surement mal : je voudrais remplacer les caractères
interdits par "_" dans le nom d'une feuille.

SearchChar reste à "" et ne prend pas les différentes valeurs...

Function date_Feuille()
Dim MyDate As String, SearchChar As String, date_seance As String
MyDate = InputBox("Date de la séance :", "Nommer la feuille", Date)
'Controle la date de la séance et remplace les caractères interdits
'par underscore.
Select Case SearchChar
Case SearchChar = "/"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = "\"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = "?"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = "*"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
End Select
End Function

Merci de vos réponses

2 réponses

Avatar
LSteph
Bonjour,

Ce n'est pas entièrement clair, tu dis d'entrer un nom pour la feuille
et tu parles de la date de la séance .. où? Bon je fais un exemple où
l'utilisateur entre le nom et je mets la date de maintenant.
(tu n'auras qu'à remplacer l'expression
format(now,"yyyy-mm-dd") par [A1] si la date est en A1)
D'autre part faut pas dépasser 31 et les interdits sont aussi :[]
Pour faire cela je t'ai mis la sub nécessaire et une fonction puisque tu
en voulais une :

Function reStr(myStr As String) As String
Dim i As Integer
For i = 1 To Len(myStr)
Select Case Mid(myStr, i, 1)
Case ":", "", "/", "*", "?", "[", "]"
reStr = reStr & "_"
Case Else
reStr = reStr & Mid(myStr, i, 1)
End Select
Next
End Function

Sub nommeF()
Dim fname As String
fname = InputBox(" Nommer la feuille ", " Entrer un nom: ")
fname = Format(Now, "yyyy-mm-dd") & "-" & fname
ActiveSheet.Name = Left(reStr(fname), 31)
End Sub


'lSteph

elect31 a écrit :
Bonjour à tous et bonnes fêtes
Bon! je ne suis pas encore en vacances...
La fonction collée ci-dessous ne fonctionne pas ( un comble...)avec
select case.
Je m'y prends surement mal : je voudrais remplacer les caractères
interdits par "_" dans le nom d'une feuille.

SearchChar reste à "" et ne prend pas les différentes valeurs...

Function date_Feuille()
Dim MyDate As String, SearchChar As String, date_seance As String
MyDate = InputBox("Date de la séance :", "Nommer la feuille", Date)
'Controle la date de la séance et remplace les caractères interdits
'par underscore.
Select Case SearchChar
Case SearchChar = "/"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = ""
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = "?"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = "*"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
End Select
End Function

Merci de vos réponses



Avatar
elect31
Bonsoir et merci à LSteph

LSteph a écrit :
Bonjour,

Ce n'est pas entièrement clair, tu dis d'entrer un nom pour la feuille
et tu parles de la date de la séance .. où? Bon je fais un exemple où
l'utilisateur entre le nom et je mets la date de maintenant.
(tu n'auras qu'à remplacer l'expression
format(now,"yyyy-mm-dd") par [A1] si la date est en A1)
D'autre part faut pas dépasser 31 et les interdits sont aussi :[]
Pour faire cela je t'ai mis la sub nécessaire et une fonction puisque tu
en voulais une :

Function reStr(myStr As String) As String
Dim i As Integer
For i = 1 To Len(myStr)
Select Case Mid(myStr, i, 1)
Case ":", "", "/", "*", "?", "[", "]"
reStr = reStr & "_"
Case Else
reStr = reStr & Mid(myStr, i, 1)
End Select
Next
End Function

Sub nommeF()
Dim fname As String
fname = InputBox(" Nommer la feuille ", " Entrer un nom: ")
fname = Format(Now, "yyyy-mm-dd") & "-" & fname
ActiveSheet.Name = Left(reStr(fname), 31)
End Sub


'lSteph

elect31 a écrit :
Bonjour à tous et bonnes fêtes
Bon! je ne suis pas encore en vacances...
La fonction collée ci-dessous ne fonctionne pas ( un comble...)avec
select case.
Je m'y prends surement mal : je voudrais remplacer les caractères
interdits par "_" dans le nom d'une feuille.

SearchChar reste à "" et ne prend pas les différentes valeurs...

Function date_Feuille()
Dim MyDate As String, SearchChar As String, date_seance As String
MyDate = InputBox("Date de la séance :", "Nommer la feuille", Date)
'Controle la date de la séance et remplace les caractères interdits
'par underscore.
Select Case SearchChar
Case SearchChar = "/"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = ""
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = "?"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
Case SearchChar = "*"
date_seance = Replace(MyDate, SearchChar, "_", 1, -1, vbTextCompare)
date_Feuille = date_seance
End Select
End Function

Merci de vos réponses