Erreur 424 sous Excel VBA

Bonjour,

J'ai une erreur dans le programme suivant que j'ai récupéré et adapter à ma sauce.
Mais quand j'exécute le programme ce bloque et me dit : "objet requis erreur 424" !!!

J'ai beau regardé et reregarder mais je trouve pas :(

code:

Private Sub NomBgDepot_Change()
Dim Ligne As Long
Dim I As Integer
If Me.NomBgDepot.ListIndex = -1 Then Exit Sub
With Ws
Ligne = Me.NomBgDepot.ListIndex + 2
TxtDateRamassage = .Cells(Ligne, "B") -----> erreur 424
TxtDateRecette = .Cells(Ligne, "C")
TxtMontantAnnonce = .Cells(Ligne, "D")
TxtMontantReconnu = .Cells(Ligne, "E")
TxtNumEnveloppe = .Cells(Ligne, "F")
TxtDifférence = .Cells(Ligne, "G")
TxtMontantPrésumeFaux = .Cells(Ligne, "H")
TxtNomClient = .Cells(Ligne, "I")
TxtAdresse = .Cells(Ligne, "J")
TxtDomicile = .Cells(Ligne, "K")
TxtPortable = .Cells(Ligne, "L")
TxtMail = .Cells(Ligne, "M")
End With
End Sub

Merci

8 réponses

  1. Pour pouvoir utiliser une variable dans toutes les procédures d'un module, il faut la déclarer en début de module.
    Dim Ws As Worksheet
    Private Sub UserForm_Initialize()
    Set Ws = Sheets("Feuil1")
    End Sub
    Sub Private Sub NomBgDepot_Change()
    ' => Utilisation de Ws possible
    End Sub


    A+
    1
    1. Merci, j'avais oublié que avec VBA il faut à chaque fois déclarer ces variriable ou le declarer au debut du module.

      Merci tu me sauve :)

      +
      0
  2. Bonjour,

    On ne voit pas comment est définie Ws.

    A+
    0
    1. Ws est définie comme ma feuil1 dans mon classeur excel
      0
    2. Private Sub UserForm_Initialize()
      Dim J As Long

      Set Ws = Sheets("Feuil1")
      With Me.NomBgDepot
      For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
      .AddItem Ws.Range("A" & J)
      Next J
      End With

      End Sub
      0
  3. Par contre j'ai toujours une erreur, de type " Erreur de compilation, variable non définie". pour TxtDateRecette.

    TxtDateRecette corespond à un textbox qui dois afficher lecontenue d'une cellule.

    Je sais pas si tu vois l'erreur ?
    0
    1. Comme ça, non je ne vois rien !

      Je verrai peut-être mieux si tu joints un fichier.
      Tu peux utiliser https://www.cjoint.com/

      A+
      0
      1. http://www.cjoint.com/c/FDwmk4wFpJH

        voici-ci le lien

        Le problème c'est que toutes les données ne s'affichent pas dans les textbox
        0
    2. Bonjour
      tu a beaucoup de faute
      voila de le début
        Set Ws = Sheets(Feuil1.Name)
        With Ws
          Ligne = Me.NomBgDepot.ListIndex + 2
          
          TextDateRamassage = .Cells(Ligne, "B")
      

      A+
      Maurice
      0
      1. Oups je suis désolé, je ne suis pas très doué en Vba. Je travaille pas souvent sous l'univers Vb mais plutôt en SQL.

        Merci d'avoir pris du temps pour regarder :)
        0
      2. je vois pas la différence de mon code par rapport au tiens, tu ma reécris la même chose ?
        0
    3. Bonjour
      voila plein de modifes a toi de voir ci ça te va

      http://www.cjoint.com/c/FDwoGeCB7BP

      A+
      Maurice
      0
      1. Merci beaucoup pour les modifes;

        A+
        0
    4. Bonjour
      j'ais un peux jouer avec ton Userforme
      http://www.cjoint.com/c/FDxpMynW2PV

      A+
      Maurice
      0
      1. Merci beaucoup pour ces modifs ;)

        elles sont plutôt cool ^^

        A+
        0
      2. Salut Maurice

        je voudrais rajouter la supression de la ligne qui à été validé, j'ai cherché un peu mais je n'arrive pas à la supprimer ? aurais - tu une petit idée

        Merci encore :)
        0
    5. Bonjour
      il faut chercher un peux

      http://www.cjoint.com/c/FDAiE6m1Xvz

      A+
      Maurice
      0