Mid avec départ variable//Chaines caractères sép par des ","
Résolu
geo3701
Messages postés
60
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
Voici le bout de macro qui m'embète
For h = 0 To nboi - 1
r = 2 + 9 * h
lng1 = Mid(Range("G" & i).Value, r)
num= "*" & lng1 & "*"
recherche 'macro utilisant num
Next h
Mais j'ai droit à une "erreur d'exécution '13': Incompatibilité de type" au passage de la ligne lng1 = Mid(Range("G" & i).Value, r).
Le but en fait, c'est que parfois dans la cellule qui m'interesse, il peut y avoir des virgules qui séparent des chaines de caractères, et donc je veux prendre ces chaines une par une.
Avez vous des solutions simples?
Merci d'avance
Voici le bout de macro qui m'embète
For h = 0 To nboi - 1
r = 2 + 9 * h
lng1 = Mid(Range("G" & i).Value, r)
num= "*" & lng1 & "*"
recherche 'macro utilisant num
Next h
Mais j'ai droit à une "erreur d'exécution '13': Incompatibilité de type" au passage de la ligne lng1 = Mid(Range("G" & i).Value, r).
Le but en fait, c'est que parfois dans la cellule qui m'interesse, il peut y avoir des virgules qui séparent des chaines de caractères, et donc je veux prendre ces chaines une par une.
Avez vous des solutions simples?
Merci d'avance
A voir également:
- Mid avec départ variable//Chaines caractères sép par des ","
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères spéciaux - Guide
- Caractères ascii - Guide
- Caracteres speciaux - Guide
- Caractères spéciaux mac - Guide
3 réponses
Bonjour,
Difficile de donner une solution avec si peu d'explication et surtout trop confuse ...
Comment as-tu déclaré la variable lng1 ?
Si ton but est de chercher les chaînes séparées par une virgule, ton bout de code est à l'ouest de ce que tu veux faire !!!
Difficile de donner une solution avec si peu d'explication et surtout trop confuse ...
Comment as-tu déclaré la variable lng1 ?
Si ton but est de chercher les chaînes séparées par une virgule, ton bout de code est à l'ouest de ce que tu veux faire !!!
Pour lng1 :
Public lng1 As Currency
En fait, certaines cellules contiennent plusieurs chaines de caractères, toutes débutant par un "N". La longueur d'une chaine est de 8 caractères.
Le contenu de cellule peut être, par ex:
N0123456
ou
N0123456,N0123457
Dans le premier cas, ça ne pose pas de pb, dans le 2nd, ce que je souhaite c'est de pouvoir récupérer dans un premier temps le N0123456 et dans un second N0123457.
Cdt
Public lng1 As Currency
En fait, certaines cellules contiennent plusieurs chaines de caractères, toutes débutant par un "N". La longueur d'une chaine est de 8 caractères.
Le contenu de cellule peut être, par ex:
N0123456
ou
N0123456,N0123457
Dans le premier cas, ça ne pose pas de pb, dans le 2nd, ce que je souhaite c'est de pouvoir récupérer dans un premier temps le N0123456 et dans un second N0123457.
Cdt
Bonjour,
Public lng1 As Currency
lng1 est de type numérique.
Mid(Range("G" & i).Value, r)
Retourne une chaine de caractères ...
erreur d'exécution '13' vient de là !!!
Regarde la fonction Split() >> ici << pour récupérer des sous chaînes séparées par un délimiteur.
Il faudra, avant de passer par la fonction Split(), contrôler que la chaîne contient bien le caractère délimiteur.
;0)
Public lng1 As Currency
lng1 est de type numérique.
Mid(Range("G" & i).Value, r)
Retourne une chaine de caractères ...
erreur d'exécution '13' vient de là !!!
Regarde la fonction Split() >> ici << pour récupérer des sous chaînes séparées par un délimiteur.
Il faudra, avant de passer par la fonction Split(), contrôler que la chaîne contient bien le caractère délimiteur.
;0)