XL 2016 VBA Déplacer une cellule sous conditions.

Deadrak

XLDnaute Nouveau
Hello tout le monde.

Voilà, j'ai importé un classeur avec une saisie assez... Illisible.

Pour rendre ça un peu plus clair, je cherche une macro qui me permet de déplacer la valeur d'une cellule sur dans sa voisine de gauche SI sa voisine de droite est vide!!

Voilà ce que j'ai :

A1=0 B1=1 C1=0

Et je voudrais arriver à ce résultat:

A1=1 B1=0 C1=0

Mais si C1=1, alors B1 reste toujours B1=0.

Et effectuer cette opération sur toutes les lignes de la feuille active.

J'espère avoir été assez clair ahah.

En pièce jointe, un petit exemple de mon soucis.

Je vous remercie d'avance.

Deadrak
 

Pièces jointes

  • Exemple_probleme.xlsx
    8.7 KB · Affichages: 6
Solution
Bonjour le fil, Deadrak, fanfan38

Une autre solution VBA
(fonctionne sur le fichier exemple)
VB:
Sub Tri_Horizontal()
Dim Rng As Range
Set Rng = Selection
For Each c In Rng.Rows
If Application.CountA(c) = 1 Then
c.Sort Key1:=c.Cells(1, 1), Order1:=xlAscending, Header:=xlNo, Orientation:=xlSortRows
End If
Next c
Rng.Columns.AutoFit 'facultatif
End Sub
NB: Il faudrait un fichier exemple plus proche de la réalité pour adapter ou pas la macro ci-dessus.

PS: Il faut sélectionner ici dans l'exemple la plage A3:C12 avant de lancer la macro.

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Deadrak, fanfan38

Une autre solution VBA
(fonctionne sur le fichier exemple)
VB:
Sub Tri_Horizontal()
Dim Rng As Range
Set Rng = Selection
For Each c In Rng.Rows
If Application.CountA(c) = 1 Then
c.Sort Key1:=c.Cells(1, 1), Order1:=xlAscending, Header:=xlNo, Orientation:=xlSortRows
End If
Next c
Rng.Columns.AutoFit 'facultatif
End Sub
NB: Il faudrait un fichier exemple plus proche de la réalité pour adapter ou pas la macro ci-dessus.

PS: Il faut sélectionner ici dans l'exemple la plage A3:C12 avant de lancer la macro.
 

Discussions similaires

Haut Bas