Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

selectionner une partie de texte dans une cellule

23 réponses
Avatar
Gilles72
bonjour à tous,
ci dessous le chemin de fichiers d'un repertoire, listés par macro dans un
fichier xl
S:\Affaires\Leroy G\O30208\O30208 dossier CHANTIER
INFORMATIQUE\2-Fournisseurs & Magasin\O30208 Bon de sortie.xls

S:\Affaires\Leroy G\O30208\O30208 dossier CHANTIER
INFORMATIQUE\5-Sécurité\21-O30208 fiche individuelle exposition amiante.xls



j'aimerais trouver une macro ou fonction pour copier sur une cellule à côté
la partie finale du nom de fichier située à droite de l'espace

ex:

Bon de sortie.xls

fiche individuelle exposition amiante.xls

Le résultat à obtenir ne comprtant pas le même nombre de caractères, je ne
peux pas utiliser la fonction DROITE

Si kekun a une idée la dessus

merci

Gilles

10 réponses

1 2 3
Avatar
JB
Bonjour,

=STXT(A1;NBCAR(A1)-EQUIV(" ";STXT(A1;NBCAR(A1)-
LIGNE(INDIRECT("1:"&NBCAR(A1)));1);0)+1;999)
Valider avec Maj+Ctrl+Entrée

JB

On 8 fév, 13:53, "Gilles72" wrote:
bonjour à tous,
ci dessous le chemin de fichiers d'un repertoire, listés par macro dans un
fichier xl
S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE2-Fournisseurs & MagasinO30208  Bon de sortie.xls

S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE5-Sécurité21-O30208  fiche individuelle exposition ami ante.xls

j'aimerais trouver une macro ou fonction pour copier sur une cellule à c ôté
la partie finale du nom de fichier située à droite de l'espace

ex:

Bon de sortie.xls

fiche individuelle exposition amiante.xls

Le résultat à obtenir ne comprtant pas le même nombre de caractère s, je ne
peux pas utiliser la fonction DROITE

Si kekun a une idée la dessus

merci

Gilles


Avatar
JB
http://cjoint.com/?cioHs63SpZ

JB

On 8 fév, 14:13, JB wrote:
Bonjour,

=STXT(A1;NBCAR(A1)-EQUIV(" ";STXT(A1;NBCAR(A1)-
LIGNE(INDIRECT("1:"&NBCAR(A1)));1);0)+1;999)
Valider avec Maj+Ctrl+Entrée

JB

On 8 fév, 13:53, "Gilles72" wrote:



bonjour à tous,
ci dessous le chemin de fichiers d'un repertoire, listés par macro dan s un
fichier xl
S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE2-Fournisseurs & MagasinO30208  Bon de sortie.xls

S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE5-Sécurité21-O30208  fiche individuelle exposition a miante.xls

j'aimerais trouver une macro ou fonction pour copier sur une cellule à côté
la partie finale du nom de fichier située à droite de l'espace

ex:

Bon de sortie.xls

fiche individuelle exposition amiante.xls

Le résultat à obtenir ne comprtant pas le même nombre de caractè res, je ne
peux pas utiliser la fonction DROITE

Si kekun a une idée la dessus

merci

Gilles- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
AV
Salut,

j'aimerais trouver une macro ou fonction pour copier sur une cellule à côté la
partie finale du nom de fichier située à droite de l'espace


Extraction après le dernier espace (dans la chaîne située en A1) :
(matricielle à valider par ctrl+maj+entrée) :

=STXT(A1;EQUIV(2;1/(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=" "))+1;9^9)

AV

Avatar
francois.forcet
On 8 fév, 13:53, "Gilles72" wrote:
bonjour à tous,
ci dessous le chemin de fichiers d'un repertoire, listés par macro dans un
fichier xl
S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE2-Fournisseurs & MagasinO30208  Bon de sortie.xls

S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE5-Sécurité21-O30208  fiche individuelle exposition ami ante.xls

j'aimerais trouver une macro ou fonction pour copier sur une cellule à c ôté
la partie finale du nom de fichier située à droite de l'espace

ex:

Bon de sortie.xls

fiche individuelle exposition amiante.xls

Le résultat à obtenir ne comprtant pas le même nombre de caractère s, je ne
peux pas utiliser la fonction DROITE

Si kekun a une idée la dessus

merci

Gilles


Rebonjours Gilles

Une solution Macro pas trés élégante mais efficace :
Soit la Cellule A1 ayant le chemin
En cellule A2 le nom du fichier :

