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

XL 2016 VBA format date

Damien0507

XLDnaute Nouveau
Bonjour,

J'aurais besoins de vos lumières pour un petit truc qui me chagrine:

Je copie des infos d'une listbox dans une feuille excel.
Soucis: ma date se transforme en texte...... alors qu'à la base elle est bien en Date

Pouvez-vous m'aider SVP?

Merci d'avance.

Damien.

Ci-dessous la macro:


Private Sub CommandButtonEXP_Click()

Dim i As Integer
Dim x As Integer

For i = 0 To ListBox1.ListCount - 1
x = Range("a500000").End(xlUp).Row + 1



If Me.ListBox1.Selected(i) = True Then

Sheets("Planning").Cells(x, 3) = ListBox1.List(i, 0)
Sheets("Planning").Cells(x, 4) = ListBox1.List(i, 1)
Sheets("Planning").Cells(x, 5) = ListBox1.List(i, 2)
Sheets("Planning").Cells(x, 6) = ListBox1.List(i, 3)
Sheets("Planning").Cells(x, 7) = ListBox1.List(i, 4)
Sheets("Planning").Cells(x, 8) = ListBox1.List(i, 5)
Sheets("Planning").Cells(x, 9) = ListBox1.List(i, 6)
Sheets("Planning").Cells(x, 10) = ListBox1.List(i, 7)
Sheets("Planning").Cells(x, 11) = ListBox1.List(i, 8)
Sheets("Planning").Cells(x, 12) = ListBox1.List(i, 9)
Sheets("Planning").Cells(x, 13) = ListBox1.List(i, 10)


End If
Next i


End Sub
 

Damien0507

XLDnaute Nouveau
Bonjour vgendron,

Merci pour votre réactivité.
Mais ça ne fonctionne pas....
la date est bien du style dd/mm/yyyy mais s'affiche à gauche de la cellule comme quand c'est au format texte.
Quand je vais dans la cellule déstinatrice, je ne vois rien de spécial par contre si je mets à la fin de la chaîne de caractère et que je fais suppr et entrée là ça fonctionne.

J'en perds mon latin.....


J'ai même essayé dans la formule de mettre dd/mm/yy... ça ne marche pas et il n'y a pas d'espace avant le guillemet
 

Damien0507

XLDnaute Nouveau
Fichier en PJ

fonctionnement:
feuil2
cliquer bouton planing
sélectionner date / zone / équipe (pour le moment j'ai juste fait le 14/04/2023)
Sélectionner les lignes de la liste box
Faire modifier date et horaire
Inscrire juste une date pour le test ce sera suffisant
Appuyer sur modifier
Cliquer sur exporter
Fermer la fenêtre
aller dans l'onglet planing pour voir la modif
 

Pièces jointes

  • TEST.xlsm
    226.1 KB · Affichages: 6

vgendron

XLDnaute Barbatruc
La fonction format renvoie un texte....
C,est le format de cellule qu,il faut forcer
sheets("planning") .cells(x ,y) .numberformat="dd/mmmm/yyyy"
Hello @Modeste geedee

Mais OUI mais bien sur !!
incroyable.. tu viens d'éclaircir un pb récurrent que j'avais sans jamais comprendre pourquoi il fallait que je revalide le format des cellules après...
et du coup. je me rends compte aussi pourquoi la fonction "format" devient "Texte" en VBA....
Ce genre de détail qui change la vie
 

vgendron

XLDnaute Barbatruc
Me revoici

1) j'ai transformé la feuille de données avec des tables structurées et modifié le code en conséquence

pour le pb qui t'occupe.. c'est bien une date (mainteannt) qui se met)
PAR CONTRE.. ton code ne fait pas ce que tu penses.. à savoir modifer une ligne existante..
non. il AJOUTE une nouvelle ligne avec les nouvelles données
la ligne que tu penses avoir modifié existe toujours..
 

Pièces jointes

  • TEST (2).xlsm
    114.4 KB · Affichages: 5

Damien0507

XLDnaute Nouveau
merci pour ton aide.
et oui, je savais que mon bouton modifier ajoutait une ligne et ne remplaçait pas ce que je modifiait. Mais je m'en accomode car je dois faire le point chaque jour sur le personnel. Mon appellation de bouton doit être modifié.

Je regarde vos modifs et je reviens vers vous.

Merci beaucoup pour le temps que vous m'avez accordé.
 

vgendron

XLDnaute Barbatruc
je te remets une nouvelle version dans laquelle, j'ai nettoyé les plages nommées

et pour la "modification" qui n'en est pas une: je te propose un code qui lui modifie effectivement la ligne
si tu veux rester avec l'ajout de ligne: il suffit de commenter ma partie et decommenter la tienne
j'ai mis des commentaires

et j'ai corrigé le chargement d'un combo qui ne se faisait pas
PS: tu as sans doute déjà vu: j'ai renommé tout ou partie des controles
les combo sont chargés à l'initialize des userforms ==> le rowsource dans les propriétés est vide
 

Pièces jointes

  • TEST Damien.xlsm
    115.7 KB · Affichages: 8

Damien0507

XLDnaute Nouveau
Bonjour Vgendron,

Merci beaucoup pour le temps passé sur mon sujet et il est vrai que mon fichier est plus fluide... AHHH ces débutants en VBA qu'est ce qu'ils sont pénibles...
Désolé pour ma réponse tardive mais les aléas du boulot font que parfois on ne peut se poser pour analyser les sujets que l'on traite en OFF.
J'ai adopté l'avant dernier fichier que vous avez retravaillé, correspondant plus à ce que mes équipes recherchent.

Par contre, étant codeur très amateur sous VBA mais ayant un fort attrait pour cette pratique, j'ai encore quelques questions:

Dans l'onglet "Calendrier", j'ai essayé de faire un rechercheV pour que pour chaque jour pour chaque personne soit mentionné sa présence ou non suivant ce qui est rempli dans l'onglet Planning. Si je saisi la formule dans le tableau, elle est scratché dès que je lance la macro, jusque là normal. Par contre dès que je rentre la formule dans VBA je n'ai que la première ligne qui est renseignée et non pas l'intégralté des personnes.

En tout cas merci pour tout ce que vous avez déjà déverminé pour moi.
Vraiment TOP.

Cordialement.

Damien.
 

Discussions similaires

Réponses
4
Affichages
417
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…