Je cherche (sans succès) une fonction pour compter des caractères
18 réponses
Emile63
Bonjour =E0 tous,
J'ai une variable (description article) et je souhaiterais connaitre combie=
n de fois il a un caract=E8re donn=E9 dans celle-ci.=20
-Existe-t'il une fonction =E0 cet effet ?
Puisque ni la fonction ni l'organe ne fonctionnent, vois avec ceci:
en A1: azertyuiop.abcdef (le fichier appelé azertyuiop avec l'extension abcdef
où tu veux : --> =CHERCHE(".";A1;NBCAR(A1)-6) --> te donnera la position du point. Ici, ce sera le 11° car
Pour ce qui est de ta question, dernière phrase, ne serait-ce pas de droite à gauche? Si tu n'as que 4 car max dans l'extension, tu peux remplacer le 6 par 5 ...... Bonne chance Jacques.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Emile63" a écrit dans le message de groupe de discussion :
J'ai bien pris note de vos solutions et vous en remercie, mais à la fin ce que j'avais en tête ne fonctionne pas. :-( --------------------------------------- Avec une proc. VBA j'ai besoin à séparer dans une variable: MonExt uniquement l'extension de fichier des noms de fichiers qui se trouvent (listés) dans des cellules sur ma feuille de calcul, avec la formule ci-dessous: MaCellule="C:WindowsMes fichiersTest.01.15.pdf"
Ça fonctionnait avant, car je recherchais le point qui marque l'extension, mais depuis l'appellation des fichiers sur la feuille de calcul à un peu changé, certains noms de fichier contiennent plusieurs point(v/ex: MaCellule), et d'autre part, les extensions* de certains fichiers contient 4 caractères. Dans la chaîne "MaCellule" Seul le dernier point m'intéresse pour compter le Nb de caractères de l'extension, mais je ne sais pas comment m'y prendre pour compter de Gauche à droite, le premier point que je trouve. -Est-ce que quelqu'un pourrait me porter une main secourable ? :-)
PS: J'espère que ma description est compréhensible pour tous, car en me relisant, je me demande....
* : pdf, doc, docx, xls, xlsx, xlsm etc..
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
Bonjour Emile,
Puisque ni la fonction ni l'organe ne fonctionnent, vois avec ceci:
en A1: azertyuiop.abcdef (le fichier appelé azertyuiop avec l'extension
abcdef
où tu veux : --> =CHERCHE(".";A1;NBCAR(A1)-6) --> te donnera la position
du point. Ici, ce sera le 11° car
Pour ce qui est de ta question, dernière phrase, ne serait-ce pas de droite
à gauche?
Si tu n'as que 4 car max dans l'extension, tu peux remplacer le 6 par 5
......
Bonne chance
Jacques.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Emile63" a écrit dans le message de groupe de discussion :
9867b1b6-6b00-4076-a482-4c432801a59e@googlegroups.com...
J'ai bien pris note de vos solutions et vous en remercie, mais à la fin ce
que j'avais en tête ne fonctionne pas. :-(
---------------------------------------
Avec une proc. VBA j'ai besoin à séparer dans une variable: MonExt
uniquement l'extension de fichier des noms de fichiers qui se trouvent
(listés) dans des cellules sur ma feuille de calcul, avec la formule
ci-dessous:
MaCellule="C:WindowsMes fichiersTest.01.15.pdf"
Ça fonctionnait avant, car je recherchais le point qui marque l'extension,
mais depuis l'appellation des fichiers sur la feuille de calcul à un peu
changé, certains noms de fichier contiennent plusieurs point(v/ex:
MaCellule), et d'autre part, les extensions* de certains fichiers contient 4
caractères. Dans la chaîne "MaCellule" Seul le dernier point m'intéresse
pour compter le Nb de caractères de l'extension, mais je ne sais pas comment
m'y prendre pour compter de Gauche à droite, le premier point que je trouve.
-Est-ce que quelqu'un pourrait me porter une main secourable ? :-)
PS: J'espère que ma description est compréhensible pour tous, car en me
relisant, je me demande....
* : pdf, doc, docx, xls, xlsx, xlsm etc..
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Puisque ni la fonction ni l'organe ne fonctionnent, vois avec ceci:
en A1: azertyuiop.abcdef (le fichier appelé azertyuiop avec l'extension abcdef
où tu veux : --> =CHERCHE(".";A1;NBCAR(A1)-6) --> te donnera la position du point. Ici, ce sera le 11° car
Pour ce qui est de ta question, dernière phrase, ne serait-ce pas de droite à gauche? Si tu n'as que 4 car max dans l'extension, tu peux remplacer le 6 par 5 ...... Bonne chance Jacques.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Emile63" a écrit dans le message de groupe de discussion :
J'ai bien pris note de vos solutions et vous en remercie, mais à la fin ce que j'avais en tête ne fonctionne pas. :-( --------------------------------------- Avec une proc. VBA j'ai besoin à séparer dans une variable: MonExt uniquement l'extension de fichier des noms de fichiers qui se trouvent (listés) dans des cellules sur ma feuille de calcul, avec la formule ci-dessous: MaCellule="C:WindowsMes fichiersTest.01.15.pdf"
Ça fonctionnait avant, car je recherchais le point qui marque l'extension, mais depuis l'appellation des fichiers sur la feuille de calcul à un peu changé, certains noms de fichier contiennent plusieurs point(v/ex: MaCellule), et d'autre part, les extensions* de certains fichiers contient 4 caractères. Dans la chaîne "MaCellule" Seul le dernier point m'intéresse pour compter le Nb de caractères de l'extension, mais je ne sais pas comment m'y prendre pour compter de Gauche à droite, le premier point que je trouve. -Est-ce que quelqu'un pourrait me porter une main secourable ? :-)
PS: J'espère que ma description est compréhensible pour tous, car en me relisant, je me demande....
* : pdf, doc, docx, xls, xlsx, xlsm etc..
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
Jacquouille
... et pour avoir l'extension :
=STXT(A1;CHERCHE(".";A1;NBCAR(A1)-6)+1;10)
Re bonne chance
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Jacquouille" a écrit dans le message de groupe de discussion : mv016p$rtf$
Bonjour Emile,
Puisque ni la fonction ni l'organe ne fonctionnent, vois avec ceci:
en A1: azertyuiop.abcdef (le fichier appelé azertyuiop avec l'extension abcdef
où tu veux : --> =CHERCHE(".";A1;NBCAR(A1)-6) --> te donnera la position du point. Ici, ce sera le 11° car
Pour ce qui est de ta question, dernière phrase, ne serait-ce pas de droite à gauche? Si tu n'as que 4 car max dans l'extension, tu peux remplacer le 6 par 5 ...... Bonne chance Jacques.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Emile63" a écrit dans le message de groupe de discussion :
J'ai bien pris note de vos solutions et vous en remercie, mais à la fin ce que j'avais en tête ne fonctionne pas. :-( --------------------------------------- Avec une proc. VBA j'ai besoin à séparer dans une variable: MonExt uniquement l'extension de fichier des noms de fichiers qui se trouvent (listés) dans des cellules sur ma feuille de calcul, avec la formule ci-dessous: MaCellule="C:WindowsMes fichiersTest.01.15.pdf"
Ça fonctionnait avant, car je recherchais le point qui marque l'extension, mais depuis l'appellation des fichiers sur la feuille de calcul à un peu changé, certains noms de fichier contiennent plusieurs point(v/ex: MaCellule), et d'autre part, les extensions* de certains fichiers contient 4 caractères. Dans la chaîne "MaCellule" Seul le dernier point m'intéresse pour compter le Nb de caractères de l'extension, mais je ne sais pas comment m'y prendre pour compter de Gauche à droite, le premier point que je trouve. -Est-ce que quelqu'un pourrait me porter une main secourable ? :-)
PS: J'espère que ma description est compréhensible pour tous, car en me relisant, je me demande....
* : pdf, doc, docx, xls, xlsx, xlsm etc..
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
... et pour avoir l'extension :
=STXT(A1;CHERCHE(".";A1;NBCAR(A1)-6)+1;10)
Re bonne chance
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
mv016p$rtf$1@speranza.aioe.org...
Bonjour Emile,
Puisque ni la fonction ni l'organe ne fonctionnent, vois avec ceci:
en A1: azertyuiop.abcdef (le fichier appelé azertyuiop avec l'extension
abcdef
où tu veux : --> =CHERCHE(".";A1;NBCAR(A1)-6) --> te donnera la position
du point. Ici, ce sera le 11° car
Pour ce qui est de ta question, dernière phrase, ne serait-ce pas de droite
à gauche?
Si tu n'as que 4 car max dans l'extension, tu peux remplacer le 6 par 5
......
Bonne chance
Jacques.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Emile63" a écrit dans le message de groupe de discussion :
9867b1b6-6b00-4076-a482-4c432801a59e@googlegroups.com...
J'ai bien pris note de vos solutions et vous en remercie, mais à la fin ce
que j'avais en tête ne fonctionne pas. :-(
---------------------------------------
Avec une proc. VBA j'ai besoin à séparer dans une variable: MonExt
uniquement l'extension de fichier des noms de fichiers qui se trouvent
(listés) dans des cellules sur ma feuille de calcul, avec la formule
ci-dessous:
MaCellule="C:WindowsMes fichiersTest.01.15.pdf"
Ça fonctionnait avant, car je recherchais le point qui marque l'extension,
mais depuis l'appellation des fichiers sur la feuille de calcul à un peu
changé, certains noms de fichier contiennent plusieurs point(v/ex:
MaCellule), et d'autre part, les extensions* de certains fichiers contient 4
caractères. Dans la chaîne "MaCellule" Seul le dernier point m'intéresse
pour compter le Nb de caractères de l'extension, mais je ne sais pas comment
m'y prendre pour compter de Gauche à droite, le premier point que je trouve.
-Est-ce que quelqu'un pourrait me porter une main secourable ? :-)
PS: J'espère que ma description est compréhensible pour tous, car en me
relisant, je me demande....
* : pdf, doc, docx, xls, xlsx, xlsm etc..
---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
" Le vin est au repas ce que le parfum est à la femme." "Jacquouille" a écrit dans le message de groupe de discussion : mv016p$rtf$
Bonjour Emile,
Puisque ni la fonction ni l'organe ne fonctionnent, vois avec ceci:
en A1: azertyuiop.abcdef (le fichier appelé azertyuiop avec l'extension abcdef
où tu veux : --> =CHERCHE(".";A1;NBCAR(A1)-6) --> te donnera la position du point. Ici, ce sera le 11° car
Pour ce qui est de ta question, dernière phrase, ne serait-ce pas de droite à gauche? Si tu n'as que 4 car max dans l'extension, tu peux remplacer le 6 par 5 ...... Bonne chance Jacques.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Emile63" a écrit dans le message de groupe de discussion :
J'ai bien pris note de vos solutions et vous en remercie, mais à la fin ce que j'avais en tête ne fonctionne pas. :-( --------------------------------------- Avec une proc. VBA j'ai besoin à séparer dans une variable: MonExt uniquement l'extension de fichier des noms de fichiers qui se trouvent (listés) dans des cellules sur ma feuille de calcul, avec la formule ci-dessous: MaCellule="C:WindowsMes fichiersTest.01.15.pdf"
Ça fonctionnait avant, car je recherchais le point qui marque l'extension, mais depuis l'appellation des fichiers sur la feuille de calcul à un peu changé, certains noms de fichier contiennent plusieurs point(v/ex: MaCellule), et d'autre part, les extensions* de certains fichiers contient 4 caractères. Dans la chaîne "MaCellule" Seul le dernier point m'intéresse pour compter le Nb de caractères de l'extension, mais je ne sais pas comment m'y prendre pour compter de Gauche à droite, le premier point que je trouve. -Est-ce que quelqu'un pourrait me porter une main secourable ? :-)
PS: J'espère que ma description est compréhensible pour tous, car en me relisant, je me demande....
* : pdf, doc, docx, xls, xlsx, xlsm etc..
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
Emile63
Merci pour votre participation.
Oui, DanielCo, les solutions fonctionnent, c'est à la fin, quand je regro upe un peu tout ça, que ma formule se casse un peu la figure. :-/
Oui, Jacquouille, c'est bien de droite à gauche, c'est la dysfonction de l'organe qui m'a troublé. :-) (je savais bien que quelque chose n'était pas clair dans ma description) .. ;-)
Avec des fichiers tels que: 123.456.798.xls 123.456.789.xlsx C:Mes documentsMon historiqueLe fichier 123.456.789.xltm
C'est bien les 3 ou 4 dern. caractères que je souhaite récupérer.
La formule: CHERCHE(".";A1;NBCAR(A1)-4) fonctionne ainsi que : =STXT(A1;CHERCHE(".";A1;NBCAR(A1)-4)+1;NBCAR(A1)) pour l'extension (car avec le nom du fichier il y a son chemin complet <10 car.). J'ose demander un dernier coup de main pour traduire formule en fonctions d e VBA ;-) Merci d'avance pour votre disponibilité. Emile
Merci pour votre participation.
Oui, DanielCo, les solutions fonctionnent, c'est à la fin, quand je regro upe un peu tout ça, que ma formule se casse un peu la figure. :-/
Oui, Jacquouille, c'est bien de droite à gauche, c'est la dysfonction de l'organe qui m'a troublé. :-)
(je savais bien que quelque chose n'était pas clair dans ma description) .. ;-)
Avec des fichiers tels que:
123.456.798.xls
123.456.789.xlsx
C:Mes documentsMon historiqueLe fichier 123.456.789.xltm
C'est bien les 3 ou 4 dern. caractères que je souhaite récupérer.
La formule: CHERCHE(".";A1;NBCAR(A1)-4) fonctionne
ainsi que : =STXT(A1;CHERCHE(".";A1;NBCAR(A1)-4)+1;NBCAR(A1))
pour l'extension (car avec le nom du fichier il y a son chemin complet <10 car.).
J'ose demander un dernier coup de main pour traduire formule en fonctions d e VBA ;-)
Merci d'avance pour votre disponibilité.
Emile
Oui, DanielCo, les solutions fonctionnent, c'est à la fin, quand je regro upe un peu tout ça, que ma formule se casse un peu la figure. :-/
Oui, Jacquouille, c'est bien de droite à gauche, c'est la dysfonction de l'organe qui m'a troublé. :-) (je savais bien que quelque chose n'était pas clair dans ma description) .. ;-)
Avec des fichiers tels que: 123.456.798.xls 123.456.789.xlsx C:Mes documentsMon historiqueLe fichier 123.456.789.xltm
C'est bien les 3 ou 4 dern. caractères que je souhaite récupérer.
La formule: CHERCHE(".";A1;NBCAR(A1)-4) fonctionne ainsi que : =STXT(A1;CHERCHE(".";A1;NBCAR(A1)-4)+1;NBCAR(A1)) pour l'extension (car avec le nom du fichier il y a son chemin complet <10 car.). J'ose demander un dernier coup de main pour traduire formule en fonctions d e VBA ;-) Merci d'avance pour votre disponibilité. Emile
MichD
Bonjour,
Dans un module standard, tu copies la fonction suivante:
'------------------------------- Function Last4Digits(Rg As Range) Last4Digits = Split(Rg, ".")(UBound(Split(Rg, "."))) End Function '-------------------------------
Et dans la cellule de la feuille de calcul de ton choix, tu écris : =Last4Digits(A1) En supposant que A1 contient le nom du fichier.
Bonjour,
Dans un module standard, tu copies la fonction suivante:
'-------------------------------
Function Last4Digits(Rg As Range)
Last4Digits = Split(Rg, ".")(UBound(Split(Rg, ".")))
End Function
'-------------------------------
Et dans la cellule de la feuille de calcul de ton choix, tu écris :
=Last4Digits(A1)
En supposant que A1 contient le nom du fichier.
Dans un module standard, tu copies la fonction suivante:
'------------------------------- Function Last4Digits(Rg As Range) Last4Digits = Split(Rg, ".")(UBound(Split(Rg, "."))) End Function '-------------------------------
Et dans la cellule de la feuille de calcul de ton choix, tu écris : =Last4Digits(A1) En supposant que A1 contient le nom du fichier.
MichD
Pour être un peu plus précis, tu peux modifier la fonction comme ceci pour obtenir la dernière section de la chaîne de caractères d'une cellule située après le dernier point, peu importe le contenu de la cellule. Si la cellule ne contient pas de point, la fonction retourne ""
Function Last4Digits(Rg As Range) If InStr(1, Rg, ".", vbTextCompare) > 0 Then Last4Digits = Split(Rg, ".")(UBound(Split(Rg, "."))) Else Last4Digits = "" End If End Function
Pour être un peu plus précis, tu peux modifier la fonction
comme ceci pour obtenir la dernière section de la chaîne
de caractères d'une cellule située après le dernier point,
peu importe le contenu de la cellule. Si la cellule ne contient pas
de point, la fonction retourne ""
Function Last4Digits(Rg As Range)
If InStr(1, Rg, ".", vbTextCompare) > 0 Then
Last4Digits = Split(Rg, ".")(UBound(Split(Rg, ".")))
Else
Last4Digits = ""
End If
End Function
Pour être un peu plus précis, tu peux modifier la fonction comme ceci pour obtenir la dernière section de la chaîne de caractères d'une cellule située après le dernier point, peu importe le contenu de la cellule. Si la cellule ne contient pas de point, la fonction retourne ""
Function Last4Digits(Rg As Range) If InStr(1, Rg, ".", vbTextCompare) > 0 Then Last4Digits = Split(Rg, ".")(UBound(Split(Rg, "."))) Else Last4Digits = "" End If End Function
Emile63
Merci MichD pour cette fonction. C'est (un fois de plus) parfait. Je ne connaissait cette fonction "split" ni ce qu'elle fait concrètement (ce n'est apparemment pas de mon niveau, et j'ai bien compris qu'il me rest e beaucoup à apprendre). Mais ça fonctionne comme je l'espérais. :-)) Encore merci et bonne journée à tous. Emile
Merci MichD pour cette fonction.
C'est (un fois de plus) parfait.
Je ne connaissait cette fonction "split" ni ce qu'elle fait concrètement (ce n'est apparemment pas de mon niveau, et j'ai bien compris qu'il me rest e beaucoup à apprendre).
Mais ça fonctionne comme je l'espérais. :-))
Encore merci et bonne journée à tous.
Emile
Merci MichD pour cette fonction. C'est (un fois de plus) parfait. Je ne connaissait cette fonction "split" ni ce qu'elle fait concrètement (ce n'est apparemment pas de mon niveau, et j'ai bien compris qu'il me rest e beaucoup à apprendre). Mais ça fonctionne comme je l'espérais. :-)) Encore merci et bonne journée à tous. Emile
MichD
| Je ne connaissait cette fonction "split" ni ce qu'elle fait concrètement
Elle scinde le contenu d'une chaîne de caractères selon ce que l'on désigne comme second élément de la fonction.
Dim Char As String, Dim X() Char = "La maison est belle"
x = Split(char," ")
Le résultat s'affiche dans la variable qui est de type "Tableau" (array) x(0) = "La" x(1) = "maison" x(2) = "est" x(3) = "belle"
La phrase a été scinder par le caractère ASCII "ESPACE" ou CHR(32). Chaque section est mise dans une variable "Array". Tu peux alors extraire la section de ton choix
Msgbox X(3) par exemple.
| Je ne connaissait cette fonction "split" ni ce qu'elle fait concrètement
Elle scinde le contenu d'une chaîne de caractères selon ce que l'on désigne comme
second élément de la fonction.
Dim Char As String, Dim X()
Char = "La maison est belle"
x = Split(char," ")
Le résultat s'affiche dans la variable qui est de type "Tableau" (array)
x(0) = "La"
x(1) = "maison"
x(2) = "est"
x(3) = "belle"
La phrase a été scinder par le caractère ASCII "ESPACE" ou CHR(32).
Chaque section est mise dans une variable "Array". Tu peux alors extraire la
section de ton choix
| Je ne connaissait cette fonction "split" ni ce qu'elle fait concrètement
Elle scinde le contenu d'une chaîne de caractères selon ce que l'on désigne comme second élément de la fonction.
Dim Char As String, Dim X() Char = "La maison est belle"
x = Split(char," ")
Le résultat s'affiche dans la variable qui est de type "Tableau" (array) x(0) = "La" x(1) = "maison" x(2) = "est" x(3) = "belle"
La phrase a été scinder par le caractère ASCII "ESPACE" ou CHR(32). Chaque section est mise dans une variable "Array". Tu peux alors extraire la section de ton choix
Msgbox X(3) par exemple.
Emile63
Merci MichD,
- Je vais garder précieusement cette explication. Cordialement, Emile
Merci MichD,
- Je vais garder précieusement cette explication.
Cordialement,
Emile