Addition permanente

Steelson,

malheureusement j'ai toujours le souci,

ligne 2 a 5 j'ecris la valeur colonne A et il passe en B mais il a effacé la valeur en A ???????

a partir de la ligne 6 cela a l'air de fonctionner

de plus a partir de ligne 6 quand tu fais entré il passe tout le dessus de la colonne A en bleu et il reste comme ca

pas de passage en B

OK, il y a une ligne en trop qui est plage.select à supprimer

Pour le reste, cela fonctionne si on ajoute seulement en bout de colonne A et non au milieu; ceci respecte aussi la logique qui était de passer à la ligne suivante.

Maintenant je vais réfléchir pour autoriser une modification au milieu. Mais ce n'est pas si simple car le "clone" peut être avant ou après ! Or il me semblait que les références étaient triées.

Steelson

mon probleme perdure

en plus pour rien arranger j'ai essayer ce que tu as dis de supprimer 'plage select' et la j'ai aggraver le probleme

je ne passe plus de A a B puis A ligne suivante

je passe de A a A ligne suivante

pour le tri des ref je le fais en fin de saisi avec la touche A-Z

je te cache pas qu'un bouton pour faire cela en une seule opération serait le bienvenue

je remets le tableau derniere version

encore merci de ton aide

Je suis désolé mais je ne comprends pas.

S'il n'y a pas de cases vides depuis le début de la colonne A, cela fonctionne chez moi !

je te cache pas qu'un bouton pour faire cela en une seule opération serait le bienvenu

c'est à dire ? on entre la référence, puis la quantité et enfin on valide ? et ensuite la macro recherche si la référence existe déjà + cumule les valeurs en colonne G + trie les références ... c'est une autre logique, cela revient même à faire un userform et là je ne suis pas le spécialiste

Steelson

merci de ta patience

laisse tomber le bouton c 'est pas grave du tout

en revanche je remet le tableau

si tu essayes de remplir la ligne 2 en effaçant le contenu comme je viens de le faire je ne peux pas réécrire quelque chose

la valeur disparait et ne s'inscrit jamais et si je tape 10 ref la j'ai tjrs rien

en plus j'ai fais la connerie de supprimer la ligne que tu m'as dit mais ca doit pas etre bon ce que j'ai fait

je n'ai plus le passage auto col A a B puis col A ligne suivante.

désolé c'est un peu compliqué d'expliquer mais c'est pas loin d'etre bon

un poil de correction dans ce cas ...

Set plage = Range("A2:A" & Target.Row - 1)

a été remplacé par

Set plage = Range("A1:A" & Target.Row - 1)
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cherche As Range, plage As Range

    If Target.CountLarge > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Target.Row = 1 Then Exit Sub

    If Not Intersect(Target, Columns("B")) Is Nothing Then
        Target.Offset(, 5).Value = Target.Offset(, 5).Value + Target.Value
        Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
    ElseIf Not Intersect(Target, Columns("A")) Is Nothing Then
        Set plage = Range("A1:A" & Target.Row - 1)
        Set cherche = plage.Find(Target.Value)
        If Not cherche Is Nothing Then
            Application.EnableEvents = False
            Application.Undo
            cherche.Offset(0, 1) = ""
            Application.EnableEvents = True
            cherche.Offset(0, 1).Select
        End If
    End If

End Sub

Attention : la recherche du doublon se fait avant la valeur introduite

J'ajouterai un test si la référence existe déjà après celle introduite

ok j'ai plus de problèmes ligne 2 a 5 je peux remplir ligne 2 colonne A mais je passe directement en ligne 3 col A a la place de passer en ligne 2 col B et quand je rempli col B pas d'action en col G

et si j'écris une meme ref qq lignes plus bas il ne fait pas de rapprochement pour renvoi sur l'existante comme tu avais fais plus tot et qui était tres bien.

merci de ta patience Steelson

ok j'ai plus de problèmes ligne 2 a 5 je peux remplir ligne 2 colonne A mais je passe directement en ligne 3 col A a la place de passer en ligne 2 col B et quand je rempli col B pas d'action en col G

ok je comprends enfin je pense comprendre

au lieu de faire entrée après avoir tapé la référence, peux-tu faire tabulation ?

sinon je regarde comment faire !