A = Split(Range("A1"))
For i = 1 To UBound(A)
If Split(Range("A1"), "")(i) Like "*.xls" Then
Nom = Split(Range("A1"), "")(i)
Exit For
End If
Next
For J = 1 To Len(Nom)
Car = Mid(Nom, J, 1)
If Car = " " Then
Exit For
End If
Next
Range("A2") = Mid(Nom, J + 1)

Celà devrait convenir

Dis moi !!!!

Avatar
Gilles72
oups!
Pour JB et AV
je m'aperçois que je vous ai enduit avec de l'erreur en pâte:
en fait l'espace , c'est celui situé après O30208
mes excuses ...
Pour François
la macro bug à cette ligne
If Split(Range("A1"), "")(i) Like "*.xls" Then

Merci à tous
Gilles
Avatar
AV
je m'aperçois que je vous ai enduit avec de l'erreur en pâte:
en fait l'espace , c'est celui situé après O30208


C'est une TRES TRES mauvaise idée que de mettre des espaces dans les noms de :
dossiers, fichiers, plages....etc
Pour le "reste" il faudrait savoir quelles sont les "constantes inamovibles"
dans tes chaînes (espaces, slashs, nombre..) pour savoir où commence le nom du
fichier !
A défaut, toute réponse restera très aléatoire...

Remember : pas d'espaces !

AV

Avatar
isabelle
bonjour Gilles,

Function NomDeFichier(cellule As Range) As String
For i = Len([cellule]) To 1 Step -1
If Mid([cellule], i, 1) = "" Then
x = Right([cellule], Len([cellule]) - i)
For a = 1 To Len(x)
If Mid(x, a, 1) = " " Then
NomDeFichier = Right(x, Len(x) - a - 1)
Exit Function
End If
Next
End If
Next
End Function

isabelle

oups!
Pour JB et AV
je m'aperçois que je vous ai enduit avec de l'erreur en pâte:
en fait l'espace , c'est celui situé après O30208
mes excuses ...
Pour François
la macro bug à cette ligne
If Split(Range("A1"), "")(i) Like "*.xls" Then

Merci à tous
Gilles




Avatar
Gilles72
message reçu:
le pb est que ces fichiers sont crées par plein d'utilisateurs, et je
meitrise relativement peu!
En fait AV, ça concerne toujours le premier espace en partant de la gauche
exemple:
S:AffairesLeroy GO30208O30208 dossier CHANTIER INFORMATIQUE4-Suivi
Chantier11c-O30208 Bordereau BSDD.doc

Donc, ce que je souhaite extraire, c'est: Bordereau BSDD.doc
Je ne sais pas si je suis clair
J'ai trouvé sur un fichier nommé fonctionFAQ cette formule:
=SUBSTITUE(STXT(A9;TROUVE("
";A9)+1;99);DROITE(A9;NBCAR(A9)-TROUVE("*";SUBSTITUE(A9;"
";"*";NBCAR(A9)-NBCAR(SUBSTITUE(A9;" ";"")))));"")

QUI EXTRAIT Pierre Costa azer de: Jean Pierre Costa azer azere

J'essaie de l'adapter pour qu'il prenne aussi azere



Si tu vois kekchose qui s'approche...

merci dans tous les cas

GILLES
Avatar
francois.forcet
On 8 fév, 15:33, "Gilles72" wrote:
oups!
Pour JB et AV
je m'aperçois que je vous ai enduit avec de l'erreur en pâte:
en fait l'espace , c'est celui situé après O30208
mes excuses ...
Pour François
la macro bug à cette ligne
If Split(Range("A1"), "")(i) Like "*.xls" Then

Merci à tous
Gilles


Rebonjours Gilles

Si tu mets exactement dans la cellule A1 l'un des chemins suivants :


S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE2-Fournisseurs & MagasinO30208 Bon de sortie.xls

S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE5-Sécurité21-O30208 fiche individuelle exposition
amiante.xls

Sans caractère supplémentaire aprés .xls (espace ou autre) celà ne b ug
pas
Si un caractère invisible est présent effectivement celà bug

Dans cette alternative il faut mettre à la place de :

If Split(Range("A1"), "")(i) Like "*.xls" Then

la ligne :

If Split(Range("A1"), "")(i) Like "*.xls*" Then

Mais ce n'est pas logique car aprés une extention d'un nom de fichier
il ne devrait pas y avoir de caractère invisible
Peut être me trompe je !!!!

Vérifies et dis moi !!!!

Avatar
MichDenis
| Remember : pas d'espaces !

Pour qu' AV sorte son "anglais", la question doit être "tough"

;-)))
1 2 3