XL 2010 Correction formules complexes..

richard31

XLDnaute Occasionnel
Bonjour

Voilà voilà ..j'ai un gros souci car je suis incapable de faire ce que l'on me demande..
Je m'explique, j'ai un fichier Excel ci-joint. Feuille "Données" l'on trouve les données sources avec lesquelles il faut travailler:
Colonne A nommée URL nous trouvons le chemin vers un fichier cible.
Colonne B le titre qui correspond au fichier.
le reste des colonnes doit être conservé mais aucun travail dessus..

En fait il faut avoir le résultat notifié en Feuille "Résultat souhaité".

Dans la colonne URL de la feuille "Données" il faut "découper" les informations. En fait on trouve comme info, le chemin vers un fichier qui est séparé avec des "/" et qui indique à chaque fois un répertoire. Exemple:
..\_Entreprise\Communautés\Structures\/DSC\Bibliothèque\Documents Privés ensemble DSC\Corpus Règlementaire\Documents Corpus Règlementaire\[11073207] fichedescriptive_xxx_aaa_bbb_ccc.pdf

Cela indique que le fichier se trouve dans le répertoire "Entreprise" ensuite " communautés" ensuite "Structure" etc etc. Jusqu'au fichier nommé "fichedescriptive_xxx_aaa_bbb_ccc.pdf" et bien il faudrait être capable de prendre ces informations et de créer une nouvelle feuille, avec pour chaque niveau une colonne nommée avec le nom du répertoire. Mais attention, seulement a partir de "Bibliothèque" !!Celui ci est considéré comme le niveau "0", C'est à dire avec l'exmple ci dessus, la colonne D ici on a "Bibliothèque" Colonne E on a " Documents Privés ensemble DSC\" etc .. Jusqu'au fichier mais attention, il ne faut pas prendre en compte le "\1.0" (ou \2.0 ..) que l'on trouve enfin de ligne dans la feuille "données" colonne A, il faut reporter juste le nom du fichier, cette info (1.0 2.0.. ) ne sert à rien.

Ci joint tout est expliqué dans le fichier Excel..Car compliqué à expliquer...

Ensuite créer une colonne "Nombre de Niveaux" (sur le fichier joint feuille "Résultat souhaité" colonne"AC") qui serai capable de comptabiliser le nombre de niveaux (répertoires) avant d'atteindre le fichier.
Une autre colonne nommée "Nombre de caractères fichier" (feuille "Résultat souhaité" colonne AD ) qui indique donc le nombre de caractère du fichier seul.

Une autre colonne "Nombre de caractère total" (colonne AE) qui comptabilise le nombre de caractère total en prenant en compte aussi les niveaux (additionner le nombre de caractère de chaque niveau).

Une colonne "> 128 caractères" qui serai capable de compter le nombre de caractères total (en prenant en compte les niveaux) et si cela dépasse 128 caractères, indiquer combien il faudrait en supprimer pour être en dessous ou égal.ET NE PAS NOTIFIER LES RESULTATS NEGATIFS !(donc a partir seulement de "0")

Je rappelle donc qu'Il ne faut prendre que les données qui ne dépassent pas le répertoire "Bibliothèque" des données sources. (Donc être capable d'analyser les données et de reporter seulement les sources qui dépasse le répertoire "Bibliothèque"). Car il est considéré comme niveau "0". En dessous, rien n'est pris en compte.

Et ensuite reporter les autres colonnes à la suite sans les changer dans la feuille "Résultat souhaité" ...

franchement je pense que personne ne va arriver à comprendre le truc et encore moins le faire^^
Ceci dit, je sais qu'ici il y a des dieux d'Excel >Ce qui n'est pas mon cas :(

Mais dans le fichier joint des formules qui fonctionnent déjà a peut près..
 

Pièces jointes

  • Fichier de travail.xlsx
    68.3 KB · Affichages: 56

Staple1600

XLDnaute Barbatruc
Bonsoir à tous

Une macro pour extraire la dernière chaîne de caractère après le dernier \
VB:
Sub a()
Dim t As ListObject , i as Long
Set t = ActiveSheet.ListObjects("Tableau2")
For i = 2 To t.ListRows.Count + 1
t.Range(i, 2) = Split(t.Range(i, 1), "\")(UBound(Split(t.Range(i, 1), "\")))
Next
End Sub
 

richard31

XLDnaute Occasionnel
Bonsoir à tous

Une macro pour extraire la dernière chaîne de caractère après le dernier \
VB:
Sub a()
Dim t As ListObject , i as Long
Set t = ActiveSheet.ListObjects("Tableau2")
For i = 2 To t.ListRows.Count + 1
t.Range(i, 2) = Split(t.Range(i, 1), "\")(UBound(Split(t.Range(i, 1), "\")))
Next
End Sub

Bonjour

Le souci est que je n'ai pas droit aux macro désactivées :( d'ou mes problèmes !
 

Discussions similaires

Réponses
4
Affichages
198

Statistiques des forums

Discussions
312 211
Messages
2 086 289
Membres
103 170
dernier inscrit
HASSEN@45