Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gloops
seb leg a écrit, le 01/08/2011 13:24 :
BOnjour,
j'ai une chaine de caractere du type 3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les lettre ni les nombre entre parenthèse ce qui me donnerais 3512551214.
merci de votre aide.
Bonjour,
Voici une fonction qui peut valoir une adaptation à VBA (je me débrouille avec ce que j'ai sous la main pour les tests) :
Cette fonction parcourt la chaîne de caractères reçue en argument, et lorsqu'elle rencontre une parenthèse ouverte, elle cesse de prendre en compte les caractères en entrée jusqu'à avoir rencontré une paren thèse fermée.
Je précise qu'avant les parenthèses on peut très bien avoir (ou pas ) un p, un x ou un z, et dans les parenthèses on peut très bien avoir deux caractères, ou un seul, ou une tripotée, ou encore aucun, et que ça ne dérange pas que les caractères entre parenthèses soient des chiffre s.
En adaptation, on verrait bien par exemple la transformation de booCop en booléen, puisque là nous avons un variant utilisé comme entier. On peut aussi déclarer la fonction comme String (et enlever le caractère $ dans le nom de la fonction).
FUNCTION EPURE$ (strInput AS STRING) DIM Temp AS STRING, booCop booCop = 1 FOR I = 1 TO LEN(strInput) IF MID$(strInput, I, 1) = "(" THEN booCop = 0 IF booCop = 1 THEN Temp = Temp + MID$(strInput, I, 1) ELSE IF MID$(strInput, I, 1) = ")" THEN booCop = 1 END IF NEXT EPURE$ = Temp END FUNCTION
seb leg a écrit, le 01/08/2011 13:24 :
BOnjour,
j'ai une chaine de caractere du type
3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les
lettre ni les nombre entre parenthèse ce qui me donnerais
3512551214.
merci de votre aide.
Bonjour,
Voici une fonction qui peut valoir une adaptation à VBA (je me
débrouille avec ce que j'ai sous la main pour les tests) :
Cette fonction parcourt la chaîne de caractères reçue en argument, et
lorsqu'elle rencontre une parenthèse ouverte, elle cesse de prendre en
compte les caractères en entrée jusqu'à avoir rencontré une paren thèse
fermée.
Je précise qu'avant les parenthèses on peut très bien avoir (ou pas ) un
p, un x ou un z, et dans les parenthèses on peut très bien avoir deux
caractères, ou un seul, ou une tripotée, ou encore aucun, et que ça ne
dérange pas que les caractères entre parenthèses soient des chiffre s.
En adaptation, on verrait bien par exemple la transformation de booCop
en booléen, puisque là nous avons un variant utilisé comme entier. On
peut aussi déclarer la fonction comme String (et enlever le caractère $
dans le nom de la fonction).
FUNCTION EPURE$ (strInput AS STRING)
DIM Temp AS STRING, booCop
booCop = 1
FOR I = 1 TO LEN(strInput)
IF MID$(strInput, I, 1) = "(" THEN booCop = 0
IF booCop = 1 THEN
Temp = Temp + MID$(strInput, I, 1)
ELSE
IF MID$(strInput, I, 1) = ")" THEN booCop = 1
END IF
NEXT
EPURE$ = Temp
END FUNCTION
j'ai une chaine de caractere du type 3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les lettre ni les nombre entre parenthèse ce qui me donnerais 3512551214.
merci de votre aide.
Bonjour,
Voici une fonction qui peut valoir une adaptation à VBA (je me débrouille avec ce que j'ai sous la main pour les tests) :
Cette fonction parcourt la chaîne de caractères reçue en argument, et lorsqu'elle rencontre une parenthèse ouverte, elle cesse de prendre en compte les caractères en entrée jusqu'à avoir rencontré une paren thèse fermée.
Je précise qu'avant les parenthèses on peut très bien avoir (ou pas ) un p, un x ou un z, et dans les parenthèses on peut très bien avoir deux caractères, ou un seul, ou une tripotée, ou encore aucun, et que ça ne dérange pas que les caractères entre parenthèses soient des chiffre s.
En adaptation, on verrait bien par exemple la transformation de booCop en booléen, puisque là nous avons un variant utilisé comme entier. On peut aussi déclarer la fonction comme String (et enlever le caractère $ dans le nom de la fonction).
FUNCTION EPURE$ (strInput AS STRING) DIM Temp AS STRING, booCop booCop = 1 FOR I = 1 TO LEN(strInput) IF MID$(strInput, I, 1) = "(" THEN booCop = 0 IF booCop = 1 THEN Temp = Temp + MID$(strInput, I, 1) ELSE IF MID$(strInput, I, 1) = ")" THEN booCop = 1 END IF NEXT EPURE$ = Temp END FUNCTION
Gloops
Gloops a écrit, le 01/08/2011 15:42 :
seb leg a écrit, le 01/08/2011 13:24 :
BOnjour,
j'ai une chaine de caractere du type 3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les lettre ni les nombre entre parenthèse ce qui me donnerais 3512551214.
merci de votre aide.
Bonjour,
Voici une fonction qui peut valoir une adaptation à VBA (je me débrouille avec ce que j'ai sous la main pour les tests) :
Cette fonction parcourt la chaîne de caractères reçue en argument , et lorsqu'elle rencontre une parenthèse ouverte, elle cesse de prendre e n compte les caractères en entrée jusqu'à avoir rencontré une par enthèse fermée.
Je précise qu'avant les parenthèses on peut très bien avoir (ou p as) un p, un x ou un z, et dans les parenthèses on peut très bien avoir de ux caractères, ou un seul, ou une tripotée, ou encore aucun, et que ç a ne dérange pas que les caractères entre parenthèses soient des chiff res.
En adaptation, on verrait bien par exemple la transformation de booCop en booléen, puisque là nous avons un variant utilisé comme entier . On peut aussi déclarer la fonction comme String (et enlever le caractè re $ dans le nom de la fonction).
FUNCTION EPURE$ (strInput AS STRING) DIM Temp AS STRING, booCop booCop = 1 FOR I = 1 TO LEN(strInput) IF MID$(strInput, I, 1) = "(" THEN booCop = 0 IF booCop = 1 THEN Temp = Temp + MID$(strInput, I, 1) ELSE IF MID$(strInput, I, 1) = ")" THEN booCop = 1 END IF NEXT EPURE$ = Temp END FUNCTION
Ah oui d'accord, j'ai mal lu. J'ai oublié de retirer les lettres. Donc il manque quelque part un If Not IsNumeric(Mid$(strInput, I, 1) Then Next
Gloops a écrit, le 01/08/2011 15:42 :
seb leg a écrit, le 01/08/2011 13:24 :
BOnjour,
j'ai une chaine de caractere du type
3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les
lettre ni les nombre entre parenthèse ce qui me donnerais
3512551214.
merci de votre aide.
Bonjour,
Voici une fonction qui peut valoir une adaptation à VBA (je me
débrouille avec ce que j'ai sous la main pour les tests) :
Cette fonction parcourt la chaîne de caractères reçue en argument , et
lorsqu'elle rencontre une parenthèse ouverte, elle cesse de prendre e n
compte les caractères en entrée jusqu'à avoir rencontré une par enthèse
fermée.
Je précise qu'avant les parenthèses on peut très bien avoir (ou p as) un
p, un x ou un z, et dans les parenthèses on peut très bien avoir de ux
caractères, ou un seul, ou une tripotée, ou encore aucun, et que ç a ne
dérange pas que les caractères entre parenthèses soient des chiff res.
En adaptation, on verrait bien par exemple la transformation de booCop
en booléen, puisque là nous avons un variant utilisé comme entier . On
peut aussi déclarer la fonction comme String (et enlever le caractè re $
dans le nom de la fonction).
FUNCTION EPURE$ (strInput AS STRING)
DIM Temp AS STRING, booCop
booCop = 1
FOR I = 1 TO LEN(strInput)
IF MID$(strInput, I, 1) = "(" THEN booCop = 0
IF booCop = 1 THEN
Temp = Temp + MID$(strInput, I, 1)
ELSE
IF MID$(strInput, I, 1) = ")" THEN booCop = 1
END IF
NEXT
EPURE$ = Temp
END FUNCTION
Ah oui d'accord, j'ai mal lu. J'ai oublié de retirer les lettres.
Donc il manque quelque part un
If Not IsNumeric(Mid$(strInput, I, 1) Then Next
j'ai une chaine de caractere du type 3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les lettre ni les nombre entre parenthèse ce qui me donnerais 3512551214.
merci de votre aide.
Bonjour,
Voici une fonction qui peut valoir une adaptation à VBA (je me débrouille avec ce que j'ai sous la main pour les tests) :
Cette fonction parcourt la chaîne de caractères reçue en argument , et lorsqu'elle rencontre une parenthèse ouverte, elle cesse de prendre e n compte les caractères en entrée jusqu'à avoir rencontré une par enthèse fermée.
Je précise qu'avant les parenthèses on peut très bien avoir (ou p as) un p, un x ou un z, et dans les parenthèses on peut très bien avoir de ux caractères, ou un seul, ou une tripotée, ou encore aucun, et que ç a ne dérange pas que les caractères entre parenthèses soient des chiff res.
En adaptation, on verrait bien par exemple la transformation de booCop en booléen, puisque là nous avons un variant utilisé comme entier . On peut aussi déclarer la fonction comme String (et enlever le caractè re $ dans le nom de la fonction).
FUNCTION EPURE$ (strInput AS STRING) DIM Temp AS STRING, booCop booCop = 1 FOR I = 1 TO LEN(strInput) IF MID$(strInput, I, 1) = "(" THEN booCop = 0 IF booCop = 1 THEN Temp = Temp + MID$(strInput, I, 1) ELSE IF MID$(strInput, I, 1) = ")" THEN booCop = 1 END IF NEXT EPURE$ = Temp END FUNCTION
Ah oui d'accord, j'ai mal lu. J'ai oublié de retirer les lettres. Donc il manque quelque part un If Not IsNumeric(Mid$(strInput, I, 1) Then Next
MichD
Bonjour,
Utilise une fonction personnalisée dans un module standard. Dans la cellule de la feuille de calcul, tu inscris : =Extraire_Chiffres(A1) En supposant que la chaîne de caractères se retrouve en A1
'------------------------------------ Function Extraire_Chiffres(Rg As Range) Dim T As String, R As String Dim Ok As Boolean, A As Integer
For A = 1 To Len(Rg) c = Asc(Mid(Rg.Value, A, 1)) Select Case c Case 40 Ok = True Case 41 Ok = False Case 48 To 58 If Ok = False Then R = R & Chr(c) End If End Select Next Extraire_Chiffres = R End Function '------------------------------------
MichD -------------------------------------------- "seb leg" a écrit dans le message de groupe de discussion :
BOnjour,
j'ai une chaine de caractere du type 3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les lettre ni les nombre entre parenthèse ce qui me donnerais 3512551214.
merci de votre aide.
Bonjour,
Utilise une fonction personnalisée dans un module standard.
Dans la cellule de la feuille de calcul, tu inscris : =Extraire_Chiffres(A1)
En supposant que la chaîne de caractères se retrouve en A1
'------------------------------------
Function Extraire_Chiffres(Rg As Range)
Dim T As String, R As String
Dim Ok As Boolean, A As Integer
For A = 1 To Len(Rg)
c = Asc(Mid(Rg.Value, A, 1))
Select Case c
Case 40
Ok = True
Case 41
Ok = False
Case 48 To 58
If Ok = False Then
R = R & Chr(c)
End If
End Select
Next
Extraire_Chiffres = R
End Function
'------------------------------------
MichD
--------------------------------------------
"seb leg" a écrit dans le message de groupe de discussion :
20efb049-db36-481b-b558-afd6b0a96dbc@q15g2000yqk.googlegroups.com...
BOnjour,
j'ai une chaine de caractere du type
3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les
lettre ni les nombre entre parenthèse ce qui me donnerais
3512551214.
Utilise une fonction personnalisée dans un module standard. Dans la cellule de la feuille de calcul, tu inscris : =Extraire_Chiffres(A1) En supposant que la chaîne de caractères se retrouve en A1
'------------------------------------ Function Extraire_Chiffres(Rg As Range) Dim T As String, R As String Dim Ok As Boolean, A As Integer
For A = 1 To Len(Rg) c = Asc(Mid(Rg.Value, A, 1)) Select Case c Case 40 Ok = True Case 41 Ok = False Case 48 To 58 If Ok = False Then R = R & Chr(c) End If End Select Next Extraire_Chiffres = R End Function '------------------------------------
MichD -------------------------------------------- "seb leg" a écrit dans le message de groupe de discussion :
BOnjour,
j'ai une chaine de caractere du type 3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les lettre ni les nombre entre parenthèse ce qui me donnerais 3512551214.
merci de votre aide.
seb leg
grand merci pour votre aide.
On 1 août, 18:55, "MichD" wrote:
Bonjour,
Utilise une fonction personnalisée dans un module standard. Dans la cellule de la feuille de calcul, tu inscris : =Extraire_Chiffre s(A1) En supposant que la chaîne de caractères se retrouve en A1
'------------------------------------ Function Extraire_Chiffres(Rg As Range) Dim T As String, R As String Dim Ok As Boolean, A As Integer
For A = 1 To Len(Rg) c = Asc(Mid(Rg.Value, A, 1)) Select Case c Case 40 Ok = True Case 41 Ok = False Case 48 To 58 If Ok = False Then R = R & Chr(c) End If End Select Next Extraire_Chiffres = R End Function '------------------------------------
MichD -------------------------------------------- "seb leg" a écrit dans le message de groupe de discussion :
BOnjour,
j'ai une chaine de caractere du type 3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les lettre ni les nombre entre parenthèse ce qui me donnerais 3512551214.
merci de votre aide.
grand merci pour votre aide.
On 1 août, 18:55, "MichD" <michde...@hotmail.com> wrote:
Bonjour,
Utilise une fonction personnalisée dans un module standard.
Dans la cellule de la feuille de calcul, tu inscris : =Extraire_Chiffre s(A1)
En supposant que la chaîne de caractères se retrouve en A1
'------------------------------------
Function Extraire_Chiffres(Rg As Range)
Dim T As String, R As String
Dim Ok As Boolean, A As Integer
For A = 1 To Len(Rg)
c = Asc(Mid(Rg.Value, A, 1))
Select Case c
Case 40
Ok = True
Case 41
Ok = False
Case 48 To 58
If Ok = False Then
R = R & Chr(c)
End If
End Select
Next
Extraire_Chiffres = R
End Function
'------------------------------------
MichD
--------------------------------------------
"seb leg" a écrit dans le message de groupe de discussion :
20efb049-db36-481b-b558-afd6b0a96...@q15g2000yqk.googlegroups.com...
BOnjour,
j'ai une chaine de caractere du type
3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les
lettre ni les nombre entre parenthèse ce qui me donnerais
3512551214.
Utilise une fonction personnalisée dans un module standard. Dans la cellule de la feuille de calcul, tu inscris : =Extraire_Chiffre s(A1) En supposant que la chaîne de caractères se retrouve en A1
'------------------------------------ Function Extraire_Chiffres(Rg As Range) Dim T As String, R As String Dim Ok As Boolean, A As Integer
For A = 1 To Len(Rg) c = Asc(Mid(Rg.Value, A, 1)) Select Case c Case 40 Ok = True Case 41 Ok = False Case 48 To 58 If Ok = False Then R = R & Chr(c) End If End Select Next Extraire_Chiffres = R End Function '------------------------------------
MichD -------------------------------------------- "seb leg" a écrit dans le message de groupe de discussion :
BOnjour,
j'ai une chaine de caractere du type 3a5b(10)1g2p5p(10)5p1d2t(09)1g4p
et je cherche une fonction ou une formule qui ne prednais pas les lettre ni les nombre entre parenthèse ce qui me donnerais 3512551214.