Concaténer pour date

Jeremyy

XLDnaute Occasionnel
bonjour a tous amis du forum,

j'aurais une question voila j'ai sa :

en cellule 1 : 18, en cellule 2 : 02, en cellule 3 : 09

je voudrais savoir comment faire en vba pour arrivé à avoir sa : 18/02/09


merci d'avance !

bonne journée
 

Jeremyy

XLDnaute Occasionnel
Re : Concaténer pour date

merci pascalxld !

alors un petit probleme je ne sais pas de où cela vient voila j'applique la formule qui fonctionne mais j'ai 13808 ligne à faire mais cela fonctionne bien jusqu'a la ligne 6920 et ensuite il me met 39861 pour une date qui devrait etre 17/02/09! je ne comprend pas pourquoi c'est peut etre un probleme de mémoire?

merci d'avance
 
Dernière édition:

Jeremyy

XLDnaute Occasionnel
Re : Concaténer pour date

Ah encore un petit probleme !

je croyais que tout était bon mais j'ai remarqué que lorsque j'ai les cellule à partir de où je construit ma date qui sont vide il me met une date ( dans mon cas c'est le 30/11/1999 et que ensuite j'ai la date de mon windows qui se m'est également à cette date ! C'est assez étonnant je trouve ! mais je voudrais que lorsque les cellules de base sont vide que j'ai valeur .

MErci d'avance
 

vbacrumble

XLDnaute Accro
Re : Concaténer pour date

Bonjour tous


Par formules
a1:18; b1:2; c1:9

en d1
ici renvoie du texte
=TEXTE(A1&"/"&B1&"/"&C1;"jj/mm/aaaa")
ou
Renvoie le numéro de série de la date
=DATEVAL(A1&"/"&B1&"/"&C1)
(donc format/cellule/Date à appliquer ensuite)

A+
 
Dernière édition:

Jeremyy

XLDnaute Occasionnel
Re : Concaténer pour date

Merci mais je voudrais en vba ! mais je ne comprend pas du tout pourquoi j'ai ce probleme car quand j'ai les cellules remplies il me donne la date parfaitement , alors que des que les cellulesb de base sont vides il me met une date 31/09/1999 et de ce fait j'ai l'heure de mon windows déréglé !
 

vbacrumble

XLDnaute Accro
Re : Concaténer pour date

Re



Test sur 18808 lignes OK
(moins de 5 secondes de temps d'exécution, exactement 2,23 secondes)
avec données en colonnes A,B, C


Code:
Sub macro()
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To ActiveSheet.UsedRange.Rows.Count
Cells(i, 1) = _
DateSerial(Cells(i, 1).Offset(, 2), Cells(i, 1).Offset(, 1), Cells(i, 1))
Cells(i, 2).Resize(1, 2).Clear
Next
Application.ScreenUpdating = True
End Sub

A+
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
331

Statistiques des forums

Discussions
312 755
Messages
2 091 714
Membres
105 054
dernier inscrit
uzaoui