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

71oi.xlsm (33.89 Ko)

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 Sub

tu 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 Sub

Attention à 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.

Rechercher des sujets similaires à "creation formulaire ajout recherche"