VBA formulaire exportation en texte au lieu de numérique
Bonjour à tous
J’ai un problème dans deux formulaires de saisie, lors de mon exportation les champs qui comportent : les Heures - Nb palette (dans le formulaire Navette intersites) et Heure - Nb palette – Nbpersonne – Temps (dans le formulaire Taches occasionnelles) sont en format texte et lors de mon enregistrement vers la base de données ils restent sur ce même format ce qui ne permet pas de faire des calculs.
Il faudrait qu’ils changent de format en numérique mais je ne maîtrise pas assez VBA pour le faire.
Apres mes recherches sur le net il faudrait mettre une variable lors de l'enregistrement dans chaque colonne mais la
Il y a un test dans un tableau croisé dynamique sur la feuille base de données et cela mer…:? pour les valeurs et le temps qui m’affiche 00 :00
Avez-vous une solution.
Merci à tous
Bonsoir,
pour les numériques essayez ceci : CDbl(txtNbpalette1)
pour les dates : CDate(txtNbpalette1)
Sous VBA, sélectionnez le texte CDate puis faites [F1] pour afficher l'aide correspondant aux fonction de détermination de type de données.
@ bientôt
LouReeD
bonsoir,
edit : rebonsoir LouReed,
je te propose les modifications suivantes dans ce code
'*******************************************************
'Procedure permetant d'ajouter des enregistrements dans la base
'la base de données
'*******************************************************
Private Sub btnAjout_Click()
Sheets("Base de données").Activate
Range("A1").Select
Selection.End(xlDown).Select 'On se positionne sur la ligne non vide
Selection.Offset(1, 0).Select 'On se décale d'une ligne vers le bas
If MsgBox("Voulez vous faire l'enregistrement dans la base de données ?", vbYesNo, "Demande de confirmation") = vbYes Then
ActiveCell = TxtDate.Value 'A partir de cette cellule on colle le champ
ActiveCell.Offset(0, 1).Value = TimeValue(txtHeure & ":00:00") 'Puis on se décale de 1 etc
ActiveCell.Offset(0, 2).Value = txtCategorie
ActiveCell.Offset(0, 3).Value = cboDescription
ActiveCell.Offset(0, 4).Value = txtNbpalette + 0
ActiveCell.Offset(0, 7).Value = cboUtilisateur
txtCategorie = ""
cboDescription = ""
cboUtilisateur = ""
TxtDate = ""
txtHeure = ""
txtNbpalette = ""
End If
End Sub
Bonjour LouReeD et h2so4
Merci beaucoup pour votre aide j'y arrive enfin sauf pour un !!
Dans la textbox je rentre ce format 130 qui me change en 01:30 avec ce code:
Private Sub txtTemps1_AfterUpdate()
txtTemps1 = Format(txtTemps1.Value, "0#:##")
End Sub
et dans le commandbutton j'ai essayer de mettre et cela ne marche pas.....
Private Sub btnAjout_Click()
Sheets("Base de données").Activate
Range("A1").Select
Selection.End(xlDown).Select 'On se positionne sur la ligne non vide
Selection.Offset(1, 0).Select 'On se décale d'une ligne vers le bas
If MsgBox("Voulez vous faire l'enregistrement dans la base de données ?", vbYesNo, "Demande de confirmation") = vbYes Then
ActiveCell = TxtDate1.Value 'A partir de cette cellule on colle le champ
ActiveCell.Offset(0, 1).Value = txtHeure1 + 0 'Puis on se décale de 1 etc
ActiveCell.Offset(0, 2).Value = txtCategorie1
ActiveCell.Offset(0, 3).Value = cboDescription1
ActiveCell.Offset(0, 4).Value = txtNbpalette1 + 0
ActiveCell.Offset(0, 5).Value = CDate(txtTemps1) 'CELUI LA JE BLOQUE
ActiveCell.Offset(0, 6).Value = txtNbpersonne1 + 0
ActiveCell.Offset(0, 7).Value = cboUtilisateur1
End If
End Sub
Merci.
Bonjour,
essaie ceci
'******************************************
'Procédure Enregistrement formulaire dans la base de données
'******************************************
Private Sub btnAjout_Click()
Sheets("Base de données").Activate
Range("A1").Select
Selection.End(xlDown).Select 'On se positionne sur la ligne non vide
Selection.Offset(1, 0).Select 'On se décale d'une ligne vers le bas
If MsgBox("Voulez vous faire l'enregistrement dans la base de données ?", vbYesNo, "Demande de confirmation") = vbYes Then
ActiveCell = DateValue(TxtDate1) 'A partir de cette cellule on colle le champ
ActiveCell.Offset(0, 1).Value = txtHeure1 + 0 'Puis on se décale de 1 etc
ActiveCell.Offset(0, 2).Value = txtCategorie1
ActiveCell.Offset(0, 3).Value = cboDescription1
ActiveCell.Offset(0, 4).Value = txtNbpalette1 + 0
ActiveCell.Offset(0, 5).Value = TimeValue(txtTemps1)
ActiveCell.Offset(0, 6).Value = txtNbpersonne1 + 0
ActiveCell.Offset(0, 7).Value = cboUtilisateur1
'txtCategorie1 = ""
cboDescription1 = ""
cboUtilisateur1 = ""
'TxtDate1 = ""
txtHeure1 = ""
txtNbpalette1 = ""
txtNbpersonne1 = ""
txtTemps1 = ""
Dim MaDate As Date
MaDate = Now()
MaCategorie = ZREA
TxtDate1.Value = Format(MaDate, "DD/MM/YYYY")
txtCategorie1.Value = "DIVERS"
End If
End Sub
Re.
Merci à vous 2 "LouReeD et h2so4"
Bonne journée
Bonsoir,
merci des remerciements, mais je n'y suis pas pour grand chose !
@ bientôt
LouReeD