Aller a la ligne pour le prochain article

Bonsoir à tous,

J'aurai besoin de votre aide pour ce qui suit;

Je copie par double click une cellule qui s'affiche ensuite dans un tableau. Tout va bien . Mais lorsque je veux copier le prochain article il ne l'insère pas dans la cellule en dessous du premier mais dans la cellule du premier. Voici la macro en question. Le départ dans mon tableau est F6

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' Ne fonctionne que si les produits sont triés en colonne B
If Target.Count = 1 Then
If Not Intersect(Target, [D1:D1677]) Is Nothing Then

'trouver, en colonne B, la position de la 1re occurence du produit
ligneDépart = Application.Match(Target, [D1:D1677], 0)
[F6] = Target

End If
End If
Cancel = True
End Sub

Auriez-vous une solution pour moi.

Merci d'avance à vous.

Cordialement RUBIS5460

Bonjour,

Une éventualité ...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' Ne fonctionne que si les produits sont triés en colonne B
   If Target.Count = 1 Then
      If Not Intersect(Target, [D1:D1677]) Is Nothing Then

         'trouver, en colonne B, la position de la 1re occurence du produit
         ligneDépart = Application.Match(Target, [D1:D1677], 0)
''         [F6] = Target
         dl = Cells(Rows.Count, "F").End(xlUp).Row + 1
         If dl < 6 Then dl = 6
         Cells(dl, "F").Value = Target
      End If
   End If
   Cancel = True
End Sub

ric

Bonjour Ric,

désole de ne répondre que maintenant mais le travail d'abords.

Merci pour ta macro modifiéecela fonctionne.

Par contre, j'ai un autre petit soucis.

Dans le fichier en pièce jointe j'aimerai faire en sorte que mon stock réel se mette à jour une fois les quantités sorties du stock grâce à la colonne "sortie" sur la "Feuil2", et lorsque je remets à zéro cette colonne.

De même pour la colonne "entrée" de la "Feuil2", j'aimerai que lorsque j'ai rempli cette colonne "entrée" et que je la remets à zéro, que mon stock réel se mette à jour.

Auriez-vous une petite idée pour la macro ?

Merci d'avance

Cordialement Rubis5460

10classeur100.xlsm (18.97 Ko)

Bonjour,

Si j'ai bien compris le besoin ...

Sub RAZSORTIE()
'
' RAZSORTIE Macro
   Dim X As Byte
   Dim So As Worksheet, Ci As Worksheet

   Set So = Worksheets("Feuil2")
   Set Ci = Worksheets("Feuil1")

   Application.ScreenUpdating = False

   For X = 2 To 23
      If So.Range("C" & X) <> "" Then Ci.Range("C" & X).Value = Ci.Range("C" & X).Value - So.Range("C" & X).Value
   Next X
   So.Range("C2:C23").ClearContents

   Set So = Nothing
   Set Ci = Nothing
End Sub

Sub RAZENTREE()
'
' RAZENTREE Macro
   Dim X As Byte
   Dim So As Worksheet, Ci As Worksheet

   Set So = Worksheets("Feuil2")
   Set Ci = Worksheets("Feuil1")

   Application.ScreenUpdating = False

   For X = 2 To 23
      If So.Range("E" & X) <> "" Then Ci.Range("C" & X).Value = Ci.Range("C" & X).Value + So.Range("E" & X).Value
   Next X
   So.Range("E2:E23").ClearContents

   Set So = Nothing
   Set Ci = Nothing
End Sub

ric

Bonjour Ric,

cela fonctionne très bien sur ma feuille essai. Mais sur mon classeur final cela ne fonctionne plus, alors je pense que j'ai fais une erreur quelque part. Explication;

Sur mon classeur final La Feuil2 démarre chez moi en G6 et peut aller jusqu'a G1685. Elle se nomme dans mon classeur final "SORTIE DU JOUR"

La feuil1 est en réalité en colonne F et va de F2 à F1685. Elle se nomme dans mon classeur final "STOCK"

