XL 2013 date au format nombre

bruno972

XLDnaute Junior
Bonjour à tous,

j'ai réalisé un petit formulaire pour la saisie par les opérateurs de la production quotidienne du service afin d'éviter la saisie sur papier en 2022.

la saisie alimente une base "onglet source".

mon problème est le suivant:
dans l'onglet source colonne C s'inscrit la date au format date, je voudrais que dans la colonne I la date soit au format nombre comme en cellule I12 et non au format date comme en cellule I13.

pour l'instant je dois double cliquer sur la cellule I13 puis me déplacer sur une autre cellule pour convertir le format date.

Merci d'avance pour vos propositions.

Cordialement
 

Pièces jointes

  • Production 2022.xlsm
    33.8 KB · Affichages: 16

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @bruno972 :),

Essayez :
VB:
=A3 & DATEVAL(TEXTE(C3;"jj/mm/aaa"))

Le problème vient du fait que vos "dates" de la colonne C sont dans certaines cellules du texte et non de "vraies" dates. Pour s'en apercevoir, affectez à la colonne C l'alignement standard.
  • Quand la date est alignée à droite, c'est un nombre et donc une vraie date
  • Quand la date est alignée à gauche, c'est du texte et pas une date au sens d'Excel

Que fait la Formule ?
Elle convertit C3 en texte selon le format date "jj/mm/aaaa"
  • quand C3 un une vraie date (ie un nombre représentant une date), Texte() renvoie ce nombre comme un texte au format jj/mm/aaaa.
  • Quand C3 est du texte écrit sous forme jj/mm/aaaa (fausse date), Texte() ne touche pas à C3 et donc renvoie le texte originel tel quel (soit aussi jj/mm/aaaa)
A ce stade quelque soit le type de la date de départ (nombre ou texte), Texte() a renvoyé du texte représentant une date.

On prend ce texte et on le convertit en vraie date par la fonction Dateval()
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Une formule plus simple est :
VB:
=A3 & 1*C3

On profite du comportement d'Excel qui essaye de convertir automatiquement les termes d'une opération arithmétique en nombre. Quand C3 est du texte, Excel va essayer de convertir C3 en nombre (parce que C3 est impliqué dans une multiplication). Il effectue de manière transparente la conversion du texte (fausse date) en nombre (vraie date).
 
Dernière édition:

bruno972

XLDnaute Junior
Re,

Une formule plus simple est :
VB:
=A3 & 1*C3

On profite du comportement d'Excel qui essaye de convertir automatiquement les termes d'une opération arithmétique en nombre. Quand C3 est du texte, Excel va essayer de convertir C3 en nombre (parce que C3 est impliqué dans une multiplication). Il effectue de manière transparente la conversion du texte (fausse date) en nombre (vraie date).
Merci pour les formules l'une et l'autre fonctionnent mais la nouvelle ligne qui s'agrémente avec le formulaire ne prend pas en compte la formule.
 

saaka_biga

XLDnaute Nouveau
Bonjour; j'aimerais solliciter votre aide. Comment convertir ma colonne date qui est en format texte en format date? Merci
Bonjour @bruno972 :),

Essayez :
VB:
=A3 & DATEVAL(TEXTE(C3;"jj/mm/aaa"))

Le problème vient du fait que vos "dates" de la colonne C sont dans certaines cellules du texte et non de "vraies" dates. Pour s'en apercevoir, affectez à la colonne C l'alignement standard.
  • Quand la date est alignée à droite, c'est un nombre et donc une vraie date
  • Quand la date est alignée à gauche, c'est du texte et pas une date au sens d'Excel

Que fait la Formule ?
Elle convertit C3 en texte selon le format date "jj/mm/aaaa"
  • quand C3 un une vraie date (ie un nombre représentant une date), Texte() renvoie ce nombre comme un texte au format jj/mm/aaaa.
  • Quand C3 est du texte écrit sous forme jj/mm/aaaa (fausse date), Texte() ne touche pas à C3 et donc renvoie le texte originel tel quel (soit aussi jj/mm/aaaa)
A ce stade quelque soit le type de la date de départ (nombre ou texte), Texte() a renvoyé du texte représentant une date.

