Je suis entrain de faire un fichier de gestion de stock mais je n'arrive pas à trouver comment faire la chose suivante :
par exemple : Si dans A1=0, A2=20 et A3=30 je voudrais que si A1=0, le contenu des cellule A2 et A3 se déplace d'une case à gauche pour que nous avions A1=20, A2=30 et A3=vide.
Bonjour Dylan67, le forum,
Ta demande est bizarre car tu veux déplacer les résultats de la colonne A sur la gauche alors que la colonne A est déjà au maximum vers la gauche.
Si la colonne de départ était B, alors on pourrait déplacer vers A.
Un fichier exemple serait le bienvenu.
Alors on décale vers le haut.
Comment s'effectue ce décalage ?
Par un bouton qui active une macro ? Par le fait de renseigner une cellule en colonnes A,B ou C ?
Re,
Donc on décale toutes les valeurs de la colonne E à la fin du tableau vers la gauche si la veleur de colonne E est nulle ?
( rien à voir avec A1, B1, C1 )
Un essaie en PJ.
Le décalage s'effectue automatiquement si on efface la valeur qui est en colonne E, avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E1:E100")) Is Nothing Then
Application.ScreenUpdating = False
If Target = 0 Then
For C = 6 To 10
Cells(Target.Row, C - 1) = Cells(Target.Row, C)
Next C
Cells(Target.Row, 10) = ""
End If
End If
Fin:
Application.ScreenUpdating = True
End Sub
Si la valeur entrée en colonne E est différente de 0 alors on ne fait rien.
Re,
Donc on décale toutes les valeurs de la colonne E à la fin du tableau vers la gauche si la veleur de colonne E est nulle ?
( rien à voir avec A1, B1, C1 )
Un essaie en PJ.
Le décalage s'effectue automatiquement si on efface la valeur qui est en colonne E, avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E1:E100")) Is Nothing Then
Application.ScreenUpdating = False
If Target = 0 Then
For C = 6 To 10
Cells(Target.Row, C - 1) = Cells(Target.Row, C)
Next C
Cells(Target.Row, 10) = ""
End If
End If
Fin:
Application.ScreenUpdating = True
End Sub
Si la valeur entrée en colonne E est différente de 0 alors on ne fait rien.