CheckBox, TextBox et placement

Marboi

XLDnaute Occasionnel
Bonjour à vous tous du Forum,
J'ai encore un problème avec le VBA (je ne sais pas si j'y arriverai un jour !).
Une UserForm devrait me permettre de simplifier des saisies par des TextBox (ça j'y arrive) et des CheckBox et là je n'y arrive pas.
Lorsqu'une checkBox est cochée, elle devrait se placer dans une plage de cellule avec les infos qui vont avec, texte, quantité, prix et en plus 2 TextBox sont liées à des CheckBox pour des infos complémentaires.
J'ai beau chercher sur le forum mais je n'ai rien trouvé qui correspond à mon problème.
Si vous pouviez m'aider une nouvelle fois.
Comme il est souvent dit sur le forum, un fichier vaut miaux que du bla bla.
Merci par avance.
 

Marboi

XLDnaute Occasionnel
Ah là là, les espaces... [file name=Projet_USF_Marc.zip size=16646]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Projet_USF_Marc.zip[/file]
 

Pièces jointes

  • Projet_USF_Marc.zip
    16.3 KB · Affichages: 55

Marboi

XLDnaute Occasionnel
Bonsoir le forum,
Bon, j'ai avancé pas mal, avec beaucoup de recherches, des incompréhensions, des essais car je n'ai rien trouvé d'identique.
Vous les pros du VBA, allez vous tirer les cheveux pour mon 'style' très perso de débutant dans la rédaction des formules :eek: , mais bof, ça fonctionne!
Bon les textbox et les cases à cocher se mettent immédiatement sur la feuille lorsque les infos sont remplies ou cochées, c'est pas beau à l'oeil mais en même temps c'est pas très génant puisque ça doit apparaître sur ladite feuille.
J'ai un problème de choix pour la checkbox1 et la 2 car si la 1 est cochée la deux ne devrait pas pouvoir l'être et vice versa.
Je n'arrive pas non plu à 'poser' la valeur de(s) la checkbox sans lui(leur)donner une cellule bien précise dans la feuille ; j'aurai préféré que ce soit à la suite des coches faites dans la plage B21:M28. En fait si toutes les checkbox ne sont pas cochées (et c'est bien souvent le cas), il y a des lignes vides dans la feuille mémoire.
Si vous avez une idée et un peu de temps, merci de vous penchez sur mon 'cas'.
Voici mon 'chef d'oeuvre' [file name=Projet_USF_Marc_20060525194332.zip size=21451]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Projet_USF_Marc_20060525194332.zip[/file]
 

Pièces jointes

  • Projet_USF_Marc_20060525194332.zip
    20.9 KB · Affichages: 38

Marboi

XLDnaute Occasionnel
:) Bonsoir à tous,
Je me suis rendu compte, à force de recherches, d'essais comme je le disai plus haut (ça fait quand même 4 jours que je suis dessus !...)que j'avais monté une usine à gaz. Grâce aux tutos de @+Thierry et aux infos qu'il a données ainsi que d'autres, d'infos glanner par ci, par là, j'ai pu alléger mon code.
Je n'arrive toujours pas à sélectionner plusieurs cellules en une seule fois avec les checkbox et les coller dans une ligne (j'ai des cellules fusionnées, que j'ai 'défusionnées' (pour centrer sur plusieurs colonnes) par rapport à un débat sur le site, mais ça n'y a rien changé) ; bon c'est pas grave puisque je n'ai jamais que trois infos à prendre, libellé, quantité et montant. Je n'arrive toujours pas non plus à 'obliger' que les TextBox Nom, date, N°, Lieu, soient impérativement remplies avant la validation, je n'arrive toujours pas, non plu, à coller les infos cochées par les CheckBox dans les cellules B21 à M28 dans la 1ère ligne vide, mais je suis fier de moi !... Ça fonctionne, pas comme je voudrai mais comme je suis loin de maîtriser le VBA, je trouve que c'est déjà bien. A tout hasard, je joins à nouveau mon fichier au cas où !...
Bonne soirée à vous tous et merci de tou ce que vous faites. [file name=Projet_USF_Marc_20060526181920.zip size=25370]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Projet_USF_Marc_20060526181920.zip[/file]
 

Pièces jointes

  • Projet_USF_Marc_20060526181920.zip
    24.8 KB · Affichages: 42

MichelXld

XLDnaute Barbatruc
bonsoir

je n'ai pas compris ton soucis de Checkbox , mais tu peux deja tester cette modification pour controler si les 4 premiers TextBoxs sont bien remplis
(je les ai renommés dans ton classeur)


Private Sub CommandButton1_Click()
Dim i As Byte

For i = 1 To 4 'boucle sur les TextBox (Textbox1 , Textbox2 ...Textbox4)
If Controls('TextBox' & i).Value = '' Then
MsgBox 'Un champ n'est pas rempli'
Exit Sub 'sort de la procedure si un textbox n'est pas rempli
End If
Next i