Je n'arrive pas à voir l'erreur ! Pourriez vous me changer cela avec mes données ci-dessus SVP

Rubis5460

Bonjour,

Un nouvel essai avec les nouvelles restrictions ...

Sub RAZSORTIE()
'
' RAZSORTIE Macro
   Dim X As Integer
   Dim So As Worksheet, Ci As Worksheet

   Set So = Worksheets("SORTIE DU JOUR")
   Set Ci = Worksheets("STOCK")

   Application.ScreenUpdating = False

   For X = 2 To 1685
      If So.Range("E" & X + 4) <> "" Then Ci.Range("F" & X).Value = Ci.Range("F" & X).Value - So.Range("E" & X + 4).Value
   Next X
   So.Range("E2:E1685").ClearContents

   Set So = Nothing
   Set Ci = Nothing
End Sub

Sub RAZENTREE()
'
' RAZENTREE Macro
   Dim X As Integer
   Dim So As Worksheet, Ci As Worksheet

   Set So = Worksheets("SORTIE DU JOUR")
   Set Ci = Worksheets("STOCK")

   Application.ScreenUpdating = False

   For X = 2 To 1685
      If So.Range("G" & X + 4) <> "" Then Ci.Range("F" & X).Value = Ci.Range("F" & X).Value + So.Range("G" & X + 4).Value
   Next X
   So.Range("G6:G1685").ClearContents

   Set So = Nothing
   Set Ci = Nothing
End Sub

ric

Re,

Merci Ri, tout fonctionne . Très sympa de votre part.

Bonne journée

Cordialement Rubis5460

ric

Bonjour Ric,

Désolé pour la dernière fois j'avais pas mis le "r" . Oups !

Pour revenir à notre dernier échange, j'avais essayé vite fait lundi ton code VBA cela avait fonctionné sur la première ligne de la feuille "SORTIE" mais à partir de la deuxième ligne il me mets également la première ligne de mon stock à jour !

Donc, même si je fais une sortie de 15 articles par exemple, il me mettra toujours la première ligne de mon stock à jour, même si c'est un autre article.

Pourrai tu revoir STP le code et me dire s'il contient une erreur.

Je te Remercie d'avance.

A+

Rubis5460

Bonjour,

Le code fonctionne bien > à part la plage supprimée de sortie (corrigé) ...

Sinon, j'ai effectué un pas à pas sur les Entrées et sur les Sorties > ils fonctionnent bien ici ...

ric

Bonjour Ric

Merci je regarderai ça ce soir et je reviendrai vers toi pour les nouvelles.

bonne après-midi.

Rubis5460

Re Ric,

Alors j'ai essayé sur mon grand dossier mais cela ne fonctione pas. Je te mets le classeur avec une partie modele de mon stock et tu verras de toi même. A moins que je fais une erreur quelque part ! Je ne sais pas !

Merci de bien vouloir vérifier.

Cordialement RUBIS5460

Bonjour,

un essai ...

ric

Bonjour Ric,

Je suis vraiment désolé, mais je n'arrive poas à faire fonctionner cela sur le vrai classeur. je le laisse en pièce jointe.

Certes, deux colones ont été supprimées mais j'ai changé les lettres et cela devrait aller, mais non !!

Tu verra sur les feuilles : "Sortie du jour, commande et entrée stock" il faut procéder comme suit;

en cellule B2 il faut taper les premières lettres de l'article recherché, ensuite taper OK.

la recherche s'affiche en colonne D, ensuite on choisit l'article voulu et on double click.

l'article s'affichera dans le tableau à droite.

Sauf qu' il mets uniquement à jour les deux premières lignes dans mon stock, même si je sors 30 articles !

Cela reste pareil sur les 3 feuilles( sortie, commande et entrée)

Je ne sais plus !!

A toi de voir quelle erreur se trouve dans ce code.

Merci d'avance Ric.

A+

8gestion-stock.xlsm (234.80 Ko)
Rechercher des sujets similaires à "aller ligne prochain article"