Bonjour,
Je cherche un algo permettant de remonter les valeurs d'une colonne si il y a des cases vides .
Pour l'instant j'ai réussi à coder un algo qui fonctionne. Son principe c'est de relever les valeurs de la colonnes et de les marquer à la colonne 30. Après il met cette nouvelle colonne à la place et enlève les valeurs dont on ne veut pas sur la colonne d'origine.
Voici le code :
i = 6
'On parcourt la colonne dont on veut remonter les valeurs
For j = 6 To O2.Range("A65000").End(xlUp).Row
'Si la case n'est pas vide on va stocker la valeur en colonne 30
If O2.Cells(j, 1).Value <> "" Then
'J'agit sur 3 colonnes en même temps d'ou le 30/31/32
'on Stocke la valeur en colonne 30
O2.Cells(i, 30).Value = O2.Cells(j, 1).Value
O2.Cells(i, 31).Value = O2.Cells(j, 2).Value
O2.Cells(i, 32).Value = O2.Cells(j, 3).Value
'On met à zéro la valeur qu'on vient de stocker
O2.Cells(j, 1).Value = ""
O2.Cells(j, 2).Value = ""
O2.Cells(j, 3).Value = ""
i = i + 1
End If
Next
'on regarde la taille de la nouvelle colonne
While O2.Cells(i, 30).Value <> ""
i = i + 1
Wend
'on copie colle le tableau précédemment créée en 30 pour le mettre sur la colonne dont on voulait remettre les valeurs
For j = 6 To i
O2.Cells(j, 1).Value = O2.Cells(j, 30).Value
O2.Cells(j, 2).Value = O2.Cells(j, 31).Value
O2.Cells(j, 3).Value = O2.Cells(j, 32).Value
'on remet à zéro les valeurs des colonnes (en colonne 30)
O2.Cells(j, 30).Value = ""
O2.Cells(j, 31).Value = ""
O2.Cells(j, 32).Value = ""
Next
'on nettoie les valeurs de la première colonne qui ne viennent pas du tableau stocké en colonne 30
For j = i + 1 To O2.Range("A65000").End(xlUp).Row
O2.Cells(j, 1).Value = ""
O2.Cells(j, 2).Value = ""
O2.Cells(j, 3).Value = ""
next
Si vous avez une autre proposition pour remonter les valeurs ou un moyen de stocker mes valeurs de façon masqué sans passer par la colonne 30 je suis preneur! Merci et bonne journée!