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

M000004965 147 Messages postés mercredi 3 décembre 2003Date d'inscription 12 juin 2008 Dernière intervention - 24 nov. 2005 à 16:51 - Dernière réponse : M000004965 147 Messages postés mercredi 3 décembre 2003Date d'inscription 12 juin 2008 Dernière intervention
- 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
NHenry 14269 Messages postés vendredi 14 mars 2003Date d'inscription 13 octobre 2018 Dernière intervention - 24 nov. 2005 à 17:48
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

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Meilleure réponse
jpleroisse 1788 Messages postés mardi 7 novembre 2000Date d'inscription 11 mars 2006 Dernière intervention - 24 nov. 2005 à 18:01
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.

Merci jpleroisse 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

NHenry 14269 Messages postés vendredi 14 mars 2003Date d'inscription 13 octobre 2018 Dernière intervention - 24 nov. 2005 à 16:58
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
M000004965 147 Messages postés mercredi 3 décembre 2003Date d'inscription 12 juin 2008 Dernière intervention - 24 nov. 2005 à 17:28
0
Merci
j'ai déjà essayé, ça ne fonctionne pas:

erreur de compilation:
Sub ou Fonction non définie
NHenry 14269 Messages postés vendredi 14 mars 2003Date d'inscription 13 octobre 2018 Dernière intervention - 24 nov. 2005 à 17:36
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
M000004965 147 Messages postés mercredi 3 décembre 2003Date d'inscription 12 juin 2008 Dernière intervention - 24 nov. 2005 à 18:03
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....)
M000004965 147 Messages postés mercredi 3 décembre 2003Date d'inscription 12 juin 2008 Dernière intervention - 24 nov. 2005 à 18:18
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.
M000004965 147 Messages postés mercredi 3 décembre 2003Date d'inscription 12 juin 2008 Dernière intervention - 24 nov. 2005 à 18:20
0
Merci
Dernière question...

A quoi sert le boutton "Réponse acceptée !"
Il cloture l'appel?
jpleroisse 1788 Messages postés mardi 7 novembre 2000Date d'inscription 11 mars 2006 Dernière intervention - 24 nov. 2005 à 18:36
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
M000004965 147 Messages postés mercredi 3 décembre 2003Date d'inscription 12 juin 2008 Dernière intervention - 24 nov. 2005 à 18:50
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.