Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Jolie UserForm!!!! Je comprend mieux la remarque de BrunoM45!!!
Sinon, pour répondre à ta question, tu sais déjà faire!
Il te suffit de faire la même chose que pour le bouton "Quitter", sauf qu'au lieu d'écrire "Quitter", tu écriras "création" sur l'un et "modification" sur l'autre!
Sinon, le plus rapide :
-> sélectionner le bouton "Quitter" en faisant UN clic gauche dessus
-> appuyer sur "Ctrl" + "C"
-> appuyer sur "Ctrl" + "V"
il te reste plus qu'à :
-> faire glisser le bouton ainsi dupliqué à l'endroit de ton choix
-> changer le texte : ----* faire un clic gauche sur le nouveau bouton (s'il n'est pas déjà sélectionné) ----* dans ta partie gauche de ton écran, à la ligne "caption", remplacer "Quitter" par "Création" (et la seconde fois, par "Modification")
PS. : la politique du forum, c'est de mettre les fichiers ici, sur le forum excel-download (quitte, à devoir enlever les choses inutile à la question dans le fichier, pour qu'il ne dépasse la limite de taille imposé par le forum).
Jolie UserForm!!!! Je comprend mieux la remarque de BrunoM45!!!
Sinon, pour répondre à ta question, tu sais déjà faire!
Il te suffit de faire la même chose que pour le bouton "Quitter", sauf qu'au lieu d'écrire "Quitter", tu écriras "création" sur l'un et "modification" sur l'autre!
Sinon, le plus rapide :
-> sélectionner le bouton "Quitter" en faisant UN clic gauche dessus
-> appuyer sur "Ctrl" + "C"
-> appuyer sur "Ctrl" + "V"
il te reste plus qu'à :
-> faire glisser le bouton ainsi dupliqué à l'endroit de ton choix
-> changer le texte : ----* faire un clic gauche sur le nouveau bouton (s'il n'est pas déjà sélectionné) ----* dans ta partie gauche de ton écran, à la ligne "caption", remplacer "Quitter" par "Création" (et la seconde fois, par "Modification")
PS. : la politique du forum, c'est de mettre les fichiers ici, sur le forum excel-download (quitte, à devoir enlever les choses inutile à la question dans le fichier, pour qu'il ne dépasse la limite de taille imposé par le forum).
MERCI , effectivement je me suis mal exprimé , car si ce n étais que ceci , je pense que je ne serais aps sur le site .
Excuse moi , mais comment se servir de cet userform pour creer une fiche nouvelle , soit donc de remplir les masques et que ceux ci vont dans la base de données.
A linverse comment rechercher une cellule et pouvoir la modifier a travaers l userform
Suis je clair ???? pas facile parfois de s exprimer !!!!
Je ne suis pas d'accord avec toi! Le but de ce forum est d'aider, donc forcément, il y a des débutants, ainsi que des gens plus doué, ... et des sur-doués.
reve24 à dit:
Excuse moi , mais comment se servir de cet userform pour creer une fiche nouvelle , soit donc de remplir les masques et que ceux ci vont dans la base de données.
Le plus judicieux, étant donné le nombre d'informations à saisir, comme dit précédemment par BrunoM45 serait de procéder autrement (sans UserForm).
Je vois deux solutions :
-> soit faire cela sur Accès, car je ne sais pas si tu l'as remarqué, mais tu fais de la gestion de base de donnée avec Excel!!! Alors qu'Accès a été conçu express pour cela!!! (Excel peut le faire, mais ça fait vite usine à gaz)
-> soit rester sur Excel mais éviter les grosses UserForm!!! Car un utilisateur lambda sera plus à l'aise s'il doit faire ses saisies sur une feuille de calcul Excel que dans une immense et complexe UserForm. En plus, autre avantage, la conception en sera d'autant plus simplifié!!!! Et les lignes de codes moins nombreuses.
Bref si tu optes pour la seconde version, dédier quelques onglets à l'utilisateur pour la saisie, ou carrément un fichier entier pour la saisie/modification et un autre pour la base de donnée.
Lorsque l'utilisateur aura fini sa saisie, il l'a validera en cliquant sur un bouton qui lancera ta macro "alimenter la base de donnée".
Et pour la modification : dédier un onglet pour la recherche des données. Une fois que l'utilisateur aura mis ces critères et valider son choix la macro :
-> ira chercher la fiche concerné dans ta base de donnée
-> alimentera la zone de saisie (les fameux onglets dont je parle ci-dessus ou le fichier "saisie/modification") et lorsqu'il validera, la macro ira écraser les données précédemment saisie.
Je suis clair? Qu'elle solution préfères-tu? Ou tu garde ton idée de départ?
PS. : s'il te plait, tu peux éviter l'utilisation du couleur rouge + police exagérément grosse? Surtout lorsque tu l'applique a des paragraphe entier? Ca fait mal au yeux et n'apporte rien à la clarté de ta question (au contraire).
Ta solution est surement bonne , et il faut repenser le sujet .
effectivement , pas access evidemment car tout le monde ne maitrise pas . Dailleurs j ai deja realisé ce fichier dans ACCESS et sur FILEMAKER mais la licence tout le monde ne l a pas .
Donc cette base pourrais effectivement se faire par un userform de saisie
Lorsque l'utilisateur aura fini sa saisie, il l'a validera en cliquant sur un bouton qui lancera ta macro "alimenter la base de donnée".
et un autre en recherche OK
Mais mon idéee de depart est , creer une base avec des champs "" type label1"" comme l exemple de JP14 car on peut s en servir pour autre chose en changeant les titres Et cela me semble genial .
La personne saisie dans les champs prévus à cette effet dans ta UserForm, et lorsqu'il cliquera sur "Valider la saisie".
Ta macro vérifiera dans un premier temps que la fiche n'existe pas déjà dans ta BD (base de donnée)
-> si oui, demander confirmation à l'utilisateur avant d'écraser les données.
-> si non, rajouter les données dans ta base de donnée. Un truc dans le genre :
Code:
Sheets("nom de ta feuille").Range("A4") = TextBox43.Value
...
reve24 à dit:
comment rechercher une cellule et pouvoir la modifier a travaers l userform
Faire une UserForm : "Recherche", dans laquelle tu mettras les critères de choix. Pour les valeurs à saisir, il sera bien de mettre une liste de choix, ainsi cela évitera à l'utilisateur de ne pas trouver sa fiche à cause d'une bête erreur d'orthographe, et de ce faite, de créer une nouvelle fiche qui fera alors doublons.
Puis ta macro ira chercher ta fiche dans ta BD et alimentera ton UserForm
Code:
TextBox43 = Sheets("nom de ta feuille").Range("A4")
...
Et l'utilisateur n'aura plus qu'à modifier la(les) zone(s) de son choix. Puis valider ses modifications.
Et à ce moment, ta macro ira mettre cette fiche dans ta base de donnée à la place de l'ancienne version.
Personnelement, comme dans ton fichier ci-joint : j'utilise les champs de type Label pour les titres, et les champs TextBox ou ComboBox pour les zones de saisie.
Bien sûr on peut aussi utiliser les cases à cocher et autres gadgets!
Au vue de la complexité de ton code, tu semble calé en VBA. Je comprend pas où tu pourrais bloquer!!!
Procéde par étape!
Dans un premier temps, fais comme si ton UserForm était une UserForm de saisie (création d'une nouvelle fiche), met de côté toutes les histoires de doublons (fiche déjà existante), la recherche de fiche et la modification de fiche.
-> met le bouton "Valider"
-> associe à ce bouton la macro qui remplira ta base de donnée. ----> recherche dans la base de donnée de la dernière fiche (dernière ligne rempli) ----> rajoute à la suite cette nouvelle fiche avec le code précédemment fournis
Code:
Sheets("nom de ta feuille").Range("A4") = TextBox43.Value
=> Après... rajoute dans ta macro des tests : ----> vérifier que les TexBox... sont bien saisie, sinon informer l'utilisateur et lui redonner la main sur l'UserForm en cours de saisie
Exemple :
Code:
If TextBoxLargeurPlanche1.Value = "" Then
MsgBox "Vous avez oublié de saisir la largeur de la première planche!"
Exit Sub
End If
Ou s'il s'agit d'une case mois à renseigner en chiffre :
Code:
If CByte(TextBoxMois) < 13 Then
MsgBox "Il n'y a que 12 mois dans l'année, merci de saisir un nombre inférieur ou égale à 12"
Exit Sub
End If
----> vérifier la cohérence de la saisie, par exemple que pour la TextBox... il a bien mis une quantité en chiffre et non pas en lettre ----> rajouter des listes de choix par exemple si dans une cellule ils doivent mettre le mois (mettre une liste avec les douze mois)
L'utilisation des listes de choix est très importante pour les bases de données, car sinon au bout d'un moment et en fonction de la rigueur des gens qui saisissent, tu auras vite des fiches en doublons.
De plus, une base de donnée bien rempli permet de se simplifier la vie si plus tard tu dois utiliser cette base de donnée et que tu dois faire des tries, extractions, calculs, ...
PRIMORDIAL, avant de commencer ton code, nomme tes TextBox, Label de façon plus clair et plus facile à utiliser!!!
Car TextBox118 ce n'est pas très parlant pour moi, et pour toi aussi je pense
Par exemple TextBoxLargeurPlanche1, TextBoxLargeurPlanche2, TextBoxLargeurPlanche3, TextBoxLongueurPlanche1, TextBoxLongueurPlanche2, ...
Avantage de cette méthode : Nom du champ (textBox ou combobox ou ...) + nom parlant + chiffre, tu pourras simplifier ton code VBA en utilisant des boucles
Code:
For i = 1 To 3
Cells(3, i) = Controls("TextBoxLargeurPlanche" & i).Value
Next i
Idem pour ton UserForm : "UserForm1" c'est pas très parlant!!!
Tu peux par exemple l'appeler "CréationModificationFiche"
-> renommer tous tes Label, TextBox, ... à ta place? Premier soucis, ce n'est pas la politique du forum (on peut te dire comment faire, mais pas le faire à ta place) et je ne suis pas à ta place, je ne connais pas ton fichier, ni sa finalité, ni ce que tu veux précisément, donc j'aurais du mal, même si je le voulais, de nommer toutes tes TextBox, Label, ...
Tu sais changer le nom d'un Label, TextBox, ...?
-> aller dans le visual basic editor : "alt"+"F11"
-> cliquer sur ton UserForm
-> faire un clic gauche sur ton Label (ou TextBox)
-> dans la partie gauche de ton écran : cliquer sur la case à droite de "(Name)" et remplacer Label1 par le nom de ton choix (espace interdit).
-> créer tout le code? Pourtant tu sais faire! Et au cas où, ci-dessus je t'ai donné plusieurs pistes, astuces.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.