XL 2016 Réaffectation de données à l'intérieur d'une même cellule

didcac

XLDnaute Occasionnel
Bonjour à tous,
J'ai un fichier dont une Colonne comporte dans chacune de ses cellules beaucoup de données (texte et dates).
Je cherche à retraiter chaque cellule, sachant que la saisie suit un schéma structurel homogène, notamment en matière de caractère séparateur (uniformément, la virgule). Une Macro peut ainsi probablement être réalisable et opérationnelle.
Il s'agit d'insérer des MOTS (suite de 1 à 5 environ) à des endroits bien précis, issus soit d'une cellule externe d'une autre Colonne, soit d'un endroit précis à l'intérieur même de ladite cellule.
Chaque cellule est censée être remplie de Nom(s) d'événements suivi de l'Année puis DEUX POINTS puis le Lieu de l'événement. Là, s'il y a un deuxième événement, il y a systématiquement une VIRGULE puis autre séquence de même conception : Nom Année : Lieu, etc etc

Il y a 3 cas possibles, qui peuvent aléatoirement être présents dans une même cellule (les uns à la suite des autres, même si ci-après je n'en mets qu'un à chaque fois) :

1) le contenu de la cellule commence à tort par une Année (normalement à 100% au format AAAA), car le Nom a été oublié lors de la saisie initiale.
Exemple > 2017 : FLUNCH
NB : Là, le Nom de l'événement peut (heureusement) être récupéré dans une cellule externe pour être copié et inséré avec un ESPACE. Si c'est "Soirée", cela donnerait :
Soirée 2017 : FLUNCH


2) le contenu de la cellule commence bien par le Nom de l'événement suivi d'une Date, mais il est aussi suivi immédiatement par une deuxième voire troisième date car cet événement s'est tenu plusieurs fois dans le même Lieu.
Exemple > Réunion annuelle 2016, 2018, 2019 : SALONS Z
NB : là on doit absolument utiliser le Nom figurant à l'intérieur de la cellule, soit "Réunion annuelle", et pas avoir recours à la cellule externe (indiquant un autre nom).
Je souhaite obtenir :
Réunion annuelle 2016 : SALONS Z, Réunion annuelle 2018 : SALONS Z, Réunion annuelle 2019 : SALONS Z
NB : pour avoir 3 séquences, la virgule n'est présente qu'après les deux première dates, puisque la troisième est dès le départ bien structuré, avec le Lieu situé juste derrière (et finissant).


3) et parfois un mix des 2 soucis (il manque le Nom au début et il y a plusieurs dates) :
Exemple > 2014, 2015, 2019 : PARC ASTERIX
Avec en cellule externe "copiable" : Fête de Noël
Je souhaite obtenir :
Fête de Noël 2014 : PARC ASTERIX, Fête de Noël 2015 : PARC ASTERIX, Fête de Noël 2019 : PARC ASTERIX


Je joins une Feuille avec des données plus complètes, mais du même genre, afin que vous puissiez créer la Macro que mon niveau de compétence ne me permet pas de réaliser, et faire le test dessus.

Je vous remercie beaucoup par avance pour l'attention que vous voudrez bien porter à ma demande d'aide !
 

Pièces jointes

  • Fichier LIEUX.xlsm
    9.6 KB · Affichages: 26

didcac

XLDnaute Occasionnel
Ah d'accord, que ce soit avec Données / Actualiser ou bien avec Accueil / Mettre sous forme de tableau ? Dans les 2 cas ça ne marchera pas ?

Dans cette perspective, le mieux est que je t'envoie les données totales du fichier, tu lances la procédure sur ton PC et tu me le renvoies. Au moins, là, ça marchera, logiquement.
Tu ne crois pas ?
Sinon, quoi faire d'autre ?
Merci.
 

didcac

XLDnaute Occasionnel
Bonjour Chris,
Non, pas du tout, mais je préfère repointer les éléments dedans, avant. Et cela me prend beaucoup de temps...
Je te l'enverrai d'ici peu. Il ne pèse quasiment rien, car il n'y aura que les 2 colonnes contenant les données à retraiter.
Une question : si la colonne T (qui sert dans certains cas pour remplir le tableau) n'est pas remplie de données en totalité, les cases vides peuvent-elles poser un problème et faire planter le "processus d'affectation" ? Ou bien cela est totalement sans incidence sur l'opération ?
Merci pour le suivi.
A bientôt.
 

didcac

XLDnaute Occasionnel
Bonjour Chris,
Comme convenu, voici enfin le fichier. Le pointage m'a pris du temps.
Il y figure évidemment les données de la colonne T et colonne BO, mais aussi un numéro unique de fiche individuelle dans une autre colonne (pour que je puisse faire des tris par la suite).
Merci de le mettre dans ton programme et me le renvoyer.
Cordialement
 

Pièces jointes

  • BASE RÉELLE (T & BO) 02:07:2020.xlsx
    95.3 KB · Affichages: 4

chris

XLDnaute Barbatruc
Bonjour

Ton fichier pose plusieurs problèmes bloquants

  • BO 3042 : il y a un : en trop (cela je peux corriger)
  • BO2297 : il manque une année et comme cela passe de 1996 à 2005, on ne peut la deviner
  • nombre de lignes, au lieu d'avoir une année, ont des données de type 03/1998 : ce qui n'est pas du tout prévu à l'origine puisque qu'on trouve l'année en rechercher 4 digit avant le premier :
 

didcac

XLDnaute Occasionnel
J'ai corrigé les : du premier problème
Peux-tu me préciser le numéro de Fiche (en colonne EA) du problème BO2297 car je ne vois rien de ce que tu décris (et colle le texte complet de la cellule qui gêne)
Pour les dates, je vais utiliser le "Remplacer par" :
> Chercher " 01/" et Remplacer par du vide "" (puis idem 02/, 03/, jusqu'à 12/ (décembre).
Cela te semble logique comme méthode ?
Merci
 

chris

XLDnaute Barbatruc
Re

C'est la cellule BO2997 et non BO2297 (sorry)

OK je vais faire le cherche et remplace

Donc donne juste l'année manquante

Edit : en fait il y a d'autres soucis (l'exemple n'était pas assez représentatif
Je vois ce que je peux faire mais peut-être pas avant qq jours
 
Dernière édition:

didcac

XLDnaute Occasionnel
En corrigeant, j'ai repéré quelques erreurs ailleurs, et voici donc le fichier en principe plus propre.
Peut-être que ce sont les soucis que tu évoques ? (Teste "tel quel", au cas où ?)
En tout cas, mieux vaut partir sur cette dernière version un peu épurée.
Merci.
(Et aucun problème si cela prend quelques jours).
 

Pièces jointes

  • BASE RÉELLE (T & BO) 02:07:2020.xlsx
    95 KB · Affichages: 5

didcac

XLDnaute Occasionnel
Bonjour Chris,
As-tu pu corriger ton programme, pour éviter les quelques erreurs ou anomalies que tu avais repérées, comme tu me l'avais dit précédemment ?
Tu m'avais parlé de quelques jours, mais comme cela fait deux semaines, c'est pour cela que je me permets de t'interroger à ce sujet.
Merci bien.
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 904
Membres
101 834
dernier inscrit
Jeremy06510