Création du formulaire d'ajout et de recherche
Bonjour,
Etant débutant dans le monde de programmation VBA, et après plusieurs recherche je n'est pas trouvé ce que je recherchais exactement...
Je suis actuellement entrain d'essayer de concevoir un fichier excel permettant de gérer des bons de travail dans mon entreprise. J'ai réaliser un formulaire permettant d'ajouté des données dans ma feuille de données, et permettant aussi de rechercher et modifié une donnée précédemment ajoutée en cas de besoin. (C'est la ou le problème arrive
- J'ai réussi à créer une liste déroulante qui regroupe mes données d'une colonne et par la suite pouvoir recherché grâce à mon bouton validé.
- Depuis j'ai voulu ajouté plusieurs listes déroulantes qui me permettrais de rechercher en fonction d'autres critères (correspondant à des colonnes dans ma feuille de données), maintenant le soucis est que je n'arrive plus à ouvrir mon formulaire. Et de plus mes listes déroulantes que j'ai ajouté ne fonctionnent pas...
Un message s'affiche m'indiquant : ERREUR DE COMPILATION : Argument non facultatif
Mais je sais aussi que d'autre erreur s'afficheront après car je ne suis un pro en langage VBA malheureusement.
Je viens donc vers vous que vous puissiez m'aidé a résoudre ce problème et à créer mon formulaire.
ATTENTION : JE DEMANDE JUSTE UN COUP DE MAIN ET POUVOIR M'AIGUILLER EN FONCTION DE MES DEMANDES ET MES ERREUR, ET J’ESPÈRE AUSSI QUE VOS EXPLICATION POURRONS M'AIDER A COMPRENDRE MES ERREUR ET A CRÉER MON FICHIER.
Je vous joint mon fichier excel en espérant que vous puissiez m'aidé s'il vous plait.
Je vous remercie par avance.
Cordialement
Maxime
Bonjour,
Un message s'affiche m'indiquant : ERREUR DE COMPILATION : Argument non facultatif
Tu as créé une procédure (initialisecombo) qui demande deux arguments (i et j), ce message est normal parce que tu ne les lui passes pas !
Ton appel dans "Initialize" du Formulaire :
Private Sub UserForm_Initialize()
Label27.Caption = "mode : création"
initialisecombo
'End With <--- Attention, à supprimer !
End Subtu appelles initialisecombo mais il te faut donner une valeur à i et j. Pour t'en rendre compte, place ton curseur juste après initialisecombo et appuis sur espace, tu vas avoir un petit commentaire s'afficher en jaune clair avec i en gras
Bien, maintenant, les arguments demandés ne servent à rien donc, tu peux les supprimer et ta proc devient :
Sub initialisecombo()
Dim i As Integer '<--- si i existe dans un argument, il ne peut être déclaré une seconde fois sous le même nom !
With ComboBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "50;0"
End With
With ComboBox2
.Clear
.ColumnCount = 2
.ColumnWidths = "50;0"
End With
With Sheets("feuil2")
For i = 2 To .Range("a65536").End(xlUp).Row
ComboBox1.AddItem
ComboBox1.List(ComboBox1.ListCount - 1, 0) = .Cells(i, 1) & " " & .Cells(i, 2)
ComboBox1.List(ComboBox1.ListCount - 1, 1) = i
Next i
End With
End SubAttention à tes déclarations de variables, tu ne peux pas avoir dans une même procédure deux variables du même nom !
Si dans un argument tu déclares une variable "i", tu ne peux pas en déclarer une seconde dans la procédure qui porte le même nom "Dim i As Integer"
C'est aussi par ses erreurs qu'on apprend et nous avons tous commencés à zéro donc aucun soucis !
Reviens sans problème pour la suite
Bonjour Theze,
Je te remercie de m'avoir répondu et pour les explications que tu m'a transmise, je vais essayer de modifié la programmation VBA et je te tiens au courant dans la journée.