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: 24

didcac

XLDnaute Occasionnel
Bonjour Chris,
Et merci de te pencher aimablement sur mon cas...
Oui, bien sûr. Je joins un fichier réel (extraits représentatifs) avec plusieurs exemples dans le cadre général (mais en ôtant bien évidemment des données personnelles et identifiantes). C'est un tableau où il y a beaucoup de Colonnes (et environ 4.000 lignes).
Les 2 colonnes sur lesquelles le retraitement va se concentrer sont : T (intitulé d'événement ou "Soirée") et BO (Lieux d'organisation).
Il est tout à fait possible de créer une colonne supplémentaire pour afficher le résultat final escompté, au besoin.
N'hésite pas à me demander toute précision nécessaire.
 

Pièces jointes

  • Extraits du Fichier.xlsm
    166.9 KB · Affichages: 6

didcac

XLDnaute Occasionnel
Bonjour Chris,
Eventuellement, et au besoin, je peux d'ores et déjà convertir certains mots raccourcis ou abrégés dans toute la Base (par exemple Sfa par Soirée de fin d'année partout où c'est présent).
D'une manière générale, les intitulés d'événement comportent de 1 à 5 ou 6 mots (tels "Cocktail" ou "Convention annuelle du Service Commercial"). Je précise cela car on peut peut-être s'appuyer sur l'élément suivant, systématiquement présent, qui est la Date (Année AAAA) pour faire une partie des retraitements.
Eventuellement, il y a aussi les DEUX POINTS, eux aussi toujours là avant le Lieu d'organisation.
Ce sont juste des remarques informatives que je fais, car je n'y connais rien, mais je devine qu'il faut probablement à un moment donné s'appuyer sur des éléments concrets et clairement identifiés, à l'intérieur de la cellule, pour pouvoir agir sur l'ensemble.

Merci.
 

chris

XLDnaute Barbatruc
RE

Bon cela est assez galère à faire
Pas sûr ici que PowerQuery soit la meilleure solution

Tout est classé par Année
J'ai chargé le résultat sur une feuille à part en dessous des valeurs initiale
On pourrait y ajouter tout ou partie des colonnes de l'onglet initial...
 

Pièces jointes

  • Extraits du Fichier_PQ4.xlsx
    192 KB · Affichages: 4

didcac

XLDnaute Occasionnel
Bonjour Chris,
C'est super !! Bravo, cela fonctionne parfaitement ainsi, très belle réalisation.