On prend ce texte et on le convertit en vraie date par la fonction Dateval()
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Saaka_biga, Bruno, Eric, mapomme,
Le tableau structuré étant alimenté par du VBA, pourquoi ne pas le remplir complétement en VBA ? Ce serait à mon avis plus simple.
En PJ je l'ai alimenté avec :
VB:
    'Modifié
    ActiveCell.Offset(0, 2).Value = Format(CDate(txtDate), "dd/mm/yyyy")    '  Date en format date
    ActiveCell.Offset(0, 8).Value = cboPersonnel.Value & "  " & Format(CDate(txtDate), "dd/mm/yyyy") ' Compil name+Date
    ActiveCell.Offset(0, 7).Value = Application.VLookup(cboLigne, Sheets("Liste").[Tableau4], 2, False) ' Objectif OEE
Ce qui supprime toutes les formules.
De plus, j'ai rajouté un petit bouton ToDay dans l'userform, qui permet à l'utilisateur s'il le souhaite de rentrer automatiquement la date du jour, tout en laissant la saisie manuelle possible.
 

Pièces jointes

  • Production 2022 (V2).xlsm
    33.3 KB · Affichages: 7

bruno972

XLDnaute Junior
Bonjour à tous et une bonne année ,

merci pour vos réponses cela m'aide beaucoup.
j'ai un autre problème. l'ensemble des équipes saisissent en même temps leur production sur chaque ligne.
une fois que le fichier " Production 2022" est ouvert sur une des lignes les autres lignes sont en lecture seule.
j'ai donc dupliqué X fois le fichier " Production 2022" sur chaque ligne avec le nom de la ligne en fin de fichier.

Ma question: peut-on partager un fichier avec du VBA sur plusieurs ordinateurs ou peut-on fusionner l'ensemble des feuilles "sources" des différents fichiers " Production 2022" de chaque ordinateur dans un fichier commun.

Merci et bonne journée
 

Etoto

XLDnaute Barbatruc
Bonjour à tous et une bonne année ,

merci pour vos réponses cela m'aide beaucoup.
j'ai un autre problème. l'ensemble des équipes saisissent en même temps leur production sur chaque ligne.
une fois que le fichier " Production 2022" est ouvert sur une des lignes les autres lignes sont en lecture seule.
j'ai donc dupliqué X fois le fichier " Production 2022" sur chaque ligne avec le nom de la ligne en fin de fichier.

Ma question: peut-on partager un fichier avec du VBA sur plusieurs ordinateurs ou peut-on fusionner l'ensemble des feuilles "sources" des différents fichiers " Production 2022" de chaque ordinateur dans un fichier commun.

Merci et bonne journée
Hello,

Tu entres dans un sujet très compliqué, d'une certaine manière, avoir un seul fichier pour plusieurs utilisateurs est possible, par exemple avec Google Sheet ou Excel Online MAIS... Ces deux logiciels Web sont incompatibles avec les macros VBA !! C'est aussi par rapport à ça que désormais beaucoup de gens essaient d'éviter le VBA.

L'une des solutions pour ton cas serait de faire que chacun aie un fichier et après avoir un fichier central qui se mets à jour grâce à un VBA qui fait le lien avec d'autres fichiers. Dans certains cas, Power Query pourrait aussi résoudre ce problème mais il fonctionne seulement avec des tableaux structurés.

Malheureusement, je ne vais pas pouvoir t'aider avec le VBA, je voulais seulement te communiquer ses informations.

Cordialement.
 

bruno972

XLDnaute Junior
Hello,

Tu entres dans un sujet très compliqué, d'une certaine manière, avoir un seul fichier pour plusieurs utilisateurs est possible, par exemple avec Google Sheet ou Excel Online MAIS... Ces deux logiciels Web sont incompatibles avec les macros VBA !! C'est aussi par rapport à ça que désormais beaucoup de gens essaient d'éviter le VBA.

L'une des solutions pour ton cas serait de faire que chacun aie un fichier et après avoir un fichier central qui se mets à jour grâce à un VBA qui fait le lien avec d'autres fichiers. Dans certains cas, Power Query pourrait aussi résoudre ce problème mais il fonctionne seulement avec des tableaux structurés.

Malheureusement, je ne vais pas pouvoir t'aider avec le VBA, je voulais seulement te communiquer ses informations.

Cordialement.
Merci pour ta réponse
 

Discussions similaires

Réponses
0
Affichages
379

Statistiques des forums

Discussions
315 106
Messages
2 116 268
Membres
112 706
dernier inscrit
Pierre_98