Macro pour aligner des données à droite

21alignement.xlsx (13.16 Ko)

Bonjour,

Dans le cadre de mon taff, je récupère un tableau où 12 de ses colonnes traitent des Unités Organisationnelles de la personne allant de celle la plus proche à la plus éloigné en remontant la hiérarchie des services.

Malheureusement je remonte à la source par la base de ce fait tous les employés ne sont pas au même niveau depuis la boite mère les données étant alignées à gauche.

J'ai essayé sans succès de les aligner à droite pour que je puisse les exploiter en passant de cette situation :

IT.............| DOSI.....| Direction Générale...| Boite........................| Boite mère |...................|...................|

SFS.........| SF..........| Boite.........................| Boite mère............. |....................|....................|...................|

CGT-SFT | SFT-DR | Direction Régionale | Direction Générale | Boite..........| Boite mère |...................|

A celle ci :

.............|.................| IT.........| DOSI..........................| Direction Générale | Boite..........| Boite mère |

.............|.................|.............| SFS..........................| SF.............................| Boite..........| Boite mère |

.............| CGT-SFT | SFT-DR | Direction Régionale | Direction Générale | Boite..........| Boite mère |

Sachant que ça doit le faire pour toutes les lignes de mon excel excepté la première

Mais je n'ai fait qu'échouer, ne sachant pas comment réellement aborder le problème

En vous remerciant pour toute aide ou conseil

Bonsoir,

un fichier pour essai :

38alignement.xlsm (19.36 Ko)

Mais attention ! j'ai "triché" : en effet les cellules vides ne sont pas considérées comme vide par le code que je vous joints.

Il m'a fallu "supprimer" les cellules vides de chaque ligne...

Pourtant il n'y a rien dans les cellules... Ce doit être un "reste" de votre récupération de données...

Mais c'est un début de solution...

@ bientôt

LouReeD

Merci beaucoup,

ça marche bien en effet dans le cas où les cellules sont vides mais le logiciel que j'utilise va forcément sortir les données avec les cellules qui semblent fantômes ,

Je n'arrive pas à trouver la valeur qu'elle contiennent, me voilà confronté à un autre problème.

En tout cas merci pour la macro, elle me sort déjà d'une impasse

Bonsoir,

modification du code pour "tourner" sur les cellules vident afin de savoir si elles sont fantômes ou pas :

Fantôme = cellule NON vide ET une longueur de caractère à 0

Non Fantôme = cellule NON vide et une longueur de caractère supérieur à 0

J'en ai profité pour commenter le code

le fichier d'origine avec les cellules fantômes et là ça marche "sans tricher" !

@ bientôt

LouReeD

J'ai moi même bidouillé le code de mon côté pour le faire fonctionner,

Ta base m'a bien aidé à me remettre dans le VBA, ça reviens peu à peu ahah

En tout cas merci pour le temps passé sur mon problème, ça m'a sorti de la galère et permis de finir à temps

 Sub Aligement()
 Dim col_max As Integer, col_scroll As Integer, ligne As Long, vide As String, cnt As Integer
    ligne = 2
    Do
        If Cells(ligne, 1).Value = "" Then Exit Do
        If Cells(ligne, 4) <> "" Then
        cnt = 1
            For i = 25 To 15
                If Cells(ligne, i) <> "" Then
                    cnt = cnt + 1
                End If
            Next
            col_max = 3 + cnt
            col_scroll = 15 - col_max
            Range(Cells(ligne, 4), Cells(ligne, col_max)).Cut _
                Destination:=Range(Cells(ligne, 4 + col_scroll), Cells(ligne, 15))
        End If

        ligne = ligne + 1
    Loop
    End Sub
    

Bonsoir,

pas de soucis pour le temps, si j'en ai j'en donne

Merci pour vos remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "macro aligner donnees droite"