VBA Excel : appel erroné pour procédure Mid

Résolu/Fermé
Edouard - 7 févr. 2011 à 00:43
 Edouard - 7 févr. 2011 à 11:54
Bonjour,

J'essaie de coder une macro sous excel 2007 pour traiter du texte. Le code ci-dessous traite mon texte comme je l'attends mais j'obtiens une erreur d'exécution "5" appel de procédure incorrect.

La macro fonctionne donc je n'arrive pas à comprendre le problème. D'après le débogueur, l'erreur vient de la procédure en gras et souligné dans le code. J'ai vérifié dans l'aide la façon de l'appeler et ça me parait correct. Si quelqu'un a une suggestion à me faire, ce serait avec grand plaisir que je la lirais.

Cordialement,

Edouard.

Je copie le code :

Option Explicit

Sub ExtraireAdresse()
 
 Dim PosG As Integer, PosD As Integer
 'PosG correspond à la position dans la chaîne de caractère où apparaît "<" c'est un entier
 '(ex : 3° caractère de la chaîne)
 
 Range("A14").Select
 
 Do Until ActiveCell <> Null
 
 PosG = InStr(1, ActiveCell.Value, Chr(60))
 'recherche le caractère "<" dans la cellule active (dans la classe valeur de la cellule active)
 'à partir du 1er caractère) et renvoie la position de ce caractère dans la chaine étudiée
 
 PosD = InStr(PosG, ActiveCell.Value, Chr(62))
 
 ActiveCell.Offset(0, 1).Value = Mid(ActiveCell.Value, PosG + 1, PosD - PosG - 1)

 'la fonction Mid extrait le texte (.value) de la cellule active entre la position de < et de >
 'et la colle dans la cellule à côté

 ActiveCell.Offset(1, 0).Select
 'décalage à la ligne inférieure
 
Loop

End Sub


A voir également:

1 réponse

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
Modifié par Mytå le 7/02/2011 à 01:15
Salut le forum

Remplace
Do Until ActiveCell <> Null
par
Do Until IsEmpty(ActiveCell)

Mytå
--
Merci de donner suite à votre question, nous ne sommes pas des robots...
L'urgent est fait, l'impossible est en cours et pour les miracles; prévoir un délai.
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0
Ça marche !

Merci beaucoup,

Edouard.
0