'remplissage des cellules si tout est ok
Sheets('Mémoire').Range('E17') = TextBox1.Value
Sheets('Mémoire').Range('D18') = TextBox2.Value
Sheets('Mémoire').Range('G18') = TextBox3.Value
Sheets('Mémoire').Range('E8') = TextBox4.Value
Sheets('Mémoire').Range('L27') = TextBox6.Value

End Sub




bonne soirée
MichelXld [file name=Projet_USF_Marc_V02.zip size=24177]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Projet_USF_Marc_V02.zip[/file]
 

Pièces jointes

  • Projet_USF_Marc_V02.zip
    23.6 KB · Affichages: 45

Marboi

XLDnaute Occasionnel
Merci MichelXLD de te pencher sur mon problème. Ce que tu as fait parait bien meilleur que mon bricolage. Deux petites questions : pourquoi Dim i As Byte et For i = 1 To 4 ?

Pour les CheckBox :
- Il aurait fallut que ce soit OU transfert heures ouvrables qui est coché OU transfert hors heures normales (l'un OU l'autre).
- Je voulais savoir s'il était possible de faire la sélection, par exemple pour la ChekBox1, de la ligne B2:D2 en une seule fois de la page 'libellé',(sans sélectionner B2, puis C2, puis D2, sur trois lignes de macro, comme je l'ai fais) pour la coller dans la zone B21:M28 de la page 'mémoire', à la suite de ce qui serait coché, donc sans lui donner réellement la destination d'une cellule précise (mais toujours avec le libellé, la quantité et le prix unitaire).
Exemple : je coche 'transfert' et 'kilomètre supplémentaire'. Dans mon système 'Transfert' se postionne dans la page 'Mémoire' en B21,L21 et M21 et 'kilomètre' en B26, L26, M26. Si rien d'autre n'est coché, il y a forcémenent des lignes vides. J'ai essayé de coller à la dernière ligne (avec les infos que j'aie, derlin (B65536 etc...) mais ça ne fonctionne pas.
Si tu pouvais me donner un peu d'explications, ça serait le bienvenue.

Oups ! Je viens de relire ton message et donc de comprendre For i = 1 To 4, désolé.

Message édité par: Marboi, à: 27/05/2006 06:02
 

MichelXld

XLDnaute Barbatruc
bonjour

pourquoi Dim i As Byte

La Variable 'i' va etre utilisée pour boucler sur les 4 textbox nommés Textbox1 , Textbox2n Textbox3 et Textbox4

For i = 1 To 4
If Controls('TextBox' & i).Value = '' Then
MsgBox 'Un champ n'est pas rempli'
Exit Sub 'sort de la procedure si un textbox n'est pas rempli
End If
Next i



Une variable possede :
un nom qui permet d'acceder aux donnees qu'elle contient :'i'
et un type de données : Byte dans cette macro
Le type de données doit etre défini en fonction de la valeur prise par la variable .
Chaque type de donnée utilise un espace mémoire ( de 1 octet pour les types de données Byte jusqu'à 22 octets et plus , pour les types de données Variant ) . Il est donc important de définir le bon type de données pour libérer de l'espace mémoire et ne pas ralentir inutilement le traitement de la macro .


si tu souhaites avoir d'autres infos au sujet des variables :

https://www.excel-downloads.com/thr...iltres-variables-fichiers-fermes-acces.92374/



pour le choix entre les heures ouvrables et non ouvrables , tu pourrais par exemple remplacer les CheckBox par 2 optionButtons



bonne journée
MichelXld [file name=Projet_USF_Marc_V03.zip size=24535]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Projet_USF_Marc_V03.zip[/file]
 

Pièces jointes

  • Projet_USF_Marc_V03.zip
    24 KB · Affichages: 65

Marboi

XLDnaute Occasionnel
Merci pour les infos, pour l'instant je n'arrive pas à afficher le lien que tu m'as laissé, j'y retournerai plus tard. Donc 2 optionsbutton pour le choix du transport et le reste je le laisse en chekbox, c'est ça ?
Pour le copier/coller, tu ne vois pas de solution ?
Encore merci.
 

Marboi

XLDnaute Occasionnel
Bonjour Michel XlD, bonjour le forum,
J'ai regardé tes Wiki pages que j'ai précieusement ajoutées à mes favoris. Je pense que cela va pouvoir m'aider pour mes prochains essais, puisque tu renseignes un peu tout ce dont on a besoin sur excel. Je te remercie de m'avoir aider à résoudre mon problème. Juste encore une question, pour le fameux coller dans la 1ère ligne vide d'une plage définie, as-tu des infos à me passer ?

Encore merci :)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 276
Messages
2 086 714
Membres
103 378
dernier inscrit
phdrouart