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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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.
 
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.
 
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

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 !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour