Récupérer les données affichées d'une cellule après mise en forme personnalisée

esconde

XLDnaute Nouveau
Bonjour à tous,

j'ai le problème suivant à résoudre :

Je voudrais récupérer le contenu affiché d'une cellule (sous la forme d'une fonction incrémentable)après mise en forme personnalisée, pour concaténer ces données.
Je vous joins un fichier exemple.

Si l'un d'entre vous avait une solution cela me ferait gagner pas mal de temps.

Merci par avance pour votre aide.
 

Pièces jointes

  • jeux essai.xlsx
    11.4 KB · Affichages: 60

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

Bonjour à tous

esconde
Une solution non optimale (car oblige l'emploi d'une colonne intermédiaire) et une fonction VBA perso
Donc en C2, mettre cette formule (puis recopier vers le bas)
Code:
="PAP 0"&A2
Ensuite dans un module standard , cette fonction
Code:
Function MONCONCAT(rng As Range, Optional delim$ = " ") As String
MONCONCAT = Join(Application.Transpose(rng), delim)
End Function
en enfin en D2, cette formule
Code:
=MONCONCAT(C2:C10;";")

NB: Test OK.
concat.png
 
Dernière édition:

esconde

XLDnaute Nouveau
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

Bonsoir,
Merci à toi Staple 1600.
C'est plus que je n'en demandais.
J'ai un message d'erreur lors de l'appel de la fonction :"erreur de compilation" nom ambigu détecté :MONCONCAT
je te joins capture du message.

Mais je peux très bien effectuer une concaténation via la fonction ou avec des "&"
Capture.JPG
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    30.9 KB · Affichages: 85
  • Capture.JPG
    Capture.JPG
    30.9 KB · Affichages: 92

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

Re

Essaie en renommant la fonction
Code:
Function ESCONCAT(rng As Range, Optional delim$ = " ") As String
ESCONCAT = Join(Application.Transpose(rng), delim)
End Function
et change alors la formule en:
Code:
=ESCONCAT(C2:C10;";")

Sur mon pc (avec XL2013) cela fonctionne.
Il faudra enregistrer ton classeur en *.xlsm puisqu'il contient une macro.
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

Re


Je viens de regarder attentivement ta copie d'écran ;)
Je n'ai jamais écrit...:rolleyes:
Code:
Sub MONCONCAT()
Function MONCONCAT(rng As Range, Optional delim$ = " ") As String
MONCONCAT = Join(Application.Transpose(rng), delim)
End Function

mais


Code:
Function MONCONCAT(rng As Range, Optional delim$ = " ") As String
MONCONCAT = Join(Application.Transpose(rng), delim)
End Function

C'est une fonction pas une Sub.
 

esconde

XLDnaute Nouveau
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

C'est une mauvaise manip de ma part. toutes mes excuses.

Cela fonctionne impeccablement.

Question subsidiaire : comment enregistrer cette fonction pour qu'elle soit dispo pour n'importe quel classeur ouvert ?
la fonction concaténation n'accepte qu'un nombre limité de paramètre (5)
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

Re

Tu parles de quelle fonction?
La native d'Excel: =CONCATENER()
(donc pour celle-ci voir dans l'aide d'Excel (Touche F1)

Pour MONCAT, testes par exemple sur une plage de cellules de 321 lignes ou plus.
Bref testes jusqu'à ce que cela plante ;)
 

esconde

XLDnaute Nouveau
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

Je voudrais pouvoir enregistrer TA fonction MONCONCAT afin qu'elle soit utilisable pour n'importe quel classeur EXCEL.

Où et comment dois-je l'enregistrer ?
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

Re


Dans le classeur de macros personnelles par exemple.
Les explications de la maison mère ci-dessous
Créer et enregistrer toutes vos macros dans un classeur unique - Excel - Office.com

la fonction concaténation n'accepte qu'un nombre limité de paramètre (5)
Non.
Il suffit d'indiquer la plage de cellules désirée (données sur une seule colonne)
Et c'est mieux si dans cette plage il n'y a pas de cellules vides.
Ou alors il faut peaufiner la fonction MONCONCAT
Ce que je ferai peut-être après avoir fini de m'activer en cuisine.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

Re

Difficile de faire brûler un gazpacho ;)
Tu as réussi à créer ton classeur de macros personnelles?
La fonction MONCONCAT fonctionne-t-elle dans ton tes classeurs?
 

esconde

XLDnaute Nouveau
Re : Récupérer les données affichées d'une cellule après mise en forme personnalisée

OUI j'ai suivi les conseil de qui vous savez et j'ai pu créer mon classeur PERSONNAL.XLSB dans lequel
j'ai mis toutes mes macros.

Merci encore à toi
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 378
Messages
2 087 760
Membres
103 660
dernier inscrit
205 Peugeot