Décalage

*sansa* Messages postés 2 Statut Membre -  
ThauTheme Messages postés 1564 Statut Membre -
Bonjour ,
J'aurais besoin d'aide pour un programme VBA, j'aimerais décaler toute les valeurs non vide sur la gauche sans que mes colonnes soit supprimé.
J'aimerais que le mise en forme ne change pas sur mon tableau.
Le code que j'ai réalisé est le suivant:
Sauf que je supprime les colonnes et je ne sais pas comment faire.

Private Sub Decalage()
   
    Dim rPlage As Range
    Dim lgLig As Integer
    Dim lgCol As Long
            
 
    Set rPlage = Range("F56:U56")

    For lgLig = 56 To 56
    
        For lgCol = rPlage.Columns.Count To 1 Step -1
            Cells(lgLig, lgCol).Select
            If Cells(lgLig, lgCol).Value = "" Then Selection.Delete Shift:=xlToLeft
        Next lgCol
    Next lgLig
End Sub

Private Sub MàJtableau()
    Call Decalage
End Sub


Si quelqu'un peut m'aider ;)
Merci d'avance

EDIT: Ajout de la coloration syntaxique.

2 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour Sansa, bonjour le forum,

    Peut-être comme ça :

    Private Sub Macro1()
    Dim PL As Range
    Dim COL As Integer
    
    For COL = 21 To 6 Step -1
        If Cells(56, COL).Value = "" Then Cells(56, COL).Delete Shift:=xlToLeft
    Next COL
    End Sub

    0
    1. *sansa* Messages postés 2 Statut Membre
       
      Bonjour thatheme,
      Merci d'avoir pris de ton temps pour me répondre mais cela ne marche pas non plus avec ton code. Toute le mise en forme de mon tableau ce décale vers la gauche aussi .
      Bonne journée
      0
  2. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour Sansa, bonjour le forum,

    Ok je vois. Essaie comme ça alors :

    Private Sub Macro1()
    Dim PL As Range
    Dim COL As Integer
    
    For COL = 21 To 6 Step -1
        If Cells(56, COL).Value = "" Then 
            Cells(56, COL+1).Copy Cells(56, COL)
            Cells(56, COL+1).Clear
        End If
    Next COL
    End Sub


    À plus,
    ThauTheme
    0