Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

simplification macro

  • Initiateur de la discussion Initiateur de la discussion philippe69
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

philippe69

Guest
bonjour le forum

je joins ci-dessous une petite macro qui gère qq textbox. Cette macro fonctionne bien, mais j'aimerais la simplifier par une boucle. Mais mes connaissances en vba étant encore sommaires, je sollicite donc votre aide.

Merci par avance
Philippe

Code:
Private Sub CommandButton1_Click()
If TextBox1.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox2.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox3.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox4.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox5.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox6.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox7.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox8.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox9.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox10.Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
ElseIf TextBox11.Value = '' Then
MsgBox ('Veuillez saisir toutes les informations demandées')
Exit Sub
Else
Sheets('Feuil3').Range('A1') = CDbl(TextBox1.Value)
Sheets('Feuil3').Range('A2') = CDbl(TextBox2.Value)
Sheets('Feuil3').Range('A3') = CDbl(TextBox3.Value)
Sheets('Feuil3').Range('A4') = CDbl(TextBox4.Value)
Sheets('Feuil3').Range('A5') = CDbl(TextBox5.Value)
Sheets('Feuil3').Range('A6') = TextBox6.Value
Sheets('Feuil3').Range('A7') = TextBox7.Value
Sheets('Feuil3').Range('A8') = TextBox8.Value
Sheets('Feuil3').Range('A9') = CDbl(TextBox9.Value)
Sheets('Feuil3').Range('A10') = CDbl(TextBox10.Value)
Sheets('Feuil3').Range('A11') = CDbl(TextBox11.Value)
MsgBox ('votre saisie a été prise en compte')
End If
End Sub
 
Bonsoir Philippe, bonsoir le forum,

Je te propose ce code :



Message édité par: Robert, à: 15/02/2006 19:40
 
bonsoir le forum, philippe69

Private Sub CommandButton1_Click()
for i = 1 to 11
If controls('TextBox' & i).Value = '' Then
MsgBox ('veuillez rentrer toutes les informations demandées')
Exit Sub
next
for i = 1 to 5
Sheets('Feuil3').Range('A' & i) = CDbl(controls('TextBox' & i).Value)
next
Sheets('Feuil3').Range('A6') = TextBox6.Value
Sheets('Feuil3').Range('A7') = TextBox7.Value
Sheets('Feuil3').Range('A8') = TextBox8.Value
Sheets('Feuil3').Range('A9') = CDbl(TextBox9.Value)
Sheets('Feuil3').Range('A10') = CDbl(TextBox10.Value)
Sheets('Feuil3').Range('A11') = CDbl(TextBox11.Value)
MsgBox ('votre saisie a été prise en compte')
End If
End Sub
 
Salut Philippe et Robert

Juste pour simplifier un peu plus 🙂


For X = 1 To 11
Select Case X
Case 1 To 5, 9 To 11
Sheets('Feuil3').Cells(I, 1).Value = CDbl(Me.Controls('TextBox' & I).Value)
Case 6 To 8
Sheets('Feuil3').Cells(I, 1).Value = Me.Controls('TextBox' & I).Value
End Select
Next X
End Sub
 
Bonsoir Philippe, Justine, Myta, bonsoir le forum,

Bien vu Myta, encore un truc que je découvre :
Case w to x, y to z...

Justine, Ho la gueule de la composition... Je la déclare pas à la SACEM celle-là...
 
bonsoir le fil.
philippe, je te presente mes excuses, je me suis un peu trop empressée a te repondre et je t'ai donné un code qui ne pouvait pas fonctionner.
mais j'ai vu que d'autre personne l'on remarqué et me l'on fait savoir avec 'ironie'.
je ferai attention dorenavant.
excuse moi encore.
justine
 
Bonsoir le fil, bonsoir le forum,

Hé Justine, je ne sais pas pourquoi, mais je me sens gêné pas rapport à ton post. Cette 'ironnie' c'est contre moi qu'elle était dirigée et le fait que tu la mette entre guillemets ça me donne l'impression que tu as mal pris la chose.

Comme tu disais : desolee robert, j'ai pas vu que tu coomposais , j'ai plaisanté sur ma composition...

