fonction replace

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #18191871
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



elect31
Le #18198291
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





Publicité
Poster une réponse
Anonyme