Traitements des données sur BD aprés textbox formulaire en VBA

Fermé
lole07 Messages postés 2 Date d'inscription lundi 13 juin 2016 Statut Membre Dernière intervention 20 juin 2016 - 13 juin 2016 à 11:21
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 20 juin 2016 à 18:37
Bonjour,
Ceci est ma première question, jusqu'alors, je me suis débrouillé en vous lisant parfois et vous en remercie déjà.
Voila, j'ai un problème simple qui me ruine l’existence :
Pour mon travail, j'ai créer un pseudo logiciel sur excel 2007:
J'ai crée un formulaire en VBA, ou on renseigne des noms, et notamment des dates et chiffres. Ces données vont directement par macro sur une feuille 2 nommée base de données, tout va bien dans chaque case predefinie.
J'ai ensuite une troisième feuille du même classeur ou je souhaite trier ces données, notamment par des formules qui me calculent des taux de présences. Les calculs fonctionnent bien.
Tout marche finalement, SAUF :
Impossible de copier/coller les réelles valeurs dates de ma base de données vers ma 3eme feuille de calcul - Lorsque je copie/colle, tout s'inscrit, mais les calculs automatiques ne se font pas.(évidemment, les formats de cellules ne changent rien)
Si je retape au clavier par dessus en feuille 3, ca marche
Si je tape manuellement une date sur ma base de données, et copie/colle en feuille 3, ça marche aussi pour le calcul automatique.
J'ai bien compris que ma textbox en vba du formulaire, ou j’inscris tjrs des dates au bon format, ne doit transferer sur ma BD que du texte, et excel ne doit pas coder ces dates. Je ne vois pas comment passer des string en date en VBA, et où noter le code.
J'ai lu bcp de choses, essayé le cdate, j'ai regardé s'il existait autre chose que la textbox, du style la "données box" ou "date box", mais faut pas rêver.
J'ai plus de 500 lignes sur la BD, je prefererais pas retaper les chiffres ou dates, et j'ai besoin du formulaire pour entrer les donnes, c'est l'impasse.

Si quelqu'un a la solution, je lui en serai éternellement reconnaissant.
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
13 juin 2016 à 13:46
Bonjour

j'ai un problème simple qui me ruine l’existence


N'exagérons pas ! :-D
Voir
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-E
0
lole07 Messages postés 2 Date d'inscription lundi 13 juin 2016 Statut Membre Dernière intervention 20 juin 2016
20 juin 2016 à 17:22
Bonjour,
Desole pour le retard de réponse ...
J'avais deja lu le site proposé par michel m, que je remercie d'avance.
J'ai appliqué encore une fois a la lettre le processus pour forcer les dates sur un formulaire. Mon format date est bien correct sur le formulaire (celui- ci creé en VBA).
Mon problème ne vient pas de là -
Quand je copie les dates (entrées dans le formulaire vers ma base de données) sur une autre feuille excel avec des calculs (formules) preprogrammés, les calculs ne se font pas automatiquement - Il faut que je ressaisisse cette date manuellement pour que le calcul se fasse sur cette autre feuille -J'ai essayé la fonction actualiser, calculer la feuille maintenant, sur ma feuille avec les calculs prefaits, rien ne marche.
J'ai l'impression que quoi qu'on fasse en vba, les données envoyées vers la base de donnée sont forcement en format texte - J'avais lu comment procède excel.
Je suis donc bien embété, passer par un formulaire pour finalement retaper mes dates à la main sur une autre feuille de calcul, c'est bien dommage, surtout quand j'ai 1000 date a retaper.
Si jamais la meme chose est arrivé a qq'un qui a la solution, je suis preneur.
Merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 juin 2016 à 18:37
Bonjour
d'où l'intérêt de déclarer les variables....

un exemple
Private Sub CommandButton1_Click()
Dim quand As Date
quand = TextBox1
With Range("B2")
.Value = quand
.NumberFormat = "m/d/yyyy"
'vérif est date(donc nombre)
MsgBox IsDate(Range("B2"))
End With
end sub
0