Modifier une ligne via userform

Bonjour

Débutant, J'ai fais en faisant du copier coller, sans réellement comprendre.

Quel serait le code vba pour modifier une ligne via userform?

Comment faire pour envoyer mon fichier, pour que vous me compreniez mieux?

J'ai mis ça, mais au bout de la 15000 lignes, elle bug:

Private Sub Code_Articles_Change()

'With Sheets("Data")

Code_Articles.MatchRequired = True

D = Application.VLookup(Code_Articles.Value, Worksheets("Data").Range("A1:k30000"), 2, False)

If IsError(D) Then

Exit Sub

'MsgBox "Valeur inexistante"

ElseIf Code_Articles.Value <> -1 Then

'Affiche les...

Désignation.Value = Application.VLookup(Code_Articles.Value, Worksheets("Data").Range("A1:k30000"), 3, False)

Famille.Value = Application.VLookup(Code_Articles.Value, Worksheets("Data").Range("A1:k30000"), 4, False)

Prixttc.Value = Application.VLookup(Code_Articles.Value, Worksheets("Data").Range("A1:k30000"), 8, False)

Qté.Value = Application.VLookup(Code_Articles.Value, Worksheets("Data").Range("A1:k30000"), 9, False)

End If

If Code_Articles <> "" Then

Lign = Code_Articles.ListIndex + 2

Qté_physique = Range("L" & Lign)

[/u]

Else

Qté_physique = ""

Txt_date = ""

End If

'End With

Bonjour et bienvenue sur le forum

Joins ton fichier et on verra ce qu'on peut faire.

S'il est trop gros (> 300 k) passe par http://www.cjoint.com

Bye !

https://www.cjoint.com/c/ELctfxqWfQ1

Exemple: En appuyant sur bouton code, en tapant le code "ZD10P", en entrant la Qté physique, et que je valide,elle ne s'affiche pas sur la bonne ligne.

idem pour codebarre et désignation.

Bonsoir

Si un décalage existe c'est que dans ta base de donnée il y a des doublons en colonne A

Que faut-il en faire ?

A suivre

Bonjour,

En supprimant tous les "XXXXXXX" dans la colonne désignation ( Articles non facturables, soit plus de 5000 articles),

ça à l'air de marcher, était ce du nombre > de lignes 23000, était ce parce qu'il y avait des doublons dans la colonne A, j'en sais rien du tout .....

J'ai l'inventaire le 28/12/2015 si vous pouviez vérifier mon code, pour que ça ne bug pas ce jour là ou l'améliorer pour que ca soit plus rapide ou mieux...

A plus

Bonjour

Ce décalage était dû aux doublons en colonne A

Ces doublons étaient prévus à la vue de ton code

      If .Cells(i, 1) <> .Cells(i - 1, 1) Then

Mais maintenant si tu dis que tu les as supprimés il ne devrait pas avoir de problème

Bonne continuation

Encore moi

Ce qui serait chouette également, c'est que lorsque je saisie un article et que je me rend compte que cette article (qté physique)

a déjà été rentrer, et que je rajoute à la quantité existante qu'elle puisse modifier également la ligne correspondante dans la feuille Inventaire.

Merci, à plus

Bonjour

Je n'ai pas trop cherché (ni testé)

Modifie la ligne

Private Sub Valider1_Click()

    If Code_Articles <> "" Then
        Lign = Code_Articles.ListIndex + 2
            Range("L" & Lign) = Range("L" & Lign) + Qté_physique.Value
            Range("M" & Lign) = Txt_date

Bonjour,

Excuse moi, je me suis mal fait comprendre. En Fait, j'ai deux feuilles "Data" et "Inventaire", en validant le formulaire userform, ces données sont recopiés dans 'Data' mais aussi dans 'Inventaire' à la suite, c'est dans cette feuille 'inventaire' que je souhaite modifier la nouvelle Qté physique, ce qui m'éviterai d'avoir des doublons avec des stock différent.

Merci

Bonjour

A tester

Private Sub Valider1_Click()
Dim Cel As Range

  If Code_Articles <> "" Then
    Lign = Code_Articles.ListIndex + 2
    Range("L" & Lign) = Qté_physique
    Range("M" & Lign) = Txt_date
    'Range("L" & Lign) = TextAdresse

    With Sheets("Inventaire")
      Set Cel = .Columns("B").Find(what:=Me.Code_Articles, LookIn:=xlValues, lookat:=xlWhole)
      If Not Cel Is Nothing Then
        ligne = Cel.Row
      Else
        ligne = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
      End If
      'Applique le même format date dans le dossier d'archive
      .Cells(ligne, 1) = Txt_date
      .Cells(ligne, 2) = Code_Articles
      .Cells(ligne, 3) = Désignation
      .Cells(ligne, 4) = Famille
      .Cells(ligne, 5) = Prixttc
      .Cells(ligne, 6) = .Cells(ligne, 6) + Qté_physique.Value
    End With
  End If
  Unload Me
End Sub

Bonjour,

Super

Mauruuru roa

qui veut dire merci bcp.

Rechercher des sujets similaires à "modifier ligne via userform"