substitution - case changée sans consentement

  • Initiateur de la discussion Initiateur de la discussion ttlan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ttlan

XLDnaute Nouveau
Bonjour,

Dans une cellule, j'ai un texte quelconque en majuscules et minuscules - la case des caractères d'origine doit impérativement restée inchangée.

Il se trouve le caractère "-" (tiret)

Je veux substituer ce tiret par %3A

Je tiens à ce que la substitution soit exactement %3A or elle est minusculisée (%3a) ! De quoi je me mêle !

Comment dire à Excel que je suis assez grand pour savoir ce que je veux et l'empêcher de prendre des initiatives déplacées et malheureuses ?

exemple :
k:eng doit devenir k%3Aeng et non pas k%3aeng

_____________________________________________________

Question subsidiaire
Y a t'il une méthode plus simple que d'aligner plein de substitutions pour remplacer, dans un texte sur excel,

1/ les caractères latin (é, è, ç, à etc. ...) en leurs conversions en échappement% (ANSI escape) et inversement
! = %21
:=%3A
etc. ...

2/ conversions en &machin; (vers du html) et inversement
é = é
è = è
etc. ...

Merci
 
Re : substitution - case changée sans consentement

bonjour ttlan,

pas de prob avec la fonction substitue chez moi, il me mets bien le - en %3A

sinon, pour remplacer les caractères en ansi escape, oui, possible avec une table de conversion ansi et le code VBA associé ...
 
Re : substitution - case changée sans consentement

Bonjour Ttlan, le forum,

En supposant tes données en A1 :

=SUBSTITUE(A1;":";MAJUSCULE("%3a")).

Par contre pour ta question susidiaire, là je ne sais pas et je laisse la main à quelqu'un d'autre qui pourra sans doute mieux te guider.

@+
Fchris
 
Re : substitution - case changée sans consentement

il y a longtemps, j'avais codé deux petites fonctions

il te reste à adapter le problème des accents :

Code:
 Public Function Unescape(ByVal str As String) As String
 out = ""
If Len(str) > 0 Then
 str = Replace(str, "+", " ")
 I = 1
 Do While I <= Len(str)
If Mid(str, I, 1) = "%" Then
 Cod = Mid(str, I + 1, 2)
If Len(Cod) = 2 Then
 out = out & Chr(CInt("&H" & Cod))
 I = I + 3
Else
 out = out & Mid(str, I, 1)
 I = I + 1
End If
Else
 out = out & Mid(str, I, 1)
 I = I + 1
End If
 Loop
End If
 Unescape = out
 End Function

 Public Function Escape(ByVal str As String) As String
 strNocode = "*+-./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"
 out = ""
If Len(str) > 0 Then
 str = Replace(str, " ", "+")
 For I = 1 To Len(str)
 Car = Mid(str, I, 1)
If InStr(strNocode, Car) Then
 out = out & Car
Else
 out = out & "%" & Hex(Asc(Car))
End If
 Next I
End If
 Escape = out
 End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour