Erreur d'exécution 1004

Bonjour,

J'ai une erreur d'exécution 1004 sur ce code et je n'arrive pas à la résoudre.

Je sais qu'elle vient de la ligne

Do While ActiveCell.Offset(l, 0).Value <> SelectFourni.Value

mais je ne comprends pas.

Private Sub SelectFourni_Change()

Sheets("Envoi").Select
Dim z As Integer
Dim S As String
Dim l As Double
Dim vlfour As String

z = 2

While Cells(z, 1) <> ""
    If Cells(z, 1) = SelectFourni Then
        MailFourni = Cells(z, 2)
    GoTo togo
    End If
z = z + 1
Wend
togo:
l = 0

Do While ActiveCell.Offset(l, 0).Value <> SelectFourni.Value
    l = l + 1
Loop
Range("TestValeur").Value = ActiveCell.Offset(l, 2).Value

vlfour = SelectFourni.Value
If Range("TestValeur").Value = "" Then
            MsgBox "Le fournisseur a un porte feuille vide"

    Exit Sub
Else
S = SelectFourni.Value
Sheets("Comm_Ach_Prod").Select
    ActiveCell.AutoFilter Field:=4, Criteria1:=S
    Columns("J:J").Sort Key1:=Range("J1"), order1:=xlDescending
End If

End Sub

Au secours

Bonjour,

Pourquoi déclarer

dim l as double

Bonjour,

Pourquoi déclarer

dim l as double

Bonjour,

J'ai mis Option Explicit au début donc VBA m'a dit de déclarer la variable l

Re,

Ok d'accord pour cela, mais pourquoi DOUBLE,

mets en integer ou long

Re,

Ok d'accord pour cela, mais pourquoi DOUBLE,

mets en integer ou long

Ah c'est une erreur de ma faute. Je viens de rectifier.

Bonjour oulema,

* mon code VBA ci-dessous est juste une piste ; je suppose que tu as 2 TextBox nommées SelectFourni et MailFourni

* ta variable vlfour est inutile, car après lui avoir donné une valeur avec vlfour = SelectFourni.Value, tu ne t'en sers pas

Private Sub SelectFourni_Change()
  Worksheets("Envoi").Select
  Dim S$, n&, z&, l&, c%, f As Byte
  n = Cells(Rows.Count, 1).End(xlUp).Row
  For z = 2 To n
    If Cells(z, 1) = SelectFourni Then
      MailFourni = Cells(z, 2): f = 1: Exit For
    End If
  Next z
  If f = 0 Then MsgBox "Fournisseur non trouvé.", 48: Exit Sub

  l = ActiveCell.Row: c = ActiveCell.Column
  Do While Cells(l, c) <> SelectFourni: l = l + 1: Loop
  Range("TestValeur") = Cells(l, c + 2)

  If Range("TestValeur") = "" Then
    MsgBox "Le fournisseur a un portefeuille vide": Exit Sub
  Else
    Sheets("Comm_Ach_Prod").Select: S = SelectFourni
    ActiveCell.AutoFilter Field:=4, Criteria1:=S
    Columns("J").Sort [J1], 2
  End If
End Sub

dhany

Rechercher des sujets similaires à "erreur execution 1004"