bonjour,
j'aimerais extraire du groupe ci dessous
AEB01000 | BUTEE ARRET WAGO 249 116 | 166640 | | MR03 | 20.00| 20.00| 0.00|
U | 0.2700 | 0.00|
AEB01000 je sais faire
BUTEE ARRET WAGO 249 116
166640
MR03
20.00
....
je sais pas faire
Si un grand manitou a le savoir, à ce sujet , merci du temps qu'elle ou il
me consacrera
gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
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
Francois L
gilles a écrit :
Bonjour,
A priori, on est en face d'un fichier avec délimiteur, donc "Données", "Convertir" devrait faire l'affaire en choisissant le bon délimiteur.
-- François L
bonjour, j'aimerais extraire du groupe ci dessous AEB01000 | BUTEE ARRET WAGO 249 116 | 166640 | | MR03 | 20.00| 20.00| 0.00| U | 0.2700 | 0.00| AEB01000 je sais faire BUTEE ARRET WAGO 249 116 166640 MR03 20.00 .... je sais pas faire Si un grand manitou a le savoir, à ce sujet , merci du temps qu'elle ou il me consacrera gilles
gilles a écrit :
Bonjour,
A priori, on est en face d'un fichier avec délimiteur, donc "Données",
"Convertir" devrait faire l'affaire en choisissant le bon délimiteur.
--
François L
bonjour,
j'aimerais extraire du groupe ci dessous
AEB01000 | BUTEE ARRET WAGO 249 116 | 166640 | | MR03 | 20.00| 20.00| 0.00|
U | 0.2700 | 0.00|
AEB01000 je sais faire
BUTEE ARRET WAGO 249 116
166640
MR03
20.00
....
je sais pas faire
Si un grand manitou a le savoir, à ce sujet , merci du temps qu'elle ou il
me consacrera
gilles
A priori, on est en face d'un fichier avec délimiteur, donc "Données", "Convertir" devrait faire l'affaire en choisissant le bon délimiteur.
-- François L
bonjour, j'aimerais extraire du groupe ci dessous AEB01000 | BUTEE ARRET WAGO 249 116 | 166640 | | MR03 | 20.00| 20.00| 0.00| U | 0.2700 | 0.00| AEB01000 je sais faire BUTEE ARRET WAGO 249 116 166640 MR03 20.00 .... je sais pas faire Si un grand manitou a le savoir, à ce sujet , merci du temps qu'elle ou il me consacrera gilles
gilles
Merci François ça me semble nickel Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre en xl un tableau en .txt issu d'une extraction analytique en pdf donc le manip convertir, (que je ne connaissais pas) prendra un peu de temps, et je pensais pluto à une formule par groupe, qui extrairait à partir du 1er | puis à partir du 2ème |, et ainsi de suite j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D...., et en A je collerai les lignes issues du.txt je suis pas sur d'etre très clair MERCI à+ Gilles -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"Francois L" a écrit :
gilles a écrit :
Bonjour,
A priori, on est en face d'un fichier avec délimiteur, donc "Données", "Convertir" devrait faire l'affaire en choisissant le bon délimiteur.
-- François L
> bonjour, > j'aimerais extraire du groupe ci dessous > AEB01000 | BUTEE ARRET WAGO 249 116 | 166640 | | MR03 | 20.00| 20.00| 0.00| > U | 0.2700 | 0.00| > AEB01000 je sais faire > BUTEE ARRET WAGO 249 116 > 166640 > MR03 > 20.00 > .... > je sais pas faire > Si un grand manitou a le savoir, à ce sujet , merci du temps qu'elle ou il > me consacrera > gilles
Merci François
ça me semble nickel
Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre
en xl un tableau en .txt issu d'une extraction analytique en pdf
donc le manip convertir, (que je ne connaissais pas) prendra un peu de
temps, et je pensais pluto à une formule par groupe, qui extrairait à partir
du 1er | puis à partir du 2ème |, et ainsi de suite
j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D....,
et en A je collerai les lignes issues du.txt
je suis pas sur d'etre très clair
MERCI
à+
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"Francois L" a écrit :
gilles a écrit :
Bonjour,
A priori, on est en face d'un fichier avec délimiteur, donc "Données",
"Convertir" devrait faire l'affaire en choisissant le bon délimiteur.
--
François L
> bonjour,
> j'aimerais extraire du groupe ci dessous
> AEB01000 | BUTEE ARRET WAGO 249 116 | 166640 | | MR03 | 20.00| 20.00| 0.00|
> U | 0.2700 | 0.00|
> AEB01000 je sais faire
> BUTEE ARRET WAGO 249 116
> 166640
> MR03
> 20.00
> ....
> je sais pas faire
> Si un grand manitou a le savoir, à ce sujet , merci du temps qu'elle ou il
> me consacrera
> gilles
Merci François ça me semble nickel Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre en xl un tableau en .txt issu d'une extraction analytique en pdf donc le manip convertir, (que je ne connaissais pas) prendra un peu de temps, et je pensais pluto à une formule par groupe, qui extrairait à partir du 1er | puis à partir du 2ème |, et ainsi de suite j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D...., et en A je collerai les lignes issues du.txt je suis pas sur d'etre très clair MERCI à+ Gilles -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"Francois L" a écrit :
gilles a écrit :
Bonjour,
A priori, on est en face d'un fichier avec délimiteur, donc "Données", "Convertir" devrait faire l'affaire en choisissant le bon délimiteur.
-- François L
> bonjour, > j'aimerais extraire du groupe ci dessous > AEB01000 | BUTEE ARRET WAGO 249 116 | 166640 | | MR03 | 20.00| 20.00| 0.00| > U | 0.2700 | 0.00| > AEB01000 je sais faire > BUTEE ARRET WAGO 249 116 > 166640 > MR03 > 20.00 > .... > je sais pas faire > Si un grand manitou a le savoir, à ce sujet , merci du temps qu'elle ou il > me consacrera > gilles
Francois L
gilles a écrit :
Re,
Est-ce que tu as toujours un nombre constant de délimiteurs dans ton champ texte ?
-- François L
Merci François ça me semble nickel Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre en xl un tableau en .txt issu d'une extraction analytique en pdf donc le manip convertir, (que je ne connaissais pas) prendra un peu de temps, et je pensais pluto à une formule par groupe, qui extrairait à partir du 1er | puis à partir du 2ème |, et ainsi de suite j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D...., et en A je collerai les lignes issues du.txt je suis pas sur d'etre très clair MERCI à+ Gilles
gilles a écrit :
Re,
Est-ce que tu as toujours un nombre constant de délimiteurs dans ton
champ texte ?
--
François L
Merci François
ça me semble nickel
Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre
en xl un tableau en .txt issu d'une extraction analytique en pdf
donc le manip convertir, (que je ne connaissais pas) prendra un peu de
temps, et je pensais pluto à une formule par groupe, qui extrairait à partir
du 1er | puis à partir du 2ème |, et ainsi de suite
j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D....,
et en A je collerai les lignes issues du.txt
je suis pas sur d'etre très clair
MERCI
à+
Gilles
Est-ce que tu as toujours un nombre constant de délimiteurs dans ton champ texte ?
-- François L
Merci François ça me semble nickel Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre en xl un tableau en .txt issu d'une extraction analytique en pdf donc le manip convertir, (que je ne connaissais pas) prendra un peu de temps, et je pensais pluto à une formule par groupe, qui extrairait à partir du 1er | puis à partir du 2ème |, et ainsi de suite j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D...., et en A je collerai les lignes issues du.txt je suis pas sur d'etre très clair MERCI à+ Gilles
Minick
Salut,
Si une petite fonction vba peut te convenir je te propose ceci (a mettre dans un module):
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
If UBound(Detail) <> -1 Then Eclate = Trim(Detail(Index - 1)) Else Eclate = "" End If End Function
Pour l'utilisation si chaine en A1: ìlate(A1, 1) --> pour la sous chaine 1 ìlate(A1, 2) --> pour la sous chaine 2 etc...
Minick ++
gilles a écrit :
Merci François ça me semble nickel Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre en xl un tableau en .txt issu d'une extraction analytique en pdf donc le manip convertir, (que je ne connaissais pas) prendra un peu de temps, et je pensais pluto à une formule par groupe, qui extrairait à partir du 1er | puis à partir du 2ème |, et ainsi de suite j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D...., et en A je collerai les lignes issues du.txt je suis pas sur d'etre très clair MERCI à+ Gilles
Salut,
Si une petite fonction vba peut te convenir je te propose ceci (a mettre
dans un module):
Function Eclate(Cellule As Range, Index As Byte)
Dim Detail As Variant
If UBound(Detail) <> -1 Then
Eclate = Trim(Detail(Index - 1))
Else
Eclate = ""
End If
End Function
Pour l'utilisation si chaine en A1:
ìlate(A1, 1) --> pour la sous chaine 1
ìlate(A1, 2) --> pour la sous chaine 2
etc...
Minick
++
gilles a écrit :
Merci François
ça me semble nickel
Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre
en xl un tableau en .txt issu d'une extraction analytique en pdf
donc le manip convertir, (que je ne connaissais pas) prendra un peu de
temps, et je pensais pluto à une formule par groupe, qui extrairait à partir
du 1er | puis à partir du 2ème |, et ainsi de suite
j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D....,
et en A je collerai les lignes issues du.txt
je suis pas sur d'etre très clair
MERCI
à+
Gilles
If UBound(Detail) <> -1 Then Eclate = Trim(Detail(Index - 1)) Else Eclate = "" End If End Function
Pour l'utilisation si chaine en A1: ìlate(A1, 1) --> pour la sous chaine 1 ìlate(A1, 2) --> pour la sous chaine 2 etc...
Minick ++
gilles a écrit :
Merci François ça me semble nickel Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre en xl un tableau en .txt issu d'une extraction analytique en pdf donc le manip convertir, (que je ne connaissais pas) prendra un peu de temps, et je pensais pluto à une formule par groupe, qui extrairait à partir du 1er | puis à partir du 2ème |, et ainsi de suite j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D...., et en A je collerai les lignes issues du.txt je suis pas sur d'etre très clair MERCI à+ Gilles
gilles
SALUT MINICK nickel !! c'est absolument ce que je cherchais si j'osais je pousserais bien jusqu'à te demander kek explications succintes sur le détail des lignes du code Entre François qui m'a appris l'utilisation de convertir et ton code... J'avais réussi à sortir kekchose à partir des fonction combinées gauche et droite, mais là c'est nettement mieux un grand merci à vous 2 gilles -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"Minick" a écrit :
Salut,
Si une petite fonction vba peut te convenir je te propose ceci (a mettre dans un module):
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
If UBound(Detail) <> -1 Then Eclate = Trim(Detail(Index - 1)) Else Eclate = "" End If End Function
Pour l'utilisation si chaine en A1: ìlate(A1, 1) --> pour la sous chaine 1 ìlate(A1, 2) --> pour la sous chaine 2 etc...
Minick ++
gilles a écrit : > Merci François > ça me semble nickel > Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre > en xl un tableau en .txt issu d'une extraction analytique en pdf > donc le manip convertir, (que je ne connaissais pas) prendra un peu de > temps, et je pensais pluto à une formule par groupe, qui extrairait à partir > du 1er | puis à partir du 2ème |, et ainsi de suite > j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D...., > et en A je collerai les lignes issues du.txt > je suis pas sur d'etre très clair > MERCI > à+ > Gilles
SALUT MINICK
nickel !!
c'est absolument ce que je cherchais
si j'osais je pousserais bien jusqu'à te demander kek explications succintes
sur le détail des lignes du code
Entre François qui m'a appris l'utilisation de convertir et ton code...
J'avais réussi à sortir kekchose à partir des fonction combinées gauche et
droite, mais là c'est nettement mieux
un grand merci à vous 2
gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"Minick" a écrit :
Salut,
Si une petite fonction vba peut te convenir je te propose ceci (a mettre
dans un module):
Function Eclate(Cellule As Range, Index As Byte)
Dim Detail As Variant
If UBound(Detail) <> -1 Then
Eclate = Trim(Detail(Index - 1))
Else
Eclate = ""
End If
End Function
Pour l'utilisation si chaine en A1:
ìlate(A1, 1) --> pour la sous chaine 1
ìlate(A1, 2) --> pour la sous chaine 2
etc...
Minick
++
gilles a écrit :
> Merci François
> ça me semble nickel
> Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre
> en xl un tableau en .txt issu d'une extraction analytique en pdf
> donc le manip convertir, (que je ne connaissais pas) prendra un peu de
> temps, et je pensais pluto à une formule par groupe, qui extrairait à partir
> du 1er | puis à partir du 2ème |, et ainsi de suite
> j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D....,
> et en A je collerai les lignes issues du.txt
> je suis pas sur d'etre très clair
> MERCI
> à+
> Gilles
SALUT MINICK nickel !! c'est absolument ce que je cherchais si j'osais je pousserais bien jusqu'à te demander kek explications succintes sur le détail des lignes du code Entre François qui m'a appris l'utilisation de convertir et ton code... J'avais réussi à sortir kekchose à partir des fonction combinées gauche et droite, mais là c'est nettement mieux un grand merci à vous 2 gilles -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"Minick" a écrit :
Salut,
Si une petite fonction vba peut te convenir je te propose ceci (a mettre dans un module):
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
If UBound(Detail) <> -1 Then Eclate = Trim(Detail(Index - 1)) Else Eclate = "" End If End Function
Pour l'utilisation si chaine en A1: ìlate(A1, 1) --> pour la sous chaine 1 ìlate(A1, 2) --> pour la sous chaine 2 etc...
Minick ++
gilles a écrit : > Merci François > ça me semble nickel > Toutefois, je continue à chercher, car 2 ou 3 fois/sem, je souhaite mettre > en xl un tableau en .txt issu d'une extraction analytique en pdf > donc le manip convertir, (que je ne connaissais pas) prendra un peu de > temps, et je pensais pluto à une formule par groupe, qui extrairait à partir > du 1er | puis à partir du 2ème |, et ainsi de suite > j'aurais alors un fichier type avec mes formules sur les colonnes B,C,D...., > et en A je collerai les lignes issues du.txt > je suis pas sur d'etre très clair > MERCI > à+ > Gilles
Minick
Re,
Quelques explications...
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est calculee Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|' Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu ' index -1 car les tableaux sont indexes de 0 a n Eclate = Trim(Detail(Index - 1))
' si le tableau est vide Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne Eclate = "" End If End Function
Voila j'espere que cela te convient.
Minick ++
gilles a écrit :
SALUT MINICK nickel !! c'est absolument ce que je cherchais si j'osais je pousserais bien jusqu'à te demander kek explications succintes sur le détail des lignes du code Entre François qui m'a appris l'utilisation de convertir et ton code... J'avais réussi à sortir kekchose à partir des fonction combinées gauche et droite, mais là c'est nettement mieux un grand merci à vous 2 gilles
Re,
Quelques explications...
Function Eclate(Cellule As Range, Index As Byte)
Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est
calculee
Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|'
Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide
If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu
' index -1 car les tableaux sont indexes de 0 a n
Eclate = Trim(Detail(Index - 1))
' si le tableau est vide
Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne
Eclate = ""
End If
End Function
Voila j'espere que cela te convient.
Minick
++
gilles a écrit :
SALUT MINICK
nickel !!
c'est absolument ce que je cherchais
si j'osais je pousserais bien jusqu'à te demander kek explications succintes
sur le détail des lignes du code
Entre François qui m'a appris l'utilisation de convertir et ton code...
J'avais réussi à sortir kekchose à partir des fonction combinées gauche et
droite, mais là c'est nettement mieux
un grand merci à vous 2
gilles
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est calculee Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|' Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu ' index -1 car les tableaux sont indexes de 0 a n Eclate = Trim(Detail(Index - 1))
' si le tableau est vide Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne Eclate = "" End If End Function
Voila j'espere que cela te convient.
Minick ++
gilles a écrit :
SALUT MINICK nickel !! c'est absolument ce que je cherchais si j'osais je pousserais bien jusqu'à te demander kek explications succintes sur le détail des lignes du code Entre François qui m'a appris l'utilisation de convertir et ton code... J'avais réussi à sortir kekchose à partir des fonction combinées gauche et droite, mais là c'est nettement mieux un grand merci à vous 2 gilles
gilles
très fort! encore merci pour ton aide je pense que je ne pourrai malheureusement pas te renvoyer l'ascenseur, car j'ai pas le niveau!! merci à+ -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"Minick" a écrit :
Re,
Quelques explications...
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est calculee Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|' Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu ' index -1 car les tableaux sont indexes de 0 a n Eclate = Trim(Detail(Index - 1))
' si le tableau est vide Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne Eclate = "" End If End Function
Voila j'espere que cela te convient.
Minick ++
gilles a écrit : > SALUT MINICK > nickel !! > c'est absolument ce que je cherchais > si j'osais je pousserais bien jusqu'à te demander kek explications succintes > sur le détail des lignes du code > Entre François qui m'a appris l'utilisation de convertir et ton code... > J'avais réussi à sortir kekchose à partir des fonction combinées gauche et > droite, mais là c'est nettement mieux > un grand merci à vous 2 > gilles
très fort!
encore merci pour ton aide
je pense que je ne pourrai malheureusement pas te renvoyer l'ascenseur, car
j'ai pas le niveau!!
merci
à+
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
"Minick" a écrit :
Re,
Quelques explications...
Function Eclate(Cellule As Range, Index As Byte)
Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est
calculee
Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|'
Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide
If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu
' index -1 car les tableaux sont indexes de 0 a n
Eclate = Trim(Detail(Index - 1))
' si le tableau est vide
Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne
Eclate = ""
End If
End Function
Voila j'espere que cela te convient.
Minick
++
gilles a écrit :
> SALUT MINICK
> nickel !!
> c'est absolument ce que je cherchais
> si j'osais je pousserais bien jusqu'à te demander kek explications succintes
> sur le détail des lignes du code
> Entre François qui m'a appris l'utilisation de convertir et ton code...
> J'avais réussi à sortir kekchose à partir des fonction combinées gauche et
> droite, mais là c'est nettement mieux
> un grand merci à vous 2
> gilles
très fort! encore merci pour ton aide je pense que je ne pourrai malheureusement pas te renvoyer l'ascenseur, car j'ai pas le niveau!! merci à+ -- en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui, mais à chaque jour suffit sa peine...
"Minick" a écrit :
Re,
Quelques explications...
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est calculee Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|' Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu ' index -1 car les tableaux sont indexes de 0 a n Eclate = Trim(Detail(Index - 1))
' si le tableau est vide Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne Eclate = "" End If End Function
Voila j'espere que cela te convient.
Minick ++
gilles a écrit : > SALUT MINICK > nickel !! > c'est absolument ce que je cherchais > si j'osais je pousserais bien jusqu'à te demander kek explications succintes > sur le détail des lignes du code > Entre François qui m'a appris l'utilisation de convertir et ton code... > J'avais réussi à sortir kekchose à partir des fonction combinées gauche et > droite, mais là c'est nettement mieux > un grand merci à vous 2 > gilles
Papyjac
Bonjour Minick,
Oui, c'est bien avec des commentaires, il manque peut-être le type de la fonction, et les commentaires explicxatifs des 2 paramètres et de la variable locale Detail
Function EclaterCellule(pCellule As Range, pIndex As Byte) as String '_Eclater une cellule en sous-chaines de texte séparées par '|' ' pCellule : Cellule à éclater ' pIndex : Indice de la sous-chaine cherchée '- Dim uCellule As Variant 'Tableau des sous-chaines '- EclaterCellule= empty 'Sous-chaine non trouvée Application.Volatile 'Exécuter la fonction a chaque recalcul uCellule = Split(pCellule.Value, "|") 'Remplir le tableau avec chaque sous chaine 'Vérifier le contenu du tableau If UBound(uCellule ) <> -1 Then _ EclaterCellule= Trim(uCellule (pIndex - 1)) 'Récupérer la sous chaine correspondant à l'index End Function
Quitte à donner la solution, on peut aussi donner de bonnes habitudes. Ne pas économiser l'usage de l'aide VBA (Cliquer sur l'instruction, puis touche F1) A titre personnel, je préfixe aussi les noms de variables en fonction de leur portée, pour un repérage plus rapide.
-- P a p y j a c
"Minick" a écrit dans le message de news:e7UICkg$
Re,
Quelques explications...
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est calculee Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|' Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu ' index -1 car les tableaux sont indexes de 0 a n Eclate = Trim(Detail(Index - 1))
' si le tableau est vide Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne Eclate = "" End If End Function
Voila j'espere que cela te convient.
Minick ++
gilles a écrit :
SALUT MINICK nickel !! c'est absolument ce que je cherchais si j'osais je pousserais bien jusqu'à te demander kek explications succintes sur le détail des lignes du code Entre François qui m'a appris l'utilisation de convertir et ton code... J'avais réussi à sortir kekchose à partir des fonction combinées gauche et droite, mais là c'est nettement mieux un grand merci à vous 2 gilles
Bonjour Minick,
Oui, c'est bien avec des commentaires, il manque peut-être le type de la
fonction, et les commentaires explicxatifs des 2 paramètres et de la
variable locale Detail
Function EclaterCellule(pCellule As Range, pIndex As Byte) as String
'_Eclater une cellule en sous-chaines de texte séparées par '|'
' pCellule : Cellule à éclater
' pIndex : Indice de la sous-chaine cherchée
'-
Dim uCellule As Variant 'Tableau des sous-chaines
'-
EclaterCellule= empty 'Sous-chaine
non trouvée
Application.Volatile 'Exécuter la
fonction a chaque recalcul
uCellule = Split(pCellule.Value, "|") 'Remplir le
tableau avec chaque sous chaine
'Vérifier le contenu du tableau
If UBound(uCellule ) <> -1 Then _
EclaterCellule= Trim(uCellule (pIndex - 1)) 'Récupérer la
sous chaine correspondant à l'index
End Function
Quitte à donner la solution, on peut aussi donner de bonnes habitudes.
Ne pas économiser l'usage de l'aide VBA (Cliquer sur l'instruction, puis
touche F1)
A titre personnel, je préfixe aussi les noms de variables en fonction de
leur portée, pour un repérage plus rapide.
--
P a p y j a c
"Minick" <ChtiMinick@hotmail.com> a écrit dans le message de
news:e7UICkg$IHA.1296@TK2MSFTNGP02.phx.gbl...
Re,
Quelques explications...
Function Eclate(Cellule As Range, Index As Byte)
Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est
calculee
Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|'
Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide
If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu
' index -1 car les tableaux sont indexes de 0 a n
Eclate = Trim(Detail(Index - 1))
' si le tableau est vide
Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne
Eclate = ""
End If
End Function
Voila j'espere que cela te convient.
Minick
++
gilles a écrit :
SALUT MINICK
nickel !!
c'est absolument ce que je cherchais
si j'osais je pousserais bien jusqu'à te demander kek explications
succintes sur le détail des lignes du code Entre François qui m'a appris
l'utilisation de convertir et ton code...
J'avais réussi à sortir kekchose à partir des fonction combinées gauche
et droite, mais là c'est nettement mieux
un grand merci à vous 2
gilles
Oui, c'est bien avec des commentaires, il manque peut-être le type de la fonction, et les commentaires explicxatifs des 2 paramètres et de la variable locale Detail
Function EclaterCellule(pCellule As Range, pIndex As Byte) as String '_Eclater une cellule en sous-chaines de texte séparées par '|' ' pCellule : Cellule à éclater ' pIndex : Indice de la sous-chaine cherchée '- Dim uCellule As Variant 'Tableau des sous-chaines '- EclaterCellule= empty 'Sous-chaine non trouvée Application.Volatile 'Exécuter la fonction a chaque recalcul uCellule = Split(pCellule.Value, "|") 'Remplir le tableau avec chaque sous chaine 'Vérifier le contenu du tableau If UBound(uCellule ) <> -1 Then _ EclaterCellule= Trim(uCellule (pIndex - 1)) 'Récupérer la sous chaine correspondant à l'index End Function
Quitte à donner la solution, on peut aussi donner de bonnes habitudes. Ne pas économiser l'usage de l'aide VBA (Cliquer sur l'instruction, puis touche F1) A titre personnel, je préfixe aussi les noms de variables en fonction de leur portée, pour un repérage plus rapide.
-- P a p y j a c
"Minick" a écrit dans le message de news:e7UICkg$
Re,
Quelques explications...
Function Eclate(Cellule As Range, Index As Byte) Dim Detail As Variant
' Permet de recalculer la fonction a chaque fois que la feuille est calculee Application.Volatile
'Cree un tableau avec chaque sous chaine avec comme separateur le '|' Detail = Split(Cellule.Value, "|")
' si le tableau retourne n'est pas vide If UBound(Detail) <> -1 Then
' la fonction retourne la sous chaine voulu ' index -1 car les tableaux sont indexes de 0 a n Eclate = Trim(Detail(Index - 1))
' si le tableau est vide Else
' on retourne une chaine vide, si on ne fait pas cela 0 sera retourne Eclate = "" End If End Function
Voila j'espere que cela te convient.
Minick ++
gilles a écrit :
SALUT MINICK nickel !! c'est absolument ce que je cherchais si j'osais je pousserais bien jusqu'à te demander kek explications succintes sur le détail des lignes du code Entre François qui m'a appris l'utilisation de convertir et ton code... J'avais réussi à sortir kekchose à partir des fonction combinées gauche et droite, mais là c'est nettement mieux un grand merci à vous 2 gilles