Userform
Résoluhttps://mon-partage.fr/f/IJed4bJN/
J'ai un fichier (ci-joint) qui se remplit par userform. Quand on fait un double clic dans l'onglet Liste Complete, il apparait avec les données de la ligne concernée.
J'ai trois questions sur cet userform. Dois-je faire trois sujets différents, ou puis je poser mes questions dans un même sujet ?
Allez je tente dans un meme sujet. Si il faut que je change, n'hésitez pas.
Question 1:
Lorsque je modifie mes lignes via des saisies dans l'userform, il y a une sauvegarde de ces modifications dans l'onglet Commit à des fins de traitements ultérieurs.
Cependant, il reste la possibilité de modifier des données sans l'userform. Comment puis-je les enregistrer aussi dans l'onglet commit ?
Question 2 :
Pour activer l'userform, il faut doublecliquer dans l'ongelt Liste complete. Ce double clic vous permet d'avoir devant vous dans l'userform les données de la ligne que vous venez de cliquer. Comment peut-on mettre une zone de liste déroulante (pour les villes) qui permettrait aussi de faire une recherche par ville en remplissant bien evidement le reste des données de la ville sélectionner ?
Question 3 :
Dans cet userform, j'ai des listbox où j'aimerai limiter la saisie à des formats dates uniquement. Comment puis-je parametrer ceci?
Merci pour vos réponses
Benoit
32 réponses
Plusieurs questions portent sur un formulaire utilisateur sous Excel VBA, notamment comment enregistrer dans l'onglet Commit les modifications opérées hors du formulaire, et comment ajouter une zone de liste déroulante pour les villes. Pour enregistrer aussi les modifications hors UF dans l'onglet Commit, il est recommandé d'utiliser l'événement Worksheet_Change avec EnableEvents mis à False en début et rétabli à True ensuite, et d'ajouter une logique pour dépister les cellules pertinentes. Pour la question sur la recherche par ville et la restriction des saisies à des dates dans les ListBox, il s'agit d'ajouter une zone de liste déroulante liée à la feuille et d'utiliser un gestionnaire KeyPress ou une validation de format date pour les champs concernés. D'autres ajustements évoqués portent sur la gestion des événements et l'adaptation du code lorsque des colonnes supplémentaires apparaissent dans le fichier.
-
Bonjour,
Ca y est, enfin les vacances. Bacs et correction du bac finis pour ma part. Donc vacances, donc informatique.
L'absence a été longue, mais le mois a été très chargé.
Bon du coup, le fichier que l'on a mis au point fonctionne et fonctionne même bien. "Le Client" n'a pas de demande supplémentaire pour l'instant.
Donc, Je passe au projet suivant.
Donc je ferme ce sujet et en ouvre un autre en espérant vous lire dans ce nouvel apprentissage pour moi.
Cordialement.
Benoit -
https://mon-partage.fr/f/0M4H4Y7s/
Fichier complété -
Feuil1.EnableAutoFilter = True
-
Est-il possible de rendre accessible la fonction filtre et tri ?
-
C'est bon, trouvé, erreur de saisie manquait juste ":"
-
Bonjour,
J'ai essayé votre mode de protection de la feuille, c'est inefficace, on peut toujours modifié en faisant SUppr. -
je protège la feuille pour pas qu'il puisse y avoir de modifications sauf en passant par l'UF
-
Re,
Facile
code a mettre dans thisworkbook, adaptez le mot de passe
'protection feuillePrivate Sub Workbook_Open() Worksheets("Liste Complete").Protect Password:="moi", userinterfaceonly:=True End Sub
code a mettre dans un module pour pouvoir ajouter des lignes
'deprotection feuilleSub Unprot() Worksheets("Liste Complete").Unprotect Password:="moi" End Sub
Et pensez aussi proteger le code VBA pour que personne ne trouve le mdp ou modifie le code
Pensez aussi a vous rappeler ce mdp code vba
-
-
Bon je fais une compil de tout ça cette nuit,
SI vous avez une idée pour le blocage de la feuille (saisie en direct sans passer par l'UF bloqué) n'hésitez pas.
A propos, on touche à la fin de ce projet.
Si ça vous tente, je me lance dans un projet de main courante électronique. Pas d'intermédiaire, mon projet, mes décisions. Je pars de rien, si ce n'est mon expérience du terrain de la sécurité. Donc pas de contrainte de départ.
Mais on en reparle, car presque fini ce projet mais pas encore...
Pas la charrue avant les boeufs... -
Pour le pdv du coup je bloque colonne et le test box qui correspond
Pour les autres numérique je tente ce soir une adaptation de ce que vous avez écrit.-
Re,
'formatage n°telephonePrivate Sub Téléphone_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 46, 48 To 57 ' 01-04-19-46-47 VT = Len(Téléphone) If VT = 2 Or VT = 5 Or VT = 8 Or VT = 11 Then Téléphone = Téléphone & "-" Case Else KeyAscii = 0 MsgBox "Only numbers allowed" End Select End Sub
-
-
je viens d'ouvrir le fichier, tout semble marcher correctement. quelle autree modif voulez vous apporter?
-
-
@f894009Protection avec mot de passe
Dans mes essais j'ai intégrer un enlever/remise de la protection avec le bouton validation -
@Benoit_LyonSi vous avez une idée différente ....
-
-
Re,
Pour le moment
Version control butees annees, jour dans mois, mois, annees separe du controle saisie
https://mon-partage.fr/f/8cVXd5qW/
Plus besoin On Error Resume Next
Je regarde pour integration control format dans saisie temps reel
suite:
Pas vraiment judicieux et surtout pas simple a realiser -
Et donc comment je fais pour interdire la saisie de 45/14/4500 ?
-
Re,
J'ai deja ce qu'il vous faut, mais ca risque de couter tres, tres cher
Le principe est simple:
sur sortie d'une txtbox date, controler format date et aussi la longueur de la chaine date car 405 est aussi une annee. Il est possible de mettre des bornes inferieure et superieure (calendes Grecs)
Vous cherchez un moment pendant que je regarde comment integerer ce controle dans la saisie car tout en un comme ca
-
-
Ce sont des rendez-vous commerciaux, et parfois ils peuvent reporter aux calendes Grecs, d'où le "erronée".
-
Re,
Ok, je planche pour remplacement date par case vide tout en conservant le on error resume next par champ date si problème il y a
Suite:
En fin de compte si toujours besoin du on error resume next donc pour chaque date modifiez comme ceci dans l'UF bouton sauvegardeIf ModifyDatePrévisite.Value <> "" Then OnError Resume Next .Cells(GLOBAL_LIGNE, 12).Value = CDate(ModifyDatePrévisite.Value) On Error Goto 0 Else .Cells(GLOBAL_LIGNE, 12).Value = "" End If
Ceci parce qu'il est possible dans votre cas d'entrer cette date: 45/14/4500
Voir ce que j'ai ecrit a la fin du post 34. De meme les dates Calendes Grecs, c'est peut-etre possible de les eviter
-
-
Ok, c'est vrai je suis un peu fatigué (beaucoup peut-etre).
Reprenons par l'exemple =
- Je rentre une date par l'UF
- Je valide mon UF
- Mince je me suis trompé
- Je retourne dans l'UF
- Je veux faire backspace dans la date erronée
- Ok, disparition dans l'UF
- Surprise toujours présente dans le tableau. -
oui, utilisation de backspace dans l'UF; je suis d'accord. Mais les données restent dans le tableau
-
Re,
Internet UF Textbox Format date
Cela fonctionne quand je supprime dans la case du tableau, j'aimerai que cela fonctionne dans l'UF -
Et bien chez moi cela ne fonctionne pas alors que je viens de tester sur le dernier que vous avez envoyé.
J'utilise le backspace puis enter.
Dans le tableau, la date reste présente -
Ok, ca supprime dans l'UF mais pas dans le tableau
-
Autre question :
Une fois une date saisie dans le masque des dates, je n'arrive pas à enlever ces dates par supprime dans le masque.
Comment faire?
Là je sèche depuis trois jours dessus. -
Leçon du matin (Pour moi)
Pourquoi le client ne veut pas ? Parcequ'il a peur que ca me prenne du temps....
Pourquoi ca me prendrait du temps ? : Parceque lancé dans le VBA j'en oublie les fondamentaux d'Excel qui sont les Validations de données...
Ne pas courir droit dans la difficulté et rester simple...
Je m'énerve parfois-
Re,
Masque de saisie sur chaque colonne ?
Oui, mais controle possible seulement sur validation pas en court de saisie. Bien cibler le format attendu
Sinon, votre "client" doit faire un choix
Pourquoi ca me prendrait du temps ?
Seul vous pouvez en decider et aussi voir si vous avez un delai polymorphe
-
- 1
- 2