Besoin d'une formule de math - VB/VBA/VBS - Programmation
Marsh Posté le 19-05-2005 à 23:49:46
D'après ce que je comprends du résultat recherché, j'ai pondu un petit quelque chose.
Bon, d'accord c'est plus long que ce que tu avais fait mais c'est nettement plus souple et plus universel.
Dans le userform, je mets le code suivant:
Private Sub cmdGo_Click() |
J'ai pris la liberté de définir le séparateur "|" en voyant que tu l'avais nommé sPipe.
Au cas où tu travaillerais encore sous Office 97, j'ai recréé la fonction (ou méthode) Split de VBS (ou JScript).
Function Split(sLine As String, sSep As String) As Variant |
J'espère que ça fait ce que tu veux.
Edit --> Remplacement de SplitText par Split et commentaire pour les utilisateurs de Office 97.
Marsh Posté le 20-05-2005 à 00:35:25
Comme je travaille presqu'exclusivement sur Excel 97, la fonction Split n'y est pas présente.
Par contre, elle l'est dans des versions plus récentes.
Il suffit donc de remplacer SplitText par Split dans la ligne suivante
vArray = SplitText(sTmp, "|" ) |
et ignorer le code que j'ai dit de mettre dans un module.
Dommage, j'étais pourtant fier de moi...
Marsh Posté le 26-08-2005 à 09:44:32
Très bien pour le remplacement de SPLIT.
Cela m'a bien servi.
Cela n'aura pas été inutile.
Tu peux être fier de toi.
AlainTech a écrit : Comme je travaille presqu'exclusivement sur Excel 97, la fonction Split n'y est pas présente.
|
Marsh Posté le 19-05-2005 à 20:55:06
While Not EOF(iFreeFile)
startPos = 1
Line Input #1, sTmp 'Lire une ligne complète et la mettre dans sTmp.
For x = 0 To 5
iLen = InStr(startPos, sTmp, sPipe) - startPos
List1.AddItem Mid(sTmp, startPos, iLen)
startPos = startPos + iLen + 1
Next
List1.AddItem Mid(sTmp, startPos, Len(sTmp))
'Je voudrais supprimer cette ligne et mettre for x = 0 to 6 et mettre startpos = startpos + ilen + 1 au début et faire en sorte que ilen retourne soit la longueur de la chaine stmp ou soit il retourne la valeur de Instr si c pas 0, donc qu'il renvoit soit la position de la string sPipe ou soit la longueur de la chaine sTmp si c 0, donc jamais 0
Wend
Donc une formule de math qui doit renvoyer la valeur de sTmp ou la valeur de InStr() si elle égale pas 0