Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 STATUTS TAXREF, Fusionner dans une même cellule l'ensemble des valeurs ayant le même titre de colonne _VBA de mise en forme

lusert

XLDnaute Junior
Bonjour à tous!
Au départ j'avais une feuille mal organisée que j'ai mis en forme à l'aide du tableau croisée dynamique pour avoir plusieurs informations sur les statuts de protections par nom d'espèce (CD_REF), comme ci-dessous !


Je problème c'est que mes valeurs sont divisé, une valeur par colonne et qu'elles représentées par une valeur "1". J'ai donc utilisé deux formules excel pour remettre en forme mon tableau :
la première consiste à remplacer les valeur non vide par le nom de colonne en E4:E puis jusqu'à 4:
=SI(estvide(F6);"";F$5)
=SUBSTITUE(SUPPRESPACE(M1&" "&N1&" "&O1&" "&P1&" "&Q1&" "&R1&" "&S1&" "&T1&" "&U1);" ";",")
La seconde consiste à regrouper dans une même cellule toutes les valeurs non vides comportant le même nom en ligne 3.
Le problème c'est que ces étapes sont très longue surtout si je dois faire ça pour chaque département et régions de France métropolitaine.

Le rendu final de mon document donne ça : Avant /Après mise en forme croisée dynamique + formule

AVANT : celui ci ne comporte pas des protection par ligne mais par colonne, d'ou mon choix de mise en forme pour être en mesure des faires des correspodances avec TAXREFV13 (listes des espèces de France).




APRES :




Je vous remercie par avance et vos solution, surtout si une macro permet de faire ce travail assez laborieux qui peut amener à faire des erreurs
 

lusert

XLDnaute Junior


J'ai résolu une partie de mon problème, j'ai converti ma première formule excel en vba, Que voici !

Sub Macro1()
'
' Macro1 Macro
'

'
ActiveSheet.Paste
Selection.AutoFill Destination:=Range("E5:E6")
Range("E5:E6").Select
Selection.AutoFill Destination:=Range("E5:E11"), Type:=xlFillDefault
Range("E5:E11").Select
Selection.AutoFill Destination:=Range("E5P11"), Type:=xlFillDefault
Range("E5P11").Select
ActiveWindow.ScrollColumn = 110
ActiveWindow.ScrollColumn = 90
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 1
Range("E5").Select
End Sub


Petit problème ! Je ne sais pas comment lui dire de remplacer sur la même feuilles les valeurs. Actuellement cette macro permet de remplacer les valeur mais sur une autres feuille
Fichier ci_joint !

pour la deuxième étape alors là ? Je vois pas comment faire ça en macro ? vu qu'avec une formule excel je dois selectionner mes plages de concaquénation
 

Pièces jointes

  • Testdemiseenformestatuttaxrefv13.xlsm
    20.2 KB · Affichages: 7

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…