Incompatibilité

Bonjour à tous,

J'utilise souvent ce type de code et aujourd'hui je suis confronté à un bug que j'ai beau chercher le pourquoi je butte dessus.

voici le code :

Private Sub CommandButton2_Click()
'La rectication
Dim Ligne As Long
'Quand je suis en édition d'une fiche je voudrai pouvoir rectifier des textbox
'Sachant que le nom ne change pas ainsi que le code.
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox1 + 3 ' Le 1er élément (numéro 0) de la ComboBox est sur la ligne 3
 With Sheets("Article")
' Rectifie les cellules correspondantes
'.Range("b" & Ligne) = Me.ComboBox1     '  menu
    .Range("a" & Ligne) = Me.TextBox2     ' Code menu
    .Range("j" & Ligne) = Me.TextBox3     ' PU Menu
  End With
End Sub

A l’exécution il emet le message d'erreur "incompatibilité de type"

Quelqu'un pourrait m'aider à détecter l'erreur.

Merci d'avance de votre aide toujours si utile.

@+

Amicalement

Noel

Bonjour,

modifie peut être cette instruction de la sorte :

Ligne = Me.ComboBox1.ListIndex  + 3

bonne journée

@+

Bonjour à tous

Bonjour Pierrot,

Apparemment la correction fonctionne mais je ne saurai te dire immédiatement car j'ai un autre souci avec ce code :

[code]Private Sub combobox1_Change()

Dim lig As Long

With Sheets("Article")

lig = .Range("a3:a" & .Range("a" & Rows.Count).End(xlUp).Row).Find(ComboBox1, SearchOrder:=xlByColumns).Row

TextBox3 = Format(Cells(lig, 10), "##.#,0") 'PU 2 chiffres après la virgule

ComboBox1 = Cells(lig, 2)

TextBox2 = Cells(lig, 1)

End With

End Sub[/code

Qui me stipule: Variable objet ou variable with non définie].

Et pourtant quand je vérifie mes codes ça à l'air d'être bon.

Je dois avoir un souci dans toute la procédure. Tu me dis si c'est le cas je mettrai toute la procédure.

Je ne peux pas mettre sur le site le projet car il est trop important en poids.

@+

Amicalement

Noel

Bonjour,

peut être en modifiant comme suit :

Option Explicit
Private Sub ComboBox1_Click()
Dim lig As Long, x As Range
With Sheets("Article")
    Set x = .Range("a3:a" & .Range("a" & Rows.Count).End(xlUp).Row).Find(ComboBox1, SearchOrder:=xlByColumns)
    If Not x Is Nothing Then lig = x.Row Else Exit Sub
    TextBox3 = Format(.Cells(lig, 10), "##.#,0") 'PU 2 chiffres après la virgule
    ComboBox1 = .Cells(lig, 2)
    TextBox2 = .Cells(lig, 1)
End With
End Sub

A noter, rarement besoin du fichier original, seulement un tout petit fichier, sans données confidentielles et ne représentant que le problème posé est nécessaire...

bonne journée

@+

Re

Je ne sais pas ce que j'ai fait mais cela s'est remis à fonctionner mais sans l'option explicit.

Car dans initialize j'ai for I qui posait problème. Pour le moment j'ai pu régler le problème

Merci de ton aide.

@+

Amicalement

Noel

Rechercher des sujets similaires à "incompatibilite"