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

Autres Formater plusieurs donnees en 1 seul donne numerique besoin macro vba !

LUYGYS

XLDnaute Occasionnel
Bonjour l' idée est de pouvoir formater plusieurs cellules en une seul donnée dans une autre cellule.
Un exemple excel pour comprendre mieux est fournie
Un macro VBA EXCEL peut le faire sans doute ?
Merci d'avance aux intéresses !
Cordialement

LUYGYS
 

Pièces jointes

  • NUMEROS FORMAT MACRO SPECIAL.xlsx
    10 KB · Affichages: 5

Staple1600

XLDnaute Barbatruc
Bonjour le fil

LUYGYS
Traduis la formule en anglais puisque apparemment celle la langue de la version Excel que tu utilises.
Ce que je viens de faire (avecc l'aide de l'enregistreur de macros)
=(DAY(R[11]C9)&MONTH(R[11]C9)&RIGHT(YEAR(R12C[7]),2)&TEXT(HOUR(R[11]C10),""00"")&INT(R[11]C11))*1"
Tu n'as plus qu'à modifier la formule de JHA en mettant le nom anglais des fonctions.
NB: Attention aux références des cellules (ici elles viennent de VBA et sont donc de type R1C1), donc ne pas faire un simple copier/coller de la formule "anglaise"
 
Dernière édition:

sousou

XLDnaute Barbatruc
Bonjour à tous
Et pourtant ca fonctionne!
en fonction perso
Function calcul(cel)
With cel

n = Day(.Value) & Month(.Value) & Format(cel, "yy") & Format(.Offset(0, 1), "hh") & Fix(.Offset(0, 2))
calcul = n
End With
 

LUYGYS

XLDnaute Occasionnel
Bonjour.
Merci pour la traduction.
Vous avez raison il fallait écrire la formule en anglais et ça marche.
Par contre si on veut qui la formule tienne compte des minutes et des centimes on fait comment ?
Cordialement.
LUYGYS
 

Pièces jointes

  • NUMEROS FORMAT MACRO SPECIAL.xlsm
    15.5 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
re
bonjour
les "00" etant ignoré en vba comme excel dans le calcul des formule il faut les ramener a du string
a traduire en anglais
=(JOUR($I12)&MOIS($I12)&DROITE(ANNEE($I12);2)&TEXTE(HEURE($J12);"00")&ENT($K12))*1&DROITE("00"&K12-ENT(K12);2)



par vba ca pourrait etre ca
VB:
Function concat1(c1, c2, c3)
concat1 = Format(c1, "ddmmyy") & Format(c2, "hhnn") & Replace(c3, ",", "")
End Function

Sub test()
MsgBox concat1([i12], [j12], [k12])
End Sub


en formule
=concat1(I12;J12;K12)
 
Dernière édition:

LUYGYS

XLDnaute Occasionnel
Bonjour .
Merci c'est exactement ce que j'avais demande en VBA plutôt que une formule ....
Ca marche nickel.
Un grand merci encore .

Cordialement

LUYGYS
 

patricktoulon

XLDnaute Barbatruc
re
Oupss!Oupss!
attention!!
j'ai peut être omis une coquille vba com excel omettant les 0 la partie replace risque de gaffer a l'entier
donc correction
VB:
Function concat1(c1, c2, c3)
concat1 = Format(c1, "ddmmyy") & Format(c2, "hhnn") & Left(Replace(c3, ",", "") & "00", 4)
End Function

Sub test()
MsgBox concat1([i12], [j12], [k12])
End Sub
la c'est bon on est ok
 

Discussions similaires

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