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.
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()
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).
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).
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()
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.
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 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.
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.
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.