Récupération de dates dans plusieurs cellules.

  • Initiateur de la discussion Initiateur de la discussion JPC
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JPC

XLDnaute Nouveau
Bonsoir,
J'aimerai savoir par quel moyen on peut récupérer des dates au format date dans une colonne et les remettre dans une seule cellule avec par exemple une virgule comme séparateur.
Exemple : colonne avec 01/02/2014 25/3/2014 31/03/2014
et les récupérer dans une cellule sous cette forme :
01,25,31
Merci pour votre aide.
 
Re : Récupération de dates dans plusieurs cellules.

Bonsoir JPC, bienvenue sur XLD,

Fichier joint avec cette formule en D2 :

Code:
=TEXTE(JOUR(A2);"00")&TEXTE(JOUR(B2);"\,00\,")&TEXTE(JOUR(C2);"00")
A+
 

Pièces jointes

Dernière édition:
Re : Récupération de dates dans plusieurs cellules.

Re, hello Gardien de phare,

Ma formule du post #2 occupe 54 octets en mémoire.

Celle-ci ne prend que 49 octets, elle est donc meilleure :

Code:
=TEXTE(10000*JOUR(A2)+100*JOUR(B2)+JOUR(C2);"00\,00\,00")
Fichier (2).

A+
 

Pièces jointes

Re : Récupération de dates dans plusieurs cellules.

Hello Job,
Tu as raison, mais avec Excel je ne fais pas trop attention à ce genre de truc ! Je n'utilise Excel que pour des traitements limités en taille (200 ou 300 000 lignes).
J'y fais attention sur le logiciel que j'utilise normalement au taf où une base avec deux colonnes dont une variable booléenne va augmenter de 30 % selon que le booléen est un caractère ou un numérique, ce qui, sur plusieurs millions de lignes et centaines de colonnes, me vaut un certain respect des admins... 😱
 
Re : Récupération de dates dans plusieurs cellules.

Re,

Un p'tit coup de VBA avant de faire dodo avec cette fonction (Alt+F11) :

Code:
Function JourConcat$(r As Range, sep$)
Dim mat$(), n&
ReDim mat(r.Count - 1)
For Each r In r
  mat(n) = Format(Day(r), "00")
  n = n + 1
Next
JourConcat = Join(mat, sep)
End Function
Son intérêt c'est qu'on peut concaténer autant de jours qu'on veut 🙂

Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Récupération de dates dans plusieurs cellules.

Re,

3ème et dernière solution.

Sur Excel 2007, comme sur Excel 2003, on peut télécharger sur le web (c'est gratuit) la macro complémentaire Morefunc de Laurent Longre.

Elle contient la fonction MCONCAT qu'on utilisera en D2 :

Code:
=MCONCAT(TEXTE(JOUR(A2:C2);"00");",")
C'est une formule matricielle à valider par Ctrl+Maj+Entrée.

Fichier joint.

Bonne nuit et A+
 

Pièces jointes

Re : Récupération de dates dans plusieurs cellules.

Bonjour à tous 🙂

J'avais commencé une fonction, je la poste.
VB:
Function Jours$(x As Range, Optional Separateur As String = ",", Optional PasDate As Boolean = False)
  • x est la plage de cellule (obligatoire)
  • Separateur est le séparateur à utiliser (optionnel) - la virgule par défaut
  • PasDate indique quoi faire des cellules qui ne sont pas des dates (optionnel) - valeur par défaut = FAUX
    • si PasDate est FAUX ou omis , on ignore ces cellules
    • si PasDate est VRAI, on remplace ces cellules par la valeur "vide".

Le code:
VB:
Function Jours$(x As Range, Optional Separateur As String = ",", Optional PasDate As Boolean = False)
Dim elem
For Each elem In x
  If IsDate(elem) Then
    Jours = Jours & Separateur & Format$(elem, "dd")
  ElseIf PasDate Then
    Jours = Jours & Separateur
  End If
Next elem
If Left(Jours, 1) = Separateur Then Jours = Mid(Jours, 2)
End Function
 

Pièces jointes

Re : Récupération de dates dans plusieurs cellules.

Merci encore de toutes vos réponses, je vous joins un fichier sur lequel je dois travailler.
Il y a un onglet saisie, et un autre onglet ou je dois récupérer avec qq conditions les données de la feuille de saisie.
j'ai mis qq commentaires dans les cellules pour une meilleure explication de mes besoins.
Merci, @ +
JPC
 

Pièces jointes

Re : Récupération de dates dans plusieurs cellules.

Bonjour JPC, le forum,

Le problème posé au post #1 a été résolu de plusieurs manières.

C'est à vous maintenant d'appliquer la solution qui vous convient.

Si vous rencontrez un autre problème ouvrez une nouvelle discussion.

A+
 
Re : Récupération de dates dans plusieurs cellules.

Re,

Pour résoudre vos problèmes, le mieux est de :

- nommer dynamiquement le tableau de la feuille "Saisie"

- construire 3 fonctions VBA Noms Jours Montants utilisant ce tableau et la date du mois (G15)

Pas le temps ce matin, mais si personne ne l'a fait je verrai dans l'après-midi.

A+
 
Re : Récupération de dates dans plusieurs cellules.

Re,
Merci Job75, je ne maitrise malheureusement pas le VBA, je vais attendre que tu ais un peu de temps.
En tout cas merci encore de l'intérêt porté à mon problème.
Bonne journée.
JPC
 
Re : Récupération de dates dans plusieurs cellules.

Re JPC,

Voyez le fichier joint et ces 3 fonctions VBA :

Code:
Function Résidents$(t, dat, n&)
Dim d As Object, i&, a
t = t 'matrice, plus rapide
dat = Format(dat, "myyyy")
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(t)
  If Format(t(i, 3), "myyyy") = dat Then d(t(i, 4)) = ""
  If d.Count = n Then a = d.keys: Résidents = a(n - 1): Exit Function
Next
End Function

Function Jours$(t, dat, nom$, sep$)
Dim i&, a$(), n&
t = t 'matrice, plus rapide
dat = Format(dat, "myyyy")
For i = 2 To UBound(t)
  If Format(t(i, 3), "myyyy") = dat And t(i, 4) = nom Then
    ReDim Preserve a(n)
    a(n) = Format(Day(t(i, 3)), "00") 'ce format est facultatif...
    n = n + 1
  End If
Next
Jours = Join(a, sep)
End Function

Function Montants(t, dat, nom$)
Dim i&
t = t 'matrice, plus rapide
dat = Format(dat, "myyyy")
For i = 2 To UBound(t)
  If Format(t(i, 3), "myyyy") = dat And t(i, 4) = nom Then _
    Montants = Montants + t(i, 5)
Next
If Montants = 0 Then Montants = ""
End Function
Nota : dans la feuille "Saisie" d'origine j'ai supprimé les colonnes D:E qui ne servaient à rien.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
117
Réponses
3
Affichages
284
Retour