Pour l'utilisation, comme je ne connais pas cette "présentation" (pop-up avec des boîtes à cocher), comment procéder pour l'appliquer telle quelle aux autres lignes de la Base réelle (actuellement absentes) ?
La Feuille 1 doit-elle accueillir les lignes manquantes (à partir de BO9 jusqu'à environ BO4000), dans un premier temps ?
Où tout se fait-il désormais directement sur la Feuille 2 ?
Et auquel cas, dois-je insérer des lignes à partir de la ligne 6 (pour l'instant vide) jusqu'à 4000 ?
Et pour obtenir comme ton résultat, y a-t-il un lancement de type "exécuter" à faire, ou bien c'est censé se recalculer tout seul ?
Merci de me préciser ces modalités de fonctionnement.
 

chris

XLDnaute Barbatruc
Bonjour

J'ai créée une plage nommée Data par formule (voir gestionnaire de noms)

Si les colonnes ne changent pas, elle s'adapte automatiquement au nombre de lignes : il te suffit de remplir les lignes dans feuil1

Il n'y a pas de "pop-up avec des boîtes à cocher" mais un tableau structuré, ce qui existe dans Excel depuis la version 2003 soit 17 ans :p

Ce tableau structuré est issu de requêtes PowerQuery (intégré à Excel 2016+ et en add on à partir de 2010)

Pour actualiser ce tableau une fois les lignes ajoutées : Données, Actualiser Tout
 

didcac

XLDnaute Occasionnel
Très bien.
J'ai suivi tes instructions, copié les lignes dans Feuille 1 (à la suite des autres), mais dans le Menu déroulant Données, Actualiser est grisé. Est-ce dû au fait que c'est EXCEL 2016 pour MAC ? Normalement, les fonctionnalités doivent converger et être quasi identique.
Je te mets 2 copies de fenêtres pour que tu vois s'il n'y a pas une rubrique plus adaptée (la deuxième petite, c'est en cliquant sur "Tableau" que je l'ai eue).
Merci !
 

Pièces jointes

  • Capture d’écran 2020-06-02 à 12.16.48.png
    Capture d’écran 2020-06-02 à 12.16.48.png
    101.2 KB · Affichages: 3
  • Capture d’écran 2020-06-02 à 12.16.21.png
    Capture d’écran 2020-06-02 à 12.16.21.png
    97.8 KB · Affichages: 3

chris

XLDnaute Barbatruc
Arf

Oui sur MAC pas de PowerQuery (sauf 365 pour adhérents au programme insider)

Il faut toujours préciser quand on travaille sur MC car il y a plein de limites...

Pour les tableaux structurés ce n'est pas Table qui est une table de scénario d'analyse mais
Accueil, Mettre sous forme de Tableau
 

didcac

XLDnaute Occasionnel
Ah OK.
En regardant bien, je n'ai pas d'Accueil. Et en développant les listes, nulle part "Mettre sous forme de tableau".
Mes Menus sont :
Excel / Fichier / Edition / Affichage / Insérer / Mise en forme / Outils / Données / Fenêtre / Aide
NB : Mise en forme, c'est Cellule, Ligne, Colonne, Mise en forme conditionnelle, Style : aucune évocation directe de Tableau.

En PJ, une fenêtre faisant allusion à un tableau croisé dynamique (est-ce utile ?)
Et toi-même ne peut pas "Mettre sous forme de Tableau" et me l'envoyer ? Peut-être qu'ainsi je pourrai l'exploiter avec le MAC, une fois structuré de cette façon ? (je l'ignore)
Merci de me dire comment faire.
 

Pièces jointes

  • Capture d’écran 2020-06-02 à 14.13.06.png
    Capture d’écran 2020-06-02 à 14.13.06.png
    261.9 KB · Affichages: 4

didcac

XLDnaute Occasionnel
Merci bien.
Mais dans la liste des choses censées "s'enchaîner", ça ne fonctionne pas vraiment.
Déjà, et c'est peut-être une bonne chose, je me suis finalement aperçu que j'ai confondu "Menus" et "Onglets". Même sur MAC, j'ai bien, en effet comme toi :
Données, Actualiser Tout (en Onglets figés avec des icônes)

Et, par ailleurs, j'ai aussi Accueil, Mettre sous forme de tableau.

J'ai procédé comme suit :
1) J'ai été sur Feuille 1 (remplie des nouvelles fiches / lignes), fait "Actualiser tout", mais là rien de spécial ne s'est passé apparemment. Je vais alors sur Feuille2 où rien n'a changé non plus. Je refais "Actualiser tout" (NB : cette fois j'ai aussi la possibilité de faire uniquement "Actualiser", au besoin), et toujours rien ne se passe.

2) Aussi, j'ai essayé ta deuxième méthode :
Sur Feuille 1, j'ai fait Accueil, Mettre sous forme de tableau en me positionnant sur B4 et en indiquant comme fin de plage B4000). N'aurais-je pas dû faire plutôt A4 à B4000 (comme en Feuille 2 où y'a identifiant) ?
Puis je vais sur Feuille 2, je fais Actualiser tout, et là encore rien ne se passe !!

J'ai bien du mal à comprendre. On a l'impression désormais que les commandes du MAC sont (du moins celles-ci) identiques au PC, mais ça bloque encore.
 
Haut Bas