Microsoft 365 Erreur de code

Marvin57

XLDnaute Occasionnel
Bonjour à toutes et à tous,

alors avant de préparer un fichier modèle ( ce qui va prendre pas mal de temps), je vous place une image de l'erreur que j'ai dans un code.

Peut-être cela suffira pour me donner un conseil ou me guider, sinon il va falloir que je prépare un modèle. Bref, voila l'erreur du code :

erreur code Marvin57.jpg


Merci d'avance à vous.

Marvin57
 
Solution
Re, bonjour Bruno,
Evidemment si vous testez Result avant de le calculer, ça va pas le faire.:)
Remplacez par :
VB:
With [Tab_1]
  test = IsError([Tab_1[ID]].Find(ListBox10, LookIn:=xlValues))
  If test = False Then MsgBox "Valeur non trouvée."
  Set Result = [Tab_1[ID]].Find(ListBox10, LookIn:=xlValues)
  position = Result.Row - .Row + 1
  .Item(position, 6) = .Item(position, 6) - CDbl(TextBox8.Value)
End With
Le but est simplement de savoir si l'erreur vient de là. Si c'est le cas on affinera.

Car il me donne l'erreur suivante
Très intéressant. Et laquelle ? 😅

patricktoulon

XLDnaute Barbatruc
alors
ceci --> [.....] c'est l’abréviation ou plutôt l’évaluation vba d'un object range
Alors quand on me parle d'item pour un range j'ai les poils qui se hérissent
même si je l'accorde vba bien trop gentil ,te laisse aller une ligne plus loin
et visiblement chez toi VBA est moins gentil que chez @Dranreb et moi
le plus simple est de fonctionner comme il se doit soit par un range soit par un listobject
voilà c'est mon explication ;)

maintenant sans fichier difficile de te dire
comme je l'ai dis hier il y a 3 endroit ou ca peut déconner sans fichier et ma boule de cristal félée
ca va être difficile
 

Marvin57

XLDnaute Occasionnel
et même plus que 3 endroits
à vérifier que :
  1. tu a bien un tableau structuré qui s'appelle "Tab_1"
  2. qu'il y a bien une colonne "ID"
  3. qu'il n'y ai pas un espace (160) avant ou après le mot "ID" dans la cellule
  4. que ta listbox envoie bien la valeur recherchée
oui le tableau structuré est bien Tab_1
oui la colonne ID existe en première colonne de ce tableau
colonne ID.jpg

non pas d'espace avant ou après le mot ID dans la celulle du tableau Tab_1

voici le code initListbox du UserForm
VB:
Sub InitListBox()
    tblBD = [Tab_1].Value
    For i = 1 To UBound(tblBD)
        tblBD(i, 7) = Format(tblBD(i, 7), "#,##,##0.00 €")
        tblBD(i, 8) = Format(tblBD(i, 8), "#,##,##0.00 €")
        
    Next i
    Me.ListBox10.ListIndex = -1
    Me.ListBox10.List = tblBD
    Me.ListBox10.ColumnCount = 10
    Me.ListBox10.ColumnWidths = "50;100;280;50;50;50;55;55;80"
    
End Sub

voici la ligne que j'ai placée dans le code UserForm initialize

Code:
    GESTION_STOCK.ListBox10.List = Sheets("STOCK").Range("A2:J" & Sheets("STOCK").Range("A" & Rows.Count).End(xlUp).Row).Value

voila le code ListboxClick

Code:
Private Sub ListBox10_Click()
    Dim ligne As Long, Nbre As Integer, i As Byte
          
            Label19.Caption = "Saisir Qté"
            CommandButton101.Visible = False
            CommandButton5.Visible = True
            
            Set Result = [Tab_1[ID]].Find(ListBox10, LookIn:=xlValues, lookat:=xlWhole)
            position = Result.Row - [Tab_1].Row + 1
        
            Set Result = [Tab_1[ID]].Find(ListBox10, LookIn:=xlValues, lookat:=xlWhole)
            position = Application.Match(ListBox10, [Tab_1[ID]], 0)

            ComboBox10 = [Tab_1].Item(position, 2)
            Me.lblID.Caption = [Tab_1].Item(position, 1)
            For i = 1 To 3
                Controls("TextBox" & i) = [Tab_1].Item(position, i + 2)
            Next i
          
            TextBox4 = [Tab_1].Item(position, 6)
            TextBox5 = Format([Tab_1].Item(position, 7), "0.00 €")
            TextBox6 = [Tab_1].Item(position, 9)
            TextBox10 = [Tab_1].Item(position, 10)
            ComboBox2 = [Tab_1].Item(position, 4)
            ComboBox12 = [Tab_1].Item(position, 4)
            
      
            If Not IsError(Application.Match(TextBox1, [Tab_S[Désignation]], 0)) Then
            position = Application.Match(TextBox1, [Tab_S[Désignation]], 0)
            TextBox45 = [Tab_S].Item(position, 2)
            Label109.Visible = True
            TextBox45.Visible = True
            Label114.Visible = True
            Label114.ForeColor = vbRed
            Me.MultiPage1.Value = 5
            
            Else
        
            Me.ListBox10.ListIndex = -1
            Label109.Visible = False
            TextBox45.Visible = False
            Label114.Visible = False
            Label114.ForeColor = vbRed
            Me.MultiPage1.Value = 0
            End If
 
End Sub

Comme je l'avais mentionné hier, après quelques essais cela m'a l'air de fonctionner. Je dis bien pour le moment.

Après je ne suis pas calé dans tous ces codes comme vous, mais je voudrai vraiment comprendre afin de ne pas faire d'erreur inutile.

Merci en tout cas pour le temps passé sur ma demande et votre aide à vous, sylvanu et Dranreb.

Marvin57
 

Discussions similaires

Réponses
15
Affichages
513
Réponses
9
Affichages
280
Réponses
5
Affichages
234
Réponses
2
Affichages
221
Réponses
93
Affichages
2 K
Réponses
17
Affichages
515
Réponses
9
Affichages
243
Réponses
2
Affichages
226
Réponses
0
Affichages
162
Réponses
9
Affichages
748

Statistiques des forums

Discussions
313 198
Messages
2 096 135
Membres
106 504
dernier inscrit
Kannankin Maxime