Userform calcul
Salut, la je m'incline au premier survole et c'est dans le mile; je vais bien regarder la mise en page pour l'impression. Je te tiens au courant pour la suite. Je te remercie vraiment gmb pour ce travail.
Bonsoir gmb, c'est ce que je souhaitais. J'ai juste encore une demande ou deux stp. J'ai complété mon enquête et je suis à 29 combobox réparties sur 8 themes mais mon code affiche des erreurs si tu veux bien jeter un coup d'oeil merci. d'autres part est ce possible d'afficher tout le résultat sur une seule page (paysage)
J'ai un problème avec mon code :
Private Sub valider_Click()
With Sheets("Moyennes")
Label67.ForeColor = RGB(0, 0, 0)
If TextBox1 = "" Then
MsgBox "Vous devez donner un nom.", 16
Label67.ForeColor = RGB(255, 0, 0)
Exit Sub
End If
lgn = .Range("A" & Rows.Count).End(xlUp)(2).Row
.Range("A" & lgn) = TextBox1
.Range("B" & lgn) = TextBox2 * 1
If TextBox3 = "" Then End
.Range("C" & lgn) = TextBox3 * 1
If TextBox4 = "" Then End
.Range("D" & lgn) = TextBox4 * 1
If TextBox5 = "" Then End
.Range("E" & lgn) = TextBox5 * 1
If TextBox6 = "" Then End
.Range("F" & lgn) = TextBox6 * 1
If TextBox7 = "" Then End
.Range("G" & lgn) = TextBox7 * 1
If TextBox8 = "" Then End
.Range("H" & lgn) = TextBox8 * 1
If TextBox9 = "" Then End
.Range("I" & lgn) = TextBox9 * 1
End With
With Sheets("Traces")
lgn = Application.Max(3, .Range("C" & Rows.Count).End(xlUp)(2).Row)
.Range("A" & lgn) = Now
.Range("B" & lgn) = TextBox1
For i = 1 To 29
If i > 0 And i < 6 Then
.Cells(lgn, i + 2) = Val(Controls("ComboBox" & i))
ElseIf i > 5 And i < 9 Then
.Cells(lgn, i + 3) = Val(Controls("ComboBox" & i))
ElseIf i > 8 Then
.Cells(lgn, i + 4) = Val(Controls("ComboBox" & i))
End If
Next i
.Range("H" & lgn) = TextBox2 * 1
.Range("L" & lgn) = TextBox3 * 1
.Range("P" & lgn) = TextBox4 * 1
.Range("Q" & lgn) = TextBox5 * 1
.Range("W" & lgn) = TextBox6 * 1
.Range("Z" & lgn) = TextBox7 * 1
.Range("AE" & lgn) = TextBox8 * 1
.Range("AL" & lgn) = TextBox9 * 1
End With
cordialement
Un coup d'œil ne suffit pas, il m'en faut deux : un sur le code et un sur le fichier qui va avec.
Joins le à ton prochain message.
Bye !
Bonsoir , désolé je viens de le finir l'usf mais le code m'affiche des erreurs d'une part et puis je trouve que pour imprimer mon tableau "trace" c'est trop large pour une feuille A4 en paysage. Voile et merci d'avance
Bonjour, parfait mr gmb et encore merci de m'avoir aidé à comprendre ces premières bases, le cours vba est aussi d'une aide précieuse. Je débute tjrs et merci pour le partage. Je finis le tableau définitif et je partage aussi. Merci à toi et à l'équipe.
Bonjour à tous salut gmp, je reviens vers vous pour une autre modification que j'ai essayé de faire seul mais avec bcp de mal. Je m'explique. Dans mon formulaire, j'ai remplacé la textbox1 par une combobox30 liste déroulante avec des données à récupérer depuis la feuille "Inscriptions" que j'aurais rempli au préalable. Le trasvert des notes et des moyennes se fait comme avant sur les feuilles "trace" et "fiche" sans changement. De mon côté, je 'arrive à paramétrer cette combobox pour récupérer les nom et prénom de la feuille "inscription"
Merci de bien vouloir jeter un coup d'oeil
CDL
Bonjour
Voilà pour le TextBox devenu ComboBox.
Mais tu as fait d'autres modifications : essaie de corriger la macro en conséquence en t'inspirant de ce qui existe...
Bon courage !
Bye !
Bonsoir, je t'assure gmb que je fais bcp d'efforts pour résoudre mes lacunes;;;je passe des journées entières pour apprendre mais hélas, je bloque sur certaines choses. C'est pour cette raison que je me tourne vers vous sinon je laisserai tomber le projet. Mon problème est toujours le même, ma combobox30 affiche bel et bien les noms...mais quand je valide, par exemple le nom "essai5", les données ne s'affichent pas sur la bonne ligne du nom "essai5" mais sur la première ligne et ainsi de suite. D'autres part, si je valide le formulaire avec une textbox vide, il m'affiche une erreur et debogage du code. Ceci est au delà de mes compétences. Désolé de vous demander de l'aide.
Bonnes fêtes de fin d'année
Salut Gmb, l'erreur persiste dans la feuille "Inscriptions" la liste déroulante ne transfert pas au bon endroit, les codes concernés ou dans le module1 peut être, ou faut il que je réfléchisse à autre façon de faire cette feuille d'inscription ?désolé et merci encore :
Private Sub CommandButton2_Click()
With Sheets("Inscriptions")
Label68.ForeColor = RGB(0, 0, 0)
If ComboBox30.ListIndex = -1 Then
MsgBox "Vous devez donner un nom.", 16
Label68.ForeColor = RGB(255, 0, 0)
Exit Sub
End If
lgn = .Range("A" & Rows.Count).End(xlUp)(2).Row
.Range("A" & lgn) = ComboBox1
.Range("G" & lgn) = TextBox2 * 1
End With
flag = 1
For i = 2 To 9
Controls("TextBox" & i) = ""
Next i
For i = 1 To 29
Controls("ComboBox" & i).ListIndex = -1
Next i
ComboBox30 = ""
flag = 0
End Sub
Private Sub Label68_Click()
End Sub
Private Sub UserForm_Initialize()
For i = 1 To 29
For j = 1 To 5
Controls("ComboBox" & i).AddItem j
Next j
Next i
With Worksheets("Inscriptions")
ComboBox30.List() = .Range("A4:A" & .Range("A" & Rows.Count).End(xlUp).Row).Value
End With
End Sub
Nouvel essai.
Ce bug finira bien par céder !
Qui c'est qui commande ici ?
Bye !
Bonjour Gmb, chapeau c'est toi le chef, le code est plié ce coup-ci. merci encore
Bonjour
Version 14 :
Version 14
Private Sub CommandButton2_Click()
With Sheets("Inscriptions")
Label68.ForeColor = RGB(0, 0, 0)
If ComboBox30.ListIndex = -1 Then
MsgBox "Vous devez donner un nom.", 16
Label68.ForeColor = RGB(255, 0, 0)
Exit Sub
End If
lgn = .Range("A" & Rows.Count).End(xlUp)(2).Row
.Range("A" & lgn) = ComboBox1
.Range("G" & lgn) = TextBox2 * 1
If TextBox3 = "" Then End
.Range("H" & lgn) = TextBox3 * 1
If TextBox4 = "" Then End
.Range("I" & lgn) = TextBox4 * 1
If TextBox5 = "" Then End
.Range("J" & lgn) = TextBox5 * 1
If TextBox6 = "" Then End
.Range("K" & lgn) = TextBox6 * 1
If TextBox7 = "" Then End
.Range("L" & lgn) = TextBox7 * 1
If TextBox8 = "" Then End
.Range("M" & lgn) = TextBox8 * 1
If TextBox9 = "" Then End
.Range("N" & lgn) = TextBox9 * 1
End With
With Sheets("Traces")
Set f = Sheets("Fiche")
lgn = Application.Max(3, .Range("C" & Rows.Count).End(xlUp)(2).Row)
.Range("A" & lgn) = Now
.Range("B" & lgn) = ComboBox30
f.Range("C1") = ComboBox30
For i = 1 To 29
If i > 0 And i < 6 Then
.Cells(lgn, i + 2) = Val(Controls("ComboBox" & i))
f.Cells(6, i) = Val(Controls("ComboBox" & i))
ElseIf i > 5 And i < 9 Then
.Cells(lgn, i + 3) = Val(Controls("ComboBox" & i))
f.Cells(11, i - 5) = Val(Controls("ComboBox" & i))
ElseIf i > 8 And i < 12 Then
.Cells(lgn, i + 4) = Val(Controls("ComboBox" & i))
f.Cells(16, i - 8) = Val(Controls("ComboBox" & i))
ElseIf i = 12 Then
.Cells(lgn, i + 5) = Val(Controls("ComboBox" & i))
f.Cells(21, 1) = Val(Controls("ComboBox" & i))
ElseIf i > 12 And i < 18 Then
.Cells(lgn, i + 5) = Val(Controls("ComboBox" & i))
f.Cells(26, i - 12) = Val(Controls("ComboBox" & i))
ElseIf i > 17 And i < 20 Then
.Cells(lgn, i + 6) = Val(Controls("ComboBox" & i))
f.Cells(31, i - 17) = Val(Controls("ComboBox" & i))
ElseIf i > 19 And i < 24 Then
.Cells(lgn, i + 7) = Val(Controls("ComboBox" & i))
f.Cells(36, i - 19) = Val(Controls("ComboBox" & i))
ElseIf i > 23 And i < 30 Then
.Cells(lgn, i + 8) = Val(Controls("ComboBox" & i))
f.Cells(41, i - 23) = Val(Controls("ComboBox" & i))
End If
Next i
.Range("H" & lgn) = TextBox2 * 1
.Range("L" & lgn) = TextBox3 * 1
.Range("P" & lgn) = TextBox4 * 1
.Range("Q" & lgn) = TextBox5 * 1
.Range("W" & lgn) = TextBox6 * 1
.Range("Z" & lgn) = TextBox7 * 1
.Range("AE" & lgn) = TextBox8 * 1
.Range("AL" & lgn) = TextBox9 * 1
f.Range("F6") = TextBox2 * 1
f.Range("D11") = TextBox3 * 1
f.Range("D16") = TextBox4 * 1
f.Range("A21") = TextBox5 * 1
f.Range("F26") = TextBox6 * 1
f.Range("C31") = TextBox7 * 1
f.Range("E36") = TextBox8 * 1
f.Range("G41") = TextBox9 * 1
End With
flag = 1
For i = 2 To 9
Controls("TextBox" & i) = ""
Next i
For i = 1 To 29
Controls("ComboBox" & i).ListIndex = -1
Next i
TextBox4 = ""
flag = 0
End SubVersion 15 :
Version 15
Private Sub CommandButton2_Click()
With Sheets("Inscriptions")
Label68.ForeColor = RGB(0, 0, 0)
If ComboBox30.ListIndex = -1 Then
MsgBox "Vous devez donner un nom.", 16
Label68.ForeColor = RGB(255, 0, 0)
Exit Sub
End If
Set cell = .Range("A4:A" & .Range("A" & Rows.Count).End(xlUp).Row).Find(ComboBox30.Value, lookat:=xlWhole)
If Not cell Is Nothing Then
lgn = cell.Row
Else
lgn = .Range("A" & Rows.Count).End(xlUp)(2).Row
End If
.Range("A" & lgn) = ComboBox30
.Range("G" & lgn) = TextBox2 * 1
If TextBox3 = "" Then End
.Range("H" & lgn) = TextBox3 * 1
If TextBox4 = "" Then End
.Range("I" & lgn) = TextBox4 * 1
If TextBox5 = "" Then End
.Range("J" & lgn) = TextBox5 * 1
If TextBox6 = "" Then End
.Range("K" & lgn) = TextBox6 * 1
If TextBox7 = "" Then End
.Range("L" & lgn) = TextBox7 * 1
If TextBox8 = "" Then End
.Range("M" & lgn) = TextBox8 * 1
If TextBox9 = "" Then End
.Range("N" & lgn) = TextBox9 * 1
End With
With Sheets("Traces")
Set f = Sheets("Fiche")
lgn = Application.Max(3, .Range("C" & Rows.Count).End(xlUp)(2).Row)
.Range("A" & lgn) = Now
.Range("B" & lgn) = ComboBox30
f.Range("C1") = ComboBox30
For i = 1 To 29
If i > 0 And i < 6 Then
.Cells(lgn, i + 2) = Val(Controls("ComboBox" & i))
f.Cells(6, i) = Val(Controls("ComboBox" & i))
ElseIf i > 5 And i < 9 Then
.Cells(lgn, i + 3) = Val(Controls("ComboBox" & i))
f.Cells(11, i - 5) = Val(Controls("ComboBox" & i))
ElseIf i > 8 And i < 12 Then
.Cells(lgn, i + 4) = Val(Controls("ComboBox" & i))
f.Cells(16, i - 8) = Val(Controls("ComboBox" & i))
ElseIf i = 12 Then
.Cells(lgn, i + 5) = Val(Controls("ComboBox" & i))
f.Cells(21, 1) = Val(Controls("ComboBox" & i))
ElseIf i > 12 And i < 18 Then
.Cells(lgn, i + 5) = Val(Controls("ComboBox" & i))
f.Cells(26, i - 12) = Val(Controls("ComboBox" & i))
ElseIf i > 17 And i < 20 Then
.Cells(lgn, i + 6) = Val(Controls("ComboBox" & i))
f.Cells(31, i - 17) = Val(Controls("ComboBox" & i))
ElseIf i > 19 And i < 24 Then
.Cells(lgn, i + 7) = Val(Controls("ComboBox" & i))
f.Cells(36, i - 19) = Val(Controls("ComboBox" & i))
ElseIf i > 23 And i < 30 Then
.Cells(lgn, i + 8) = Val(Controls("ComboBox" & i))
f.Cells(41, i - 23) = Val(Controls("ComboBox" & i))
End If
Next i
.Range("H" & lgn) = TextBox2 * 1
.Range("L" & lgn) = TextBox3 * 1
.Range("P" & lgn) = TextBox4 * 1
.Range("Q" & lgn) = TextBox5 * 1
.Range("W" & lgn) = TextBox6 * 1
.Range("Z" & lgn) = TextBox7 * 1
.Range("AE" & lgn) = TextBox8 * 1
.Range("AL" & lgn) = TextBox9 * 1
f.Range("F6") = TextBox2 * 1
f.Range("D11") = TextBox3 * 1
f.Range("D16") = TextBox4 * 1
f.Range("A21") = TextBox5 * 1
f.Range("F26") = TextBox6 * 1
f.Range("C31") = TextBox7 * 1
f.Range("E36") = TextBox8 * 1
f.Range("G41") = TextBox9 * 1
End With
flag = 1
For i = 2 To 9
Controls("TextBox" & i) = ""
Next i
For i = 1 To 30
Controls("ComboBox" & i).ListIndex = -1
Next i
'TextBox4 = ""
flag = 0
MsgBox "Données enregistrées."
End SubSalut et excuse moi de te faire travailler encore, mais la je remarque le côté fou du vba....Dans mon classeur, j'ai ajouté une feuil1 avec 2 colonnes nom prénom. Dans ma feuille "inscriptions" les colonnes A et B sont remplies automatiquement par une formule (étirée) sur toute la colonne. D'ou le problème qui revient à la charge, quand je valide le formulaire les résultats sont décalées. Y'a de quoi s'arracher les cheveux.....Bmb je compte sur toi patron jusqu'au bout et merci
Bonjour et chapeau maître pour ce travail et surtout pour ta disponibilité.....
Salut gmb, je te sollicite encore pour ce sacré fichier, j'ai suivi tes conseils mais je ne suis pas encore au top. Je m'explique : j'ai protégé mes feuilles mdp"bouboul". J'ai rajouté 2 colonnes dans "Inscriptions" A pour les dates de saisie et la P pour des commentaires. Bien sur, j'ai fait de même dans le formulaire textbox pour pour la date et en bas pour le commentaires. Le problème c'est qu'il me fait des siennes et bug et sur bug. Quoi faire maître stp et merci d'avance.