Bref, je ne voulais absolument pas ironiser sur ton code, que je n'avais même pas analysé d'ailleurs.

Désolé de t'avoir froissé si c'est le cas.


Message édité par: Robert, à: 15/02/2006 20:41
 
je te pardonne robert, je pensais que tu te moquais de mon code, il manquait quelques elements pour completer.
tu sais, cela ne fait pas longtemps que je me suis lancee dans la macro, et j'avoue que j'aime ca, et je suis consciente que je suis loin d'avoir le niveau de certains.
je pensais que tu te moquais du code que j'avais concocté a ma maniere avec le peu que je connaissais.
soit, maintenant je connais avec la methode Case
robert, avec sincerité, tu es pardonné et meme que c'est moi qui dois me faire pardonner car apparament, on n'etait pas du tout sur la meme longueur d'onde. j'ai mal receptionné le message.
justine
 
Bonsoir le fil, bonsoir le forum,

Ha Justine, je suis rassuré. Tu sais, c'est pas la première fois qu'on se croise et j'ai déjà pu apprécier tes connaissances. Quant à mon niveau il est médiocre mais tout comme toi j'aime ça et grâce à ce forum, je m'améliore de jours en jours.

Au plaisir de te recroiser sur d'autres fils.
 
Bonsoir philippe69, Robert, Justine, Mytå, bonsoir à toutes et à tous 🙂

Moi j'aime bien jouer au jeu des plus courtes... celles qui sont les meilleures 😛 :


Il y a certainement moyen de faire encore plus court, mais pas pour moi 😉

EDITION : Mise en page

A+

Message édité par: Charly2, à: 15/02/2006 22:10

Message édité par: Charly2, à: 15/02/2006 22:14
 
Bonsoir le fil, Bonsoir Charly, bonsoir le forum,

Désolé Charly mais si je tape du numérique dans les 5 premieres TextBoxes, du texte dans les 6ème, 7ème et 8ème, puis du numérique dans les 9ème, 10ème et 11ème (comme l'indique Philippe), ton code plante. Je pense que cerner (1, 2, 3, 4, 5, 9, 10 et 11) avec MOD ça doit pas le faire.

Arf, en fait je suis bien content car ça faisait un moment que tu me grillait mes plans... Lol. Tiens tu vois Justine, là je me moque grave de sa gueule au père Charly... Mais rassure-toi, c'est pour de rire et surtout pour qu'il réagisse et nous ponde son 1000ème post qui l'obligera à faire un barbatruc...


Message édité par: Robert, à: 15/02/2006 22:38
 
re Robert,

Je t'attendais sur ce coup-là 🙂 🙂 🙂

Le 1000ème, je l'ai posté pour 2 anniversaires et une fête !!!

Quant à mon Mod, qu'est-ce qu'il a ??? Il est pô bien mon Mod à moi ?

1 Mod 9 ‹ 6 =› True
2 Mod 9 ‹ 6 =› True
3 Mod 9 ‹ 6 =› True
4 Mod 9 ‹ 6 =› True
5 Mod 9 ‹ 6 =› True
6 Mod 9 ‹ 6 =› False
7 Mod 9 ‹ 6 =› False
8 Mod 9 ‹ 6 =› False
9 Mod 9 ‹ 6 =› True
10 Mod 9 ‹ 6 =› True
11 Mod 9 ‹ 6 =› True

On peut pas faire plus court comme explication 😛 . Pis d'abord, y'a plus court ! Je le sais de source sûre, et Hervé, y sait de quoi y parle. Hein ? mais non j'l'ai pô dit !!!

Sinon je suis sur mon barbatruc...

A+ 😉

Message édité par: Charly2, à: 15/02/2006 22:52
 
Bonsoir le fil, bonsoir le forum,

Charly désolé mais je ne comprends pas pourquoi ça ne marche pas. Tu as raison, t'es un mec à la Mod... Ou plutôt ton Mod est nickel mais alors explique-moi pourquoi ça plante quand dans la pièce jointe je remplie les champs bleu de numérique et les blancs de texte. J'en perds mon latin, Bordelum de merdas....
[file name=Charly.zip size=11241]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Charly.zip[/file]
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
230
Réponses
2
Affichages
589
Réponses
2
Affichages
771
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…