Questions de débutante sur userform

bambi

XLDnaute Occasionnel
Bonjour à tous :)

Je compte faire des formulaires de saisie afin de "ventiler" des données dans une feuille.
Rien de bien exceptionnel mais c'est la 1ere fois que je vais le faire donc avant de commencer, j'ai quelques questions pour correctement m'organiser.

Question 1 - Est-ce possible d'avoir plusieurs userform sur une même feuille ?

Question 2 - Est-il possible de créer trois boutons pour "ventiler" les données dans différentes zones ? Si oui, avec quelle commande ou autre ?

Question 3 - J'ai besoin de ne garder que les 20 dernières saisies (jour 1 à 20) pour des calculs sur le dernier jour et des moyennes sur les derniers jours (moyenne 5 -10 et 20). Et que la saisie du jour soit en ligne 1, celle de la veille en ligne 2 ...etc Donc que chaque nouvelle saisie décale les lignes vers le bas avec un historique de 20 lignes seulement . Quelle commande va me permettre cela ?

Ma demande n'est pas que l'on fasse ce travail à ma place mais que l'on me mette sur la piste de ce que je dois utiliser pour y parvenir avec les contraintes ci-dessus.
Merci d'avance ;)

Je joins le fichier sur lequel je démarre (j'en suis juste au squelette donc il est encore vide de tout) si ça peut rendre mes questions plus claires.
Attention, les données vont jusqu'à la colonne AG et la ligne 65


[EDIT] J'ai éditer mon message afin de rajouter le même fichier au format xls car ma demande n'est pas spécifique à Excel 2007. J'aurais pu/du la poster dans l'autre forum.
 

Pièces jointes

  • Classeur1.xls
    35 KB · Affichages: 73
  • Classeur1.xls
    35 KB · Affichages: 61
  • Classeur1.xls
    35 KB · Affichages: 69
  • Classeur1.xlsm
    19.7 KB · Affichages: 50
  • Classeur1.xlsm
    19.7 KB · Affichages: 55
  • Classeur1.xlsm
    19.7 KB · Affichages: 54
Dernière édition:

soenda

XLDnaute Accro
Re : Questions de débutante sur userform

Bonsoir le fil, Bambi

Est-il possible d'avoir plusieurs userform sur une même feuille ?
Au vu de la PJ, il ne s'agit pas de UserForm mais plutôt de "Zone de saisie" sur une feuille
(tu entres tes données, tu cliques sur un bouton et une macro copie les données à un emplacement hadoc).
Tu peux tracer sur ta feuille, autant de zone de saisie que tu veux.
Au final il se posera peut-être un problème d'ergonomie, mais bon ...


Est-il possible de créer trois boutons pour "ventiler" les données dans différentes zones ? Si oui, avec quelle commande ?
Il peut-être interessant de créer plusieurs boutons pour copier les données ... Mais ce n'est pas la seule option.
Le code (simplifié) est du type : Source.Copy Destination (Pour une réponse plus spécifique, on manque d'info ...)


J'ai besoin de ne garder que les 20 dernières saisies ...
- Trier la saisie (si les date ne sont pas dans le bon ordre)
- Copier les 20 premières lignes de saisies vers la destination.
Au vu de la PJ, c'est à peu près tout ce que je peux dire pour l'instant.

A plus
 

JNP

XLDnaute Barbatruc
Re : Questions de débutante sur userform

Bonjour Bambi, Soenda :),
En ce qui me concerne, la première question que je me poserais, c'est la facilité pour l'utilisateur. 3 boutons pour envoyer les données, c'est pas spécialement pratique... Si l'utilisateur se plante de bouton, trop tard... Ou alors il faut mettre un MsgBox pour valider l'envoi de la saisie, ce qui est lourd...
Je mettrais plutôt un code couleur sur le futur envoi de la saisie (par simple clic sur D, W ou M), et je stockerais ce choix en variable avec un public, soit dans le code de la feuille
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Union(Range("Y7"), Range("AB7"), Range("AE7"))) Is Nothing Then Exit Sub
Union(Range("Y7"), Range("AB7"), Range("AE7")).Interior.ColorIndex = 2
Target.Interior.ColorIndex = 4
Référence = Target.Address
End Sub
et dans un module
Code:
Public Référence As String
Par contre, pour la saisie qui décale, je serais prudent, tu parle d'une saisie tous les jours, donc il faudrait un contrôle de validité de la saisie afin d'éviter plusieurs saisies successives...
Avec un bouton, tu peux récupérer l'addresse du début pour pouvoir déclencher la copie sur la bonne zone
Code:
Private Sub CommandButton1_Click()
Select Case Référence
Case "$Y$7:$Z$7"
Référence = "V"
Case "$AB$7:$AC$7"
Référence = "AB"
Case "$AE$7:$AF$7"
Référence = "AH"
End Select
MsgBox Référence
End Sub
te montrera la colonne où tu veux agir, mais tu peux bien sûr stocker autre chose que la colonne, c'est juste pour l'exemple.
Maintenant pour décaler, une boucle du type
Code:
Sub Décale()
Dim I As Integer
For I = 64 To 46 Step -1
Cells(I, 22) = Cells(I - 1, 22)
Cells(I, 23) = Cells(I - 1, 23)
Cells(I, 24) = Cells(I - 1, 24)
Cells(I, 25) = Cells(I - 1, 25)
Next I
End Sub
va te descendre toutes tes lignes en écrasant la 21. Tu remarqueras que j'ai utilisé 22, 23, 24 et 25, mais à la suite du test précédent, ce pourrait être Cell(I, J) avec J = 22 pour D, J = 28 pour W, etc.
Il ne te reste plus qu'à envoyer les données pour la première ligne sur le même modèle.
je te mets mes tests en pièce jointe.
Bon courage :cool:
 

