VBA code pour Userform
Bonjour a toute & tous,
Je viens vers vous car étant plus que débutant en Vba, je me casse la tête depuis un moment pour encoder mon fichier.
Etant reclassé depuis 2 mois dans un service de reprographie, plutôt que de mettre sur papier les différents travaux demandés, j’ai proposé à l’équipe d’essayer de faire un formulaire.
Le formulaire ‘UFSaisie’ est réalisé.
J’ai commencé le code dans celui-ci en m’inspirant des différents post et cours VBA sur le site (date & combo fonctionnent) mais je rencontre quelques problèmes pour le reste, je me permets de vous les exposer :
1- Quand je valide la saisie celle-ci va directement se placer sur la ligne 2 modifiant mon tableau par la même occasion (num = Range("a1048576").End(xlUp).Row + 1) ai-je la bonne méthode ?
2- Je n’arrive pas à rendre inactif certaine textbox, cela est-il possible ?
3- Je n’arrive pas non plus à mettre un « X » sinon ““ a la place de Vrai.
Bref suis une quiche mais je ne demande qu’à apprendre.
Voilà ce que j’attends du fichier :
A/ Dans l’Fr Quantité quand on entre une valeur dans TBDocument cela rend TBImprimé inactif et inversement.
B/ De même dans FR Assemblage une fois qu’une valeur est entrée Ex : (TB Agraphe) cela rend inactif les 2 autres et inversement.
C/ Dans la Fr Noir & blanc de même pour Fr couleur et Fr plastification :
Je souhaiterais qu’au lieu de voir VRAI ou Faux sur la (feuil janvier), les checkBox note un X sinon ““ à la place.
J’espère avoir était précis pour vous auquel cas je me tiens à votre disposition.
Merci à vous
Cordialement Eric
Bonjour,
Pour la question A :
Private Sub TBDocument_Change()
If TBDocument.Text = "" Then TBImprimé.Enabled = True Else TBImprimé.Enabled = False
End Sub
Private Sub TBImprimé_Change()
If TBImprimé.Text = "" Then TBDocument.Enabled = True Else TBDocument.Enabled = False
End Sub
Pour la question B :
Private Sub TBSpirale_Change()
If TBSpirale.Text = "" Then TBThermo.Enabled = True: TBAgraphe.Enabled = True Else TBThermo.Enabled = False: TBAgraphe.Enabled = False
End Sub
Private Sub TBThermo_Change()
If TBThermo.Text = "" Then TBSpirale.Enabled = True: TBAgraphe.Enabled = True Else TBSpirale.Enabled = False: TBAgraphe.Enabled = False
End Sub
Private Sub TBAgraphe_Change()
If TBAgraphe.Text = "" Then TBThermo.Enabled = True: TBSpirale.Enabled = True Else TBThermo.Enabled = False: TBSpirale.Enabled = False
End Sub
et pour la question C :
Range("E" & num) = IIf(CBNoirA4.Value = True, "X", "")
Range("F" & num) = IIf(CBNoirA3.Value = True, "X", "")
Bonjour
pour la 1er question mettre le Sheets avant le Num
A+
Maurice
Sheets("janvier").Activate
num = Range("A" & Rows.Count).End(xlUp).Row + 1
Merci Theze et archer pour vos réponses , je met en application et au besoins je revient vers vous.
encore merci
Cordialement
Bonsoir je reviens vers vous , j'ai mis en application les différentes modifications et je me suis appuyer sur vos réponses pour les adapter aux autres textbox et combo .
1/ des que je valide la saisie celle-ci , les données se placent en ligne 18
bizarre vous avez dit bizarre
2/ depuis la mise en place des modifications quand je veux modifier ma saisie les textbox ainsi que combo-s’effacent correctement et se mettent à 0 sauf les checkbox comme certaines sont 'enabled' elles ne se réactive pas lors de la modification de la saisie.
merci pour le temps que vous passez à solutionner mon souci
je me permet de re-joindre mon fichier
Cordialement
- Messages
- 2'415
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour toutes et tous et bon Week-end
pour la question 2
Edit : toutes les checkbox oui et non sont ok de l'usf, prendre fichier ci-joint modifié sam.28 oct à 15h06
Note : Il ne reste plus que les textbox(s) :
TBAgraphe
TBThermo
TBSpirale
TBDocument
TBImprimé
crdlt,
André
Bonjour et grand merci Andre13 j'ai suivi tes conseils et cela fonctionne a merveille, j'ai un peu tricoté avec les 3 combo mais apres 10mn
Private Sub CBPlasA4Nor_click()
If CBPlasA4Nor.Value = True Then
CBPlasA3Nor.Enabled = False
CBPlasA4Plas.Enabled = False
End If
If CBPlasA4Nor.Value = False Then
CBPlasA3Nor.Enabled = True
CBPlasA4Plas.Enabled = True
End If
End Sub
Encore merci ,
ne me reste plus qu'a savoir pourquoi les données se placent sur la ligne 18 et non pas ligne 3
malgré ce code
Sheets("janvier").Activate
num = Range("A" & Rows.Count).End(xlUp).Row + 1
j'y retourne
Cordialement
- Messages
- 2'415
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Re, bonjour
merci si tu es contents j'le'suis
a) pour ce qui est de la ligne question 1, il y a une date FmSaisie (Nom : TBDate textbox)
et pour coïncider une date pour que le transfert s'effectue correctement dans la feuille, il faut que le code corresponde dans ton USF
b) après j'ai vu que tu avais une colonne ' S ' qui ne se trouve pas dans ton USF (facultatif)
c) il y a des filtres dans tes colonnes de ta feuille Janvier
Si tu as fait des modifications sur ton fichier n'hésite-pas à le mettre ci-joint pour que l'on puisse trouvé pour la question 1 (décalage )
crdlt,
André
Merci pour tout ces conseils jetait très loin d'y arriver seul .
merci aussi à archer et theze.
j'ai trouvé d ou venais le problème concernant les données qui se placer en ligne 18 , j'ai refais une nouvelle feuil 'janvier' cette fois ci sans les onglets listes et le tout fonctionne âpres plusieurs ajout de données .
je vais pourvoir le poursuivre car j'en ai pas fini avec lui ,je dois le réaliser sur 12 mois .y ajouter un graphique pour les stats et qque formules de calculs.le pied en somme.
encore merci a vous et vive excel-pratique
Cordialement Eric
Le problème venait des filtres , j'ai refait une feuille 'janvier' sans les filtres et tout fonctionne
je suis entrain de faire le classeur sur 12 mois après je verrais pour le code a mettre pour qu'a l’ouverture de celui-ci il me place directement sur le mois concerné .
je suis bien motivé au vu des posts sur le site je ne peux que progresser et ceux grâce a des membres qui savent donner de leur temps à des personnes dans mon cas.
j'ai un profond respect pour ces personnes la
encore merci Andre13
Amicalement Eric