Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 11/09/2008
Messages:
7
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 12-09-2008 09h15
Bonjour, je suis débutant, pouvez-vous m'aider à réaliser PAS-A-PAS un fichier (surtout la fenêtre de dialogue) exactement comme le modèle ci joint? MERCI d'avane.
|
|
|
Re: Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 12-09-2008 20h56
Bonsoir diversjano, le Forum.
Tout d'abord, je te souhaite la bienvenue. Ensuite, j'avoue que je ne comprends pas bien ta démarche. Ton Userform est déjà bien avancé et le code semble fonctionnel (je n'ai pas pu tester le Calendar car il n'est pas présent sur ma machine, mais l'ajout de lignes au tableau grâce à ton formulaire se fait très bien). Que veux-tu faire ou savoir exactement ? Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 11/09/2008
Messages:
7
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 13-09-2008 00h32
Bonsoir myDearFriend,
Merci beaucoup par l’intérêt que tu portes à mon sujet, En réalité ce n’est pas moi qui a fait ce fichier, je veux aller plus loin dans mes connaissances avec excel (je suis un vrai débutant), mon objectif est donc d’apprendre comment faire un truc pareille tout en utilisant celui-là comme modèle d’exercice. J’aimerai savoir où sont stockés les informations que apparaissent dans la fenêtre « saisie - Vente de produits telmod », c'est-à-dire où se trouvent les informations que je vois dans les champs: numéro ; Nom Promo ; Désignation ; etc.… Merci encore. |
|
|
Re: Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 13-09-2008 01h37
Re,
Ok, en premier lieu et pour répondre à ta question : Les données pré-affichées à l'ouverture du Userform proviennent de la procédure "effacer()" présente dans le module de code standard (Module1). En fait, cette procédure est déclenchée lors du clic sur le bouton "Saisir" de la feuille de calcul : voir la procédure évènementielle "CommandButton1_Click()" dans le module de code de la Feuil1. Dans cette procédure évènementielle, on retrouve également le pré-remplissage des ComboBox du Userform. Cela dit, je me permets de t'annoncer que tu n'as pas vraiment choisi le meilleur support pour apprendre à utiliser les Userforms. N'en déplaise à l'auteur auprès duquel je m'excuse par avance, mais franchement, dans ce classeur, il y a, à mon avis, des erreurs qu'il convient d'éviter... Quelques remarques par exemple : - Déclarer les variables est une bonne chose. Mais la déclaration systématique de variables en type "Public" et/ou en tête de module n'est pas vraiment la meilleure façon d'optimiser un code. Cela entraine un gaspillage des ressources machine (mémoire). On peut utiliser des variables dites "Public", mais il convient de les restreindre au strict nécessaire (quand on ne peut pas faire autrement). Je te conseille de lire l'article VBA et les variables dans lequel je tente d'expliquer la déclaration des variables et leur utilisation. - Row est une propriété existante dans VBA. Il s'agit donc d'un mot clé réservé. Nommer une variable avec ce même nom peut entrainer des conflits d'interprétation du code et est donc à proscrire. - L'utilisation de "TELMOBPROMO.Hide" lorsqu'on clique sur le bouton "Quitter" ne fait que masquer le Userform et ne le décharge pas complètement de la mémoire : encore un gaspillage de ressources. - Pour initialiser les valeurs dans les contrôles du Userform à son ouverture, on utilise normalement l'évènement "Initialize()" du Userform qui est justement réservé à cet effet. C'est dans cet évènement qu'on devrait remplir les ComboBox par exemple. - Dans l'expression : While ActiveSheet.Cells(Row, 1).Value <> "" Si tu le souhaites, je peux te mettre en pièce jointe un classeur exemple que j'avais réalisé à une certaine époque et qui est, selon moi, sans doute un peu plus académique et plus simple pour ton apprentissage... Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 11/09/2008
Messages:
7
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 13-09-2008 09h57
Merci encore, c'est vraiment très gentil de ta part, j'attends ton classeur exemple.
Cordialement. |
|
|
Re: Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 13-09-2008 12h04
Bonjour diversjano, le Forum,
Tu trouveras en pièce jointe une façon d'aborder le sujet. Il s'agit d'un exemple très simple destiné avant tout aux débutants. Il permet notamment de faire connaissance avec la plupart des contrôles ActiveX habituellement utilisés dans ce type de projet. Tu observeras l'utilisation d'une unique variable "Public". Cette dernière permettant de faire la distinction entre le mode "Nouvel enregistrement" et le mode "Modification" d'un enregistrement existant. Si tu as besoin d'explications supplémentaires, n'hésite pas. Cordialement, Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Re: Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 11/09/2008
Messages:
7
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 13-09-2008 18h28
Bonjour mDF, je vais utiliser ton classeur dans mon apprentissage, je commence à faire mes premiers pas avec les USERFORMS, c'est passionnant. Par le fait de ne pas avoir assez de connaissances je ne comprends pas les "quelques remarques par exemple:" - ça viendra!
Merci et @ bientôt. |
|
|
Re: Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 11/09/2008
Messages:
7
Système d'exploitation: PC Version Excel utilisée: 2003,2007 |
Posté le : 15-09-2008 00h10
Bonsoir mDF,
S'il te plait peux-tu m'expliquer comment as tu créé ton UserForm? J'ai déjà appris à placer des contrôles et à les modifier et comment leurs affecter une macro. Seulement je ne trouve pas "Worksheet" dans ma liste de contrôles. Salutations. |
|
|
Re: Automatisation d'une base de données avec excel | ||
---|---|---|
Inscription: 18/05/2006
De Saône-et-Loire (71)
Messages:
1539
Système d'exploitation: PC Version Excel utilisée: 97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365 |
Posté le : 15-09-2008 19h02
Bonsoir diversjano, le Forum,
"Worksheet" n'est pas un contrôle ActiveX à proprement dit, il s'agit d'un composant de ton projet (ton classeur). Il représente l'objet "Feuille de Calcul" et constitue un élément de la collection Worksheets (avec un S à la fin quand on parle de la collection entière) Par exemple : - ActiveWorksheet représente la feuille de calcul active. - Worksheets(1) est le premier élément de la collection Worksheets du classeur, il représente le premier onglet. - Worksheets(2) est naturellement le deuxième. - Etc... Bien que légèrement différents, on utilisera souvent indifféremment Worksheets(x) ou simplement Sheets(X) pour faire référence à une feuille de calcul particulière. Si tu observes l'arborescence d'un projet dans l'éditeur VBA (voir l'explorateur de Projets au haut et à gauche que tu peux afficher par Ctrl+R s'il ne l'est pas déjà) tu verras qu'un classeur se décompose en plusieurs "objets" qui sont : - Les modules de feuilles de calcul (ou Worksheets) : ex: Feuil1, Feuil2 et Feuil3 par défaut généralement - L'objet "ThisWorkbook" qui représente le classeur lui-même et ne peut être supprimé. - Les éventuels modules de Userform. Ex : Userform1 - Les éventuels modules de code Standard. Ex : Module1 - Plus rares, mais quelquefois utilisés, il existe aussi les modules de Classe. Ex : Classe1 - Les modules de feuilles sont créés automatiquement à chaque fois que tu insères une feuille dans un classeur. - L'objet "ThisWorkbook" est unique. - Tu retrouveras les 3 derniers types de module (Userform, module Standard et module de Classe) dans le menu Insertion de l'éditeur VBE (Visual Basic Editor). La structure d'un classeur : c'est une notion de base qu'il te faut aborder si tu souhaites comprendre le mécanisme d'une procédure VBA. Le vocabulaire de base : - Workbook = le Classeur - Worksheet = la Feuille de calcul - Range = la cellule ou la plage de cellules Cordialement, PS: j'ai quelques soucis de machine actuellement. Il est possible que je ne puisse répondre rapidement à tes interrogations durant les quelques 5 ou 6 jours prochains... Prend patience et n'hésite pas si tu as besoin d'informations complémentaires... (cela dit, d'autres pourront te répondre également ) Didier_mDF
Le Webmaster La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien |
|
|
Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
Qui consulte actuellement ce sujet ?
1 Utilisateur(s) anonymes