Pièces jointes

  • Saisie décalée.xls
    57.5 KB · Affichages: 69
Dernière édition:

bambi

XLDnaute Occasionnel
Re : Questions de débutante sur userform

Bonsoir

Toujours dans le cadre de mon apprentissage des userform, j'ai deux questions sans réponse malgré mes recherches.

1 - Parmi plusieurs case à cocher, comment en sélectionner une par défaut qui sera cochée dès l'ouverture ?

2 - Le déplacement dans un formulaire via la touche Tab se fait d'objet en objet (texte à saisir, bouton à cocher ...) selon l'ordre de création des objets sur l'userform. Est-il possible de modifier cet ordre afin de choisir de passer de telle case à tel bouton (...) lors de la saisie ?

Merci de vos réponses
 

bambi

XLDnaute Occasionnel
Re : Questions de débutante sur userform

1 - Parmi plusieurs case à cocher, comment en sélectionner une par défaut qui sera cochée dès l'ouverture ?

Je me réponds à moi-même pour cette question en renvoyant à cette file
https://www.excel-downloads.com/threads/cocher-un-chekbox-a-louverture-du-userform.109323/
Réponse très claire et très complète de JAM :)

Me reste une question sans réponse ;)

Le déplacement dans un formulaire via la touche Tab se fait d'objet en objet (texte à saisir, bouton à cocher ...) selon l'ordre de création des objets sur l'userform. Est-il possible de modifier cet ordre afin de choisir de passer de telle case à tel bouton (...) lors de la saisie ?
 

bambi

XLDnaute Occasionnel
Re : Questions de débutante sur userform

Merci Jean Pierre, j'allais justement me donner une nouvelle fois la réponse.
Je cherche pendant des heures, je ne trouve pas alors je pose mes questions et pof, je tombe sur les réponses.
Comme quoi, poster sur le forum, en plus des réponses des membres, donne un peu d'inspiration.

Ceci étant dit, ce n'est pas facile de trouver de bons tutos avec tous les infos dont on a besoin regroupées. Et quand on débute, on ne sait pas vraiment quels mots clés utiliser pour chercher.

Mais je m'en sors tout de même :)

Merci encore et bonne soirée.
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 095
Membres
103 116
dernier inscrit
kutobi87