Supprimer des caractères dans une variable en VBA(excel) [Résolu]

Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
- - Dernière réponse : M000004965
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
- 24 nov. 2005 à 18:50
Bjr tt le monde,

je sèche sous VBA:
Dans un Excel, je doit lire des cellules qui contiennent des adresses MAC.
Ces adresses sont saisies en copier coller depuis des fenêtres DOS et le responsable info
exige que les adresses reste notées comme suit : 00:0B:5D:73:6D:96
et ce pour des raisons de lisibilité dans le fichier.

Je doit construire un fichier texte destiné à alimenter un serveur DHCP.
j'ai donc une variable string qui récupère l'adresse MAC:
MakeAddMAC = ActiveCell.Value '00:0B:5D:73:6D:96
Comment je vire les ":" ???

la ref à la fonction REPLACE n'est pas possible car je ne donne que le fichier .BAS qui sera utilisé par des novices.

d'avance, merci à tous
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
14323
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
15 décembre 2018
3
Merci
Essaye cette fonction :



private function DelCar(byval OrigStr as string, byval Car as string) as string



dim mStr as string

dim i as long

mstr=""



for i=1 to len(OrigStr)

if mid$(OrigStr,i,1)<>Car then mStr=mStr+mid$(OrigStr,i,1)
next


DelCar=mStr



end function

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NH

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Dernière intervention
11 mars 2006
3
Merci
Bonjour,



Option Explicit

Public Function Replace( _

ByVal expression As String, _

ByVal find As String, _

ByVal replacewith As String, _

Optional ByVal start As Long = 1, _

Optional ByVal count As Long = -1, _

Optional ByVal compare As Long)



Dim lenFind As Long

Dim lenNext As Long

Dim lenReplace As Long

Dim lenExpression As Long



'Emulation de Const vbUseCompareOption = -1

If IsEmpty(compare) Or _

((compare <> vbBinaryCompare) And (compare <> vbTextCompare)) Then

compare IIf("A" "a", vbTextCompare, vbBinaryCompare)

End If



If start > Len(expression) Then

Replace = vbNullString

Else

If Not ((start < 1) Or _

(start > Len(expression)) Or (find = vbNullString)) Then

lenFind = Len(find)

lenReplace = Len(replacewith)

start = InStr(start, expression, find, compare)

Do While (start <> 0) And (count <> 0)

lenExpression = Len(expression)

lenNext = start + lenFind

expression = Mid$(expression, 1, start - 1) & replacewith & _

IIf(lenNext <= lenExpression, _

Mid$(expression, lenNext), vbNullString)

count = count - 1

start = InStr(start + lenReplace, expression, find, compare)

Loop

End If

Replace = expression

End If



End Function



Sub test()

Dim b

b = Range("C1").Value 'La celulle C1 contient (00:21:54:87)

MsgBox Replace(b, ":", "")

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Messages postés
14323
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
15 décembre 2018
0
Merci
replace MakeAddMAC,":","")

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NH
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
0
Merci
j'ai déjà essayé, ça ne fonctionne pas:

erreur de compilation:
Sub ou Fonction non définie
Messages postés
14323
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
15 décembre 2018
0
Merci
MakeAddMAC=replace(
MakeAddMAC,":","")

Voila, je ne sais pas pkoi, la 1ere paranthèse n'est pas passée, mais le pb est ptete ailleur.


Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NH
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
0
Merci
OPSSS,

désolé, j'utilise rarement le forum...
ça ne se reproduira pas sans y avoir été invité.
(...je viens même de découvrir l'option du webmail sur le forum....)
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
0
Merci
Merci Nh !!!,


ta fonction est OK !
je suis sur ce problème depuis fin de matinée...
J'espère que j'aurai l'occasion de te renvoyer l'ascenseur...

Merci également à jpleroisse, je testerai ce code ce soir chez moi ou demain et je ferai un retour dessus.
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
0
Merci
Dernière question...

A quoi sert le boutton "Réponse acceptée !"
Il cloture l'appel?
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Dernière intervention
11 mars 2006
0
Merci
Re,

Le bouton Réponse Acceptée signale au autres posteur que tu a la
solution à ton problèmes (pour éviter d'ouvrir le post inutilement,
sauf peut-être si d'autres sont intéressés et vont voir la réponse)



jpleroisse
Messages postés
147
Date d'inscription
mercredi 3 décembre 2003
Dernière intervention
12 juin 2008
0
Merci
A jpleroisse,
je confirme que ton code fonctionne et qu'il convient également à mon problème.

Merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.