et si j'écris une meme ref qq lignes plus bas il ne fait pas de rapprochement pour renvoi sur l'existante comme tu avais fais plus tot et qui était tres bien.

ben, heu ... si !

1- j'ai trouvé une astuce pour que après avoir entré une référence, même en tapant sur entrée, le curseur se positionne sur la qualtité à rentrer

2- j'ai aussi mis une recherche non seulement en amont mais aussi en aval de la référence entrée

Bon le code se complexifie

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cherche As Range, plage As Range

    If Target.CountLarge > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Target.Row = 1 Then Exit Sub

    ' modification en colonne B
    If Not Intersect(Target, Columns("B")) Is Nothing Then
        Target.Offset(, 5).Value = Target.Offset(, 5).Value + Target.Value
        Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select

    ' modificatoin en colonne A
    ElseIf Not Intersect(Target, Columns("A")) Is Nothing Then

        ' recherche en amont s'il y a doublon
        Set plage = Range("A1:A" & Target.Row - 1)
        Set cherche = plage.Find(Target.Value)
        If Not cherche Is Nothing Then
            Application.EnableEvents = False
            Application.Undo
            cherche.Offset(0, 1) = ""
            Application.EnableEvents = True
            cherche.Offset(0, 1).Select
        Else

            ' recherche an aval s'il y a doublon
            Set plage = Range("A" & Target.Row + 1 & ":A" & Rows.Count)
            Set cherche = plage.Find(Target.Value)
            If Not cherche Is Nothing Then
                Application.EnableEvents = False
                Application.Undo
                cherche.Offset(0, 1) = ""
                Application.EnableEvents = True
                cherche.Offset(0, 1).Select

            Else
                Target.Offset(0, 1).Select

            End If

        End If

    End If

End Sub

oui c'est ca je saisis la valeur en A et je fais entrée par contre je trouve ca plus pratique que tabule

mais tu as raison seulement si je tabule il faut passer col C col D col E col F

par contre si je mets une valeur en B pas d'addition en G???

du coup je te resume ma façon de remplir

je rentre une ref en A je fais entrée ca passe en B je remplis une valeur ca incrémente G et ca passe en A ligne suivante

si je rentre une ref existante il se recale automatiquement sur la ref déjà existante en B pour rentrée la nouvelle valeur

tu me l'avais mis en place plus tot et c'était top

Je viens de re-simplifier le code

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cherche As Range, plage As Range

    If Target.CountLarge > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Target.Row = 1 Then Exit Sub

    ' modification en colonne B
    If Not Intersect(Target, Columns("B")) Is Nothing Then
        Target.Offset(, 5).Value = Target.Offset(, 5).Value + Target.Value
        Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select

    ' modificatoin en colonne A
    ElseIf Not Intersect(Target, Columns("A")) Is Nothing Then

        Set plage = Union(Range("A1:A" & Target.Row - 1), Range("A" & Target.Row + 1 & ":A" & Rows.Count))
        ' recherche s'il y a doublon
        Set cherche = plage.Find(Target.Value)
        If Not cherche Is Nothing Then
            Application.EnableEvents = False
            Application.Undo
            cherche.Offset(0, 1) = ""
            Application.EnableEvents = True
            cherche.Offset(0, 1).Select
        Else
            Target.Offset(0, 1).Select
        End If

    End If

End Sub

Chez moi, depuis toujours la valeur en B incrémente la colonne G !!

bonjour Steelson,

merci de t'acharner sur mon affaire

je viens d'essayer la dernière version c'est parfait dans le fonctionnement avec que la touche entrée

le dernier le repositionnement auto des que la ref est la meme parfait aussi

le dernier hic c'est que quand je reclasse du plus petit au plus grand les valeurs en G ne se déplacent pas avec les ref

sinon tres beau boulot

le dernier hic c'est que quand je reclasse du plus petit au plus grand les valeurs en G ne se déplacent pas avec les ref

s'il n'y a pas de lignes vierges en ligne 2 tout est bien reclassé. Là je ne peux pas agir autrement.

Bon, je vais jeter un oeil pour trier quand une valeur dans B aura été introduite ... ce qui doit répondre aussi à une de tes anciennes demandes.

Bonjour Steelson

ca fonctionne comme prevu et j'ai trouvé pour le classement

Merci pour ton aide precieuse

Rechercher des sujets similaires à "addition permanente"