XL 2010 Déplacer contenu cellule si une cellule = 0

Dylan67

XLDnaute Nouveau
Bonjour à tous !

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.

Et tous ça dans un tableau de plusieurs ligne.

Pourriez-vous m'aider ?

Merci d'avance !
 
Dernière édition:

Orson83

XLDnaute Impliqué
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.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Dylan, Orson,
Si dans A1=0, A2=20 et A3=30 puis A1=20, A2=30 et A3=vide.
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 ?

Mais c'est bien vrai :
Un fichier exemple serait le bienvenu.
Ce serait quand même plus simple.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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.
 

Pièces jointes

  • exemple (1).xlsm
    19.7 KB · Affichages: 1

Dylan67

XLDnaute Nouveau
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.
Merci beuacoup !
 

Discussions similaires

Statistiques des forums

Discussions
312 164
Messages
2 085 872
Membres
103 007
dernier inscrit
salma_hayek