Faire la somme des valeurs qui sont renvoyées par un userform

Bonjour,

J'ai un petit problème.

j'ai créé un userform dans lequel sont saisies des données en chiffre. Elles sont renvoyées sur ma feuille excel. jusque là pas de problème.

En revanche impossible de faire la somme de la colonne. Le résultat est toujours 0.

Merci pour votre aide.

Bonjour

Un exemple de ton fichier serait utile pour résoudre ton problème

Crdlt

Bonjour,

voici le code de mon userforme (fichier trop volumineux ) :

Private Sub DTPicker_debut_change()
'envoyer la valeur dans une cellule spécifique
Sheets("BD").range("C3") = DTPicker_debut
End Sub

Private Sub DTPicker_fin_change()
'envoyer la valeur dans une cellule spécifique
Sheets("BD").range("d3") = DTPicker_fin
Me.TextBox_temps = Sheets("BD").range("E3")
TextBox_temps.Value = Hour(Feuil1.range("E3").Value) & ":0" & Minute(Feuil1.range("E3").Value) & ":0" & Second(Feuil1.range("E3").Value)
End Sub

Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)

End Sub

Private Sub TextBox_temps_Change()
TextBox_temps.Enabled = False
End Sub

Private Sub UserForm_initialize()
'Création d'une ligne déroulante via une base de donnée
Set ws = Sheets("BD")
With Me.ComboBox_poste
For J = 2 To ws.range("B" & Rows.Count).End(xlUp).Row
.AddItem ws.range("B" & J)
Next J
End With

Set ws = Sheets("BD")
With Me.ComboBox_coman
For J = 2 To ws.range("A" & Rows.Count).End(xlUp).Row
.AddItem ws.range("A" & J)
Next J
End With
DTPicker_date = Now()

With Application
.WindowState = xlMaximized
Width = .Width
Height = .Height
End With
End Sub

Private Sub CommandButton_MNV_Click()
Dim ligne As Integer
'message automatique si les champs ne sont pas remplis
If DTPicker_date = "" Or ComboBox_coman = "" Or ComboBox_poste = "" Or TextBox_MNV = "" Or DTPicker_debut = "" Or DTPicker_fin = "" Or TextBox_refoulement = "" Then
MsgBox ("Toutes les informations ne sont pas remplis")
Exit Sub
End If

'Message automatique pour confirmation avant validation et Saisie des manoeuvres dans la base de donnée
If MsgBox("Confirmez-vous l'enregistrement du programme de manoeuvres ?", vbYesNo, "confirmation") = vbYes Then

ligne = Sheets("MANOEUVRES").[A5].End(xlDown).Row + 1

Sheets("MANOEUVRES").range("a" & ligne) = CDate(DTPicker_date)
Sheets("MANOEUVRES").range("b" & ligne) = ComboBox_coman
Sheets("MANOEUVRES").range("c" & ligne) = ComboBox_poste
Sheets("MANOEUVRES").range("d" & ligne) = TextBox_MNV
Sheets("MANOEUVRES").range("e" & ligne) = CDate(DTPicker_debut)
Sheets("MANOEUVRES").range("f" & ligne) = CDate(DTPicker_fin)
Sheets("MANOEUVRES").range("g" & ligne) = TextBox_temps


End If
Unload Me
'Message pour enregistre un deuxième programme de MNV
If MsgBox("Souhaitez-vous enregistrer un autre programme de manoeuvres?", vbYesNo, "confirmation") = vbYes Then
UserForm1.Show
End If

End Sub

Private Sub CommandButton_MNV2_Click()
'Retour sans action quitter le formulaire
Unload Me
End Sub

Ci - dessous le tableau correspondant qui se trouve sur la feuille "manoeuvres" :

C'est la somme de la colonne "Nombre de manoeuvre" qui ne se fait pas.

ENREGISTREMENT DES PROGRAMMES DES MANŒUVRES
DATECOMANPOSTENOMBRE DE MANŒUVREHEURE DEBUTHEURE FINTEMPS DE MANŒUVRESSemaine Mois
01/02/22LAETITIA ROUANETAPRES-MIDI114:10:0014:50:0000:40:006Février
01/02/22BENZINE KAOININUIT722:30:0001:45:0003:15:006Février
01/02/22LAETITIA ROUANETAPRES-MIDI315:00:0017:32:0002:32:006Février
01/02/22LAETITIA ROUANETAPRES-MIDI519:00:0022:00:003:00:006Février
02/02/22REMY RUIZMATIN 911:45:0018:00:0006:15:006Février
02/02/22LAETITIA ROUANETAPRES-MIDI314:00:0015:30:0001:30:006Février
02/02/22LAETITIA ROUANETAPRES-MIDI316:30:0018:00:0001:30:006Février
02/02/22LAETITIA ROUANETAPRES-MIDI316:30:0018:00:0001:30:006Février
02/02/22BENZINE KAOININUIT923:10:0003:25:0004:15:006Février

Merci pour ton aide

Bonjour,

voici le code de mon userforme (fichier trop volumineux ) :

Private Sub DTPicker_debut_change()
'envoyer la valeur dans une cellule spécifique
Sheets("BD").range("C3") = DTPicker_debut
End Sub

Private Sub DTPicker_fin_change()
'envoyer la valeur dans une cellule spécifique
Sheets("BD").range("d3") = DTPicker_fin
Me.TextBox_temps = Sheets("BD").range("E3")
TextBox_temps.Value = Hour(Feuil1.range("E3").Value) & ":0" & Minute(Feuil1.range("E3").Value) & ":0" & Second(Feuil1.range("E3").Value)
End Sub

Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)

End Sub

Private Sub TextBox_temps_Change()
TextBox_temps.Enabled = False
End Sub

Private Sub UserForm_initialize()
'Création d'une ligne déroulante via une base de donnée
Set ws = Sheets("BD")
With Me.ComboBox_poste
For J = 2 To ws.range("B" & Rows.Count).End(xlUp).Row
.AddItem ws.range("B" & J)
Next J
End With

Set ws = Sheets("BD")
With Me.ComboBox_coman
For J = 2 To ws.range("A" & Rows.Count).End(xlUp).Row
.AddItem ws.range("A" & J)
Next J
End With
DTPicker_date = Now()

With Application
.WindowState = xlMaximized
Width = .Width
Height = .Height
End With
End Sub

Private Sub CommandButton_MNV_Click()
Dim ligne As Integer
'message automatique si les champs ne sont pas remplis
If DTPicker_date = "" Or ComboBox_coman = "" Or ComboBox_poste = "" Or TextBox_MNV = "" Or DTPicker_debut = "" Or DTPicker_fin = "" Or TextBox_refoulement = "" Then
MsgBox ("Toutes les informations ne sont pas remplis")
Exit Sub
End If

'Message automatique pour confirmation avant validation et Saisie des manoeuvres dans la base de donnée
If MsgBox("Confirmez-vous l'enregistrement du programme de manoeuvres ?", vbYesNo, "confirmation") = vbYes Then

ligne = Sheets("MANOEUVRES").[A5].End(xlDown).Row + 1

Sheets("MANOEUVRES").range("a" & ligne) = CDate(DTPicker_date)
Sheets("MANOEUVRES").range("b" & ligne) = ComboBox_coman
Sheets("MANOEUVRES").range("c" & ligne) = ComboBox_poste
Sheets("MANOEUVRES").range("d" & ligne) = TextBox_MNV
Sheets("MANOEUVRES").range("e" & ligne) = CDate(DTPicker_debut)
Sheets("MANOEUVRES").range("f" & ligne) = CDate(DTPicker_fin)
Sheets("MANOEUVRES").range("g" & ligne) = TextBox_temps


End If
Unload Me
'Message pour enregistre un deuxième programme de MNV
If MsgBox("Souhaitez-vous enregistrer un autre programme de manoeuvres?", vbYesNo, "confirmation") = vbYes Then
UserForm1.Show
End If

End Sub

Private Sub CommandButton_MNV2_Click()
'Retour sans action quitter le formulaire
Unload Me
End Sub

Ci - dessous le tableau correspondant qui se trouve sur la feuille "manoeuvres" :

C'est la somme de la colonne "Nombre de manoeuvre" qui ne se fait pas.

ENREGISTREMENT DES PROGRAMMES DES MANŒUVRES
DATECOMANPOSTENOMBRE DE MANŒUVREHEURE DEBUTHEURE FINTEMPS DE MANŒUVRESSemaineMois
01/02/22LAETITIA ROUANETAPRES-MIDI114:10:0014:50:0000:40:006Février
01/02/22BENZINE KAOININUIT722:30:0001:45:0003:15:006Février
01/02/22LAETITIA ROUANETAPRES-MIDI315:00:0017:32:0002:32:006Février
01/02/22LAETITIA ROUANETAPRES-MIDI519:00:0022:00:003:00:006Février
02/02/22REMY RUIZMATIN911:45:0018:00:0006:15:006Février
02/02/22LAETITIA ROUANETAPRES-MIDI314:00:0015:30:0001:30:006Février
02/02/22LAETITIA ROUANETAPRES-MIDI316:30:0018:00:0001:30:006Février
02/02/22LAETITIA ROUANETAPRES-MIDI316:30:0018:00:0001:30:006Février
02/02/22BENZINE KAOININUIT923:10:0003:25:0004:15:006Février

Merci pour ton aide

Bonjour,

Les TextBox comme leur nom l'indique ne contiennent que du texte (même si leur contenu à une forte odeur de nombre...)

Il faut donc comme pour les dates bien penser à en convertir le contenu en nombre :

Sheets("MANOEUVRES").range("d" & ligne) = CInt(TextBox_MNV)

A l'avenir pour passer du code VBA sur ce forum presser l'outil </> avant de coller le code

A+

Rechercher des sujets similaires à "somme valeurs qui renvoyees userform"