Apprentissage connaissances VBA

Bonjour,
Je sollicite régulièrement le forum, j'ai souvent des réponses à mes demandes mais les retours ne sont pas évidents à intégrer dans mes fichiers sources.
Il est plus que temps que je vole de mes propres ailes ( cours tuto Excel-pratique + programmation VBA excel pour les nuls + forum).
Mes connaissances VBA sont sur une échelle de 0 à 10 je dirais 2, c'est-à-dire de copier des bouts de codes ... et d'aller Emm...! les passionnés avec mes usines à gaz sur le forum.

Souvent mes demandes portent sur : 1 formulaire, 1 tableau de données liées au formulaire et récupérer les données pour mettre dans un tableau afin dans tirées des TcD et graphiques.

Ma demande serait de réaliser un userform pour le formulaire avec simplement 3 champs (toto1,toto2,toto3) avec un bouton de validation qui renvoie les données dans la feuille2 dans un tableau de 3 colonnes (toto1,toto2,toto3) disons que toto1 représente 1 date, toto2 un nom et toto3 un chiffre.

Puis dans la feuille3 récupérer les données du tableau que toto1 et toto3 afin dans tirer des TcD ou/et graphique.

Si je comprend et j'arrive à faire cela seul, cela va me permettre de gérer d'autres situations de gestion du quotidien. (comptes, entretiens auto,...)

Merci,

Bonsoir Esteban, le forum,

Un début d’exemple. Tous les contrôles ne sont pas effectués.

Cordialement,

Bernard

14esteban.xlsm (46.94 Ko)

Bonsoir Bernard,

Merci pour le retour, cela va me servir de modèle et m'aider à progresser pour les différentes situations de gestion de données...

Cordialement,

Esteban

Bonsoir,

Pour restituer la date correcte en Feuil2.

Cells(xdlgn, 1) = CDate(TextBox1.Value)

Cdlt.

Bonsoir,

merci pour l'info, je regarderais de plus près car la je découvre le fichier de Bernard et pas trouvé pour l'instant cette ligne de code...

Bonsoir Esteban, Jean-Eric, le forum,

Jean-Eric : Pour plus de sécurité, il est préférable d’utiliser cette méthode :

Cells(xdlgn, 1) = CDate(TextBox1.Value)

Si le format de la date du TextBox est identique au format de la colonne (jj/mm/aaaa), on peut conserver :

.Cells(xdlgn, 1) = TextBox1.Value

Test effectué dans le fichier joint. On peut également envisager, la saisie de la date, en décomposant, le jour, le mois et l’année, ou passer par un calendrier (ex : DatePicker, etc…).

Cordialement,

Bernard

Bonjour,

Personnellement je vais pas écumer tous les forums pour répondre à ce sujet !

Bonjour à tous,

Si le format de la date du TextBox est identique au format de la colonne (jj/mm/aaaa), on peut conserver :

.Cells(xdlgn, 1) = TextBox1.Value

Test effectué dans le fichier joint.

Pas vraiment.
Si je saisi 02/03/2021 j'obtiens 03/02/2021 dans la cellule.
Si je saisi 29/02/2021, cette date erronée se met en texte dans la cellule.

Cdate() permet d'obtenir la date correcte sans inversion jour/mois.
Génère aussi une erreur (à gérer) en cas de date erronée.

Et pour mettre ceinture et bretelles pour le nombre, je mettrais .Cells(xdlgn, 3) = CDbl(Replace(TextBox3.Value, ",", "."))
Replace() pour avoir le bon format quelque soit le séparateur décimal du système et celui saisi, et CDbl() pour s'assurer que c'est bien un numérique valide (erreur à gérer)
eric

Cdbl utilise les paramètres régionaux qui selon les pays n'est pas forcément la virgule !

Val utilise systematiquement le point, à tous prendre je choisis Val!

Bonjour à tous,

Mon post initial avait pour but d'avoir des retours avec des exemples simples la on rentre dans des détails ou je suis à des années lumières ...

Bonjour,

tu peux comprendre comprendre que si en saisissant le 02/03 tu obtiens le 03/02, ça va poser des problèmes.
Ce n'est pas un détail, tu es bien obligé de te pencher dessus.

Cdbl utilise les paramètres régionaux qui selon les pays n'est pas forcément la virgule !

Val utilise systematiquement le point, à tous prendre je choisis Val!

Tu as raison. Donc de préférence pour un numérique : .Cells(xdlgn, 3) = Val(Replace(TextBox3.Value, ",", "."))

eric

Rechercher des sujets similaires à "apprentissage connaissances vba"