Tri de chaines de caracteres dans un lien hypertexte.

Le
intactsaphir
Bonjour,
Dans une colonne se trouve un nombre aléatoire de liens hypertextes se référant à des noms de fichiers (*.xls;*;doc).

Ces noms de fichiers sont formatés comme indiqué ci dessous. Les chaînes de caractères de chaque nom sont séparées par un espace.

Je souhaiterais, dans une autre colonne, extraire de ces noms de fichiers, les informations essentielles afin que le nouveau lien hypertexte soit plus court.

Voici le format du lien hypertexte des noms de fichiers originaux :

alfanumérique1 texte1 texte2 texte3 alfanumérique2 alfanumérique3 alfanumérique4 texte4.xls
ou/et
alfanumérique1 texte1 texte2 texte3 alfanumérique2 alfanumérique3 alfanumérique4 texte4.doc

Le résultat du nouveau lien hypertexte serait alors du format suivant :

texte2 alfanumérique3 alfanumérique4 texte4 .xls
ou/et
texte2 alfanumérique3 alfanumérique4 texte4 .doc

Merci de me répondre

Cordialement
IS
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21148051
Bonjour,

J'utiliserais une macro ressemblant à ceci :

'---------------------------------------------
Sub test()
Dim Texte As String, Adr As String
Dim SubAdr As String, ScrTip As String

Dim Rg As Range, C As Range

'**************VARIABLE À ADAPTER***************************
With Worksheets("NomDelaFeuille") 'Nom de la feuille
'tu définis la plage où sont tes liens hypertextes
Set Rg = .Range("B4:B" & .Range("B65536").End(xlUp).Row)
End With
'******************************************************************
On Error Resume Next


For Each C In Rg
'*************VARIABLE À ADAPTER****************
'Tu remplaces "Texte2" par sa vraie valeur
Texte = Split(C.Hyperlinks(1).Address, "Texte2")(1)
'***************************************************
If Err <> 0 Then
Err = 0
Else
Adr = C.Hyperlinks(1).Address
SubAdr = C.Hyperlinks(1).SubAddress
ScrTip = C.Hyperlinks(1).TextToDisplay
C.Hyperlinks(1).Delete
C.Hyperlinks.Add anchor:=C, _
Address:­r, _
ScreenTip:=Texte, _
TextToDisplay:=ScrTip
End If
Next
End Sub
'---------------------------------------------



"intactsaphir" discussion :
Bonjour,
Dans une colonne se trouve un nombre aléatoire de liens hypertextes se référant
à des noms de fichiers (*.xls;*;doc).

Ces noms de fichiers sont formatés comme indiqué ci dessous. Les chaînes de
caractères de chaque nom sont séparées par un espace.

Je souhaiterais, dans une autre colonne, extraire de ces noms de fichiers, les
informations essentielles afin que le nouveau lien hypertexte soit plus court.

Voici le format du lien hypertexte des noms de fichiers originaux :

alfanumérique1 texte1 texte2 texte3 alfanumérique2 alfanumérique3
alfanumérique4 texte4.xls
ou/et
alfanumérique1 texte1 texte2 texte3 alfanumérique2 alfanumérique3
alfanumérique4 texte4.doc

Le résultat du nouveau lien hypertexte serait alors du format suivant :

texte2 alfanumérique3 alfanumérique4 texte4 .xls
ou/et
texte2 alfanumérique3 alfanumérique4 texte4 .doc

Merci de me répondre

Cordialement
IS
Sam
Le #21148231
Bonjour,
j'arrive à une formule longue comme ça en ligne 3:
=STXT(SUBSTITUE(SUBSTITUE(A3;" ";"$";3);"
";"*";2);TROUVE("*";SUBSTITUE(SUBSTITUE(A3;" ";"$";3);"
";"*";2);1)+1;TROUVE("$";SUBSTITUE(SUBSTITUE(A3;" ";"$";3);"
";"*";2);1)-TROUVE("*";SUBSTITUE(SUBSTITUE(A3;" ";"$";3);" ";"*";2);1)-1)&"
"&DROITE(SUBSTITUE(A3;" ";"µ";5);NBCAR(SUBSTITUE(A3;"
";"µ";5))-TROUVE("µ";SUBSTITUE(A3;" ";"µ";5);1))
Cordialement
Michel dit "Sam"

"intactsaphir" news:
Bonjour,
Dans une colonne se trouve un nombre aléatoire de liens hypertextes se
référant
à des noms de fichiers (*.xls;*;doc).

Ces noms de fichiers sont formatés comme indiqué ci dessous. Les chaînes
de
caractères de chaque nom sont séparées par un espace.

Je souhaiterais, dans une autre colonne, extraire de ces noms de fichiers,
les
informations essentielles afin que le nouveau lien hypertexte soit plus
court.

Voici le format du lien hypertexte des noms de fichiers originaux :

alfanumérique1 texte1 texte2 texte3 alfanumérique2 alfanumérique3
alfanumérique4 texte4.xls
ou/et
alfanumérique1 texte1 texte2 texte3 alfanumérique2 alfanumérique3
alfanumérique4 texte4.doc

Le résultat du nouveau lien hypertexte serait alors du format suivant :

texte2 alfanumérique3 alfanumérique4 texte4 .xls
ou/et
texte2 alfanumérique3 alfanumérique4 texte4 .doc

Merci de me répondre

Cordialement
IS


intactsaphir
Le #21148541
Sam a écrit le 07/02/2010 à 16h23 :
Bonjour,
j'arrive à une formule longue comme ça en ligne 3:
=STXT(SUBSTITUE(SUBSTITUE(A3;" ";"$";3);"
";"*";2);TROUVE("*";SUBSTITUE(SUBSTITUE(A3;"
";"$";3);"
";"*";2);1)+1;TROUVE("$";SUBSTITUE(SUBSTITUE(A3;"
";"$";3);"
";"*";2);1)-TROUVE("*";SUBSTITUE(SUBSTITUE(A3;"
";"$";3);" ";"*";2);1)-1)&"
"&DROITE(SUBSTITUE(A3;"
";"µ";5);NBCAR(SUBSTITUE(A3;"
";"µ";5))-TROUVE("µ";SUBSTITUE(A3;"
";"µ";5);1))
Cordialement
Michel dit "Sam"

"intactsaphir" a écrit
dans le message de
news:
Bonjour,
Dans une colonne se trouve un nombre aléatoire de liens hypertextes se
référant
à des noms de fichiers (*.xls;*;doc).

Ces noms de fichiers sont formatés comme indiqué ci dessous. Les
chaînes
de
caractères de chaque nom sont séparées par un espace.

Je souhaiterais, dans une autre colonne, extraire de ces noms de fichiers,
les
informations essentielles afin que le nouveau lien hypertexte soit plus
court.

Voici le format du lien hypertexte des noms de fichiers originaux :

alfanumérique1 texte1 texte2 texte3 alfanumérique2
alfanumérique3
alfanumérique4 texte4.xls
ou/et
alfanumérique1 texte1 texte2 texte3 alfanumérique2
alfanumérique3
alfanumérique4 texte4.doc

Le résultat du nouveau lien hypertexte serait alors du format suivant :

texte2 alfanumérique3 alfanumérique4 texte4 .xls
ou/et
texte2 alfanumérique3 alfanumérique4 texte4 .doc

Merci de me répondre

Cordialement
IS





Bonsoir,

Merci Sam de ta réponse.

En testant la formule le résultat du formatage de la chaine de caractères du nouveau nom est celui demandé. Cependant, le lien hypertexte n'existe plus.
Comment faire pour que celui ci soit toujours actif?
Crdlmt
IS
intactsaphir
Le #21148921
michdenis a écrit le 07/02/2010 à 15h41 :
Bonjour,

J'utiliserais une macro ressemblant à ceci :

'---------------------------------------------
Sub test()
Dim Texte As String, Adr As String
Dim SubAdr As String, ScrTip As String

Dim Rg As Range, C As Range

'**************VARIABLE À ADAPTER***************************
With Worksheets("NomDelaFeuille") 'Nom de la feuille
'tu définis la plage où sont tes liens hypertextes
Set Rg = .Range("B4:B" &
.Range("B65536").End(xlUp).Row)
End With
'******************************************************************
On Error Resume Next


For Each C In Rg
'*************VARIABLE À ADAPTER****************
'Tu remplaces "Texte2" par sa vraie valeur
Texte = Split(C.Hyperlinks(1).Address, "Texte2")(1)
'***************************************************
If Err <> 0 Then
Err = 0
Else
Adr = C.Hyperlinks(1).Address
SubAdr = C.Hyperlinks(1).SubAddress
ScrTip = C.Hyperlinks(1).TextToDisplay
C.Hyperlinks(1).Delete
C.Hyperlinks.Add anchor:=C, _
Address:­r, _
ScreenTip:=Texte, _
TextToDisplay:=ScrTip
End If
Next
End Sub
'---------------------------------------------



"intactsaphir" a écrit
dans le message de groupe de
discussion :
Bonjour,
Dans une colonne se trouve un nombre aléatoire de liens hypertextes se
référant
à des noms de fichiers (*.xls;*;doc).

Ces noms de fichiers sont formatés comme indiqué ci dessous. Les
chaînes de
caractères de chaque nom sont séparées par un espace.

Je souhaiterais, dans une autre colonne, extraire de ces noms de fichiers, les
informations essentielles afin que le nouveau lien hypertexte soit plus court.

Voici le format du lien hypertexte des noms de fichiers originaux :

alfanumérique1 texte1 texte2 texte3 alfanumérique2
alfanumérique3
alfanumérique4 texte4.xls
ou/et
alfanumérique1 texte1 texte2 texte3 alfanumérique2
alfanumérique3
alfanumérique4 texte4.doc

Le résultat du nouveau lien hypertexte serait alors du format suivant :

texte2 alfanumérique3 alfanumérique4 texte4 .xls
ou/et
texte2 alfanumérique3 alfanumérique4 texte4 .doc

Merci de me répondre

Cordialement
IS


Bonsoir,

Merci michdenis de m'apporter une réponse.

Cependant les instructions suivantes sortent en erreur dans l'éditeur de vba
SubAdr = C.Hyperlinks(1).SubAddress
ScrTip = C.Hyperlinks(1).TextToDisplay
C.Hyperlinks(1).Delete
C.Hyperlinks.Add anchor:=C, _
Address:­r, _
ScreenTip:=Texte, _
TextToDisplay:=ScrTip

Par ailleurs, à moins que je ne comprenne pas la phrase "tu remplaces texte2 par sa vraie valeur" le fait de fixer le texte2 est impossible en raison que chaque chaine de caractères est distincte et change à chaque nom de fichier.

Merci de me répondre.

Cdlmt

IS
Sam
Le #21155931
Bonjour,
là je ne sais pas faire, il faudra sans doute passer par la macro de
Michdenis.
Cordialement
Michel dit "Sam"

"intactsaphir"
Sam a écrit le 07/02/2010 à 16h23 :
Bonjour,
j'arrive à une formule longue comme ça en ligne 3:
=STXT(SUBSTITUE(SUBSTITUE(A3;" ";"$";3);"
";"*";2);TROUVE("*";SUBSTITUE(SUBSTITUE(A3;"
";"$";3);"
";"*";2);1)+1;TROUVE("$";SUBSTITUE(SUBSTITUE(A3;"
";"$";3);"
";"*";2);1)-TROUVE("*";SUBSTITUE(SUBSTITUE(A3;"
";"$";3);" ";"*";2);1)-1)&"
"&DROITE(SUBSTITUE(A3;"
";"µ";5);NBCAR(SUBSTITUE(A3;"
";"µ";5))-TROUVE("µ";SUBSTITUE(A3;"
";"µ";5);1))
Cordialement
Michel dit "Sam"

"intactsaphir" a écrit
dans le message de
news:
Bonjour,
Dans une colonne se trouve un nombre aléatoire de liens hypertextes se
référant
à des noms de fichiers (*.xls;*;doc).

Ces noms de fichiers sont formatés comme indiqué ci dessous. Les
chaînes
de
caractères de chaque nom sont séparées par un espace.

Je souhaiterais, dans une autre colonne, extraire de ces noms de
fichiers,
les
informations essentielles afin que le nouveau lien hypertexte soit plus
court.

Voici le format du lien hypertexte des noms de fichiers originaux :

alfanumérique1 texte1 texte2 texte3 alfanumérique2
alfanumérique3
alfanumérique4 texte4.xls
ou/et
alfanumérique1 texte1 texte2 texte3 alfanumérique2
alfanumérique3
alfanumérique4 texte4.doc

Le résultat du nouveau lien hypertexte serait alors du format suivant :

texte2 alfanumérique3 alfanumérique4 texte4 .xls
ou/et
texte2 alfanumérique3 alfanumérique4 texte4 .doc

Merci de me répondre

Cordialement
IS





Bonsoir,

Merci Sam de ta réponse.

En testant la formule le résultat du formatage de la chaine de caractères
du
nouveau nom est celui demandé. Cependant, le lien hypertexte n'existe
plus.
Comment faire pour que celui ci soit toujours actif?
Crdlmt
IS


Publicité
Poster une réponse
Anonyme