Bonjour à tous,
Je souhaiterais modifier la présentation d'un fichier Excel pour le rendre plus lisible et surtout filtrable.
Le fichier se présente de cette manière :
![](/proxy.php?image=http%3A%2F%2Fnsa38.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100950167413.jpg&hash=310e62c3036ee99a3c2a23de61f6502e)
Première étape, c'est supprimer les lignes vides. Que je fais rapidement en filtrant et sélectionnant les cases vides.
Deuxième étape, c'est de remplir la colonne A de façon a ce que la valeur remplisse les cases jusqu’à la prochaine case remplie
![](/proxy.php?image=http%3A%2F%2Fnsa37.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100950260822.jpg&hash=0cbe7f262217e45e7848a6c8837ab9fa)
3eme étape, c'est de faire une concaténation de la colonne A avec la colonne B et de coller les valeurs dans la colonne B. Ce qui donne pour la première ligne:
Pour les lignes suivantes :
![](/proxy.php?image=http%3A%2F%2Fnsa38.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100950526860.jpg&hash=c9cc6312742b72c2a203af422e9524b9)
Il y a un point sur lequel je souhaiterais réparer, c'est lorsqu'il s'agit d'un chiffre seul. exemple
![](/proxy.php?image=http%3A%2F%2Fnsa38.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100950430249.jpg&hash=e10a188bd6fe7b3d3f123e72d8dcd591)
dans ce cas la, il faut rajouter un 0 avant le chiffre.
L'objectif final, c'est d'arriver a ce cas de figure :
![](/proxy.php?image=http%3A%2F%2Fnsa37.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100949918268.jpg&hash=05a7cd9ccd292f685b1d4dc65635322d)
Pour y parvenir, je dois faire une macro, car j'ai plusieurs fichiers de ce type a faire.
Malheureusement je ne suis pas très doué.
J'ai trouvé une partie de code qui pourrait faire office mais il ne prends pas en compte la situation de l'ajout du 0 dans la colonne B.
La colonne A est normalisée. Elle est toujours avec 3 caractères.
La colonne B a 3 choix possibles :
Pouvez vous m'aider sur cette présentation des données ?
Je vous remercie.
Je souhaiterais modifier la présentation d'un fichier Excel pour le rendre plus lisible et surtout filtrable.
Le fichier se présente de cette manière :
![](/proxy.php?image=http%3A%2F%2Fnsa38.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100950167413.jpg&hash=310e62c3036ee99a3c2a23de61f6502e)
Première étape, c'est supprimer les lignes vides. Que je fais rapidement en filtrant et sélectionnant les cases vides.
Deuxième étape, c'est de remplir la colonne A de façon a ce que la valeur remplisse les cases jusqu’à la prochaine case remplie
![](/proxy.php?image=http%3A%2F%2Fnsa37.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100950260822.jpg&hash=0cbe7f262217e45e7848a6c8837ab9fa)
3eme étape, c'est de faire une concaténation de la colonne A avec la colonne B et de coller les valeurs dans la colonne B. Ce qui donne pour la première ligne:
B0F (vide) Moteur
et devient :B0F B0F Moteur
Pour les lignes suivantes :
B0F LE EB2FA
qui devient :B0F B0FLE EB2FA
![](/proxy.php?image=http%3A%2F%2Fnsa38.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100950526860.jpg&hash=c9cc6312742b72c2a203af422e9524b9)
Il y a un point sur lequel je souhaiterais réparer, c'est lorsqu'il s'agit d'un chiffre seul. exemple
![](/proxy.php?image=http%3A%2F%2Fnsa38.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100950430249.jpg&hash=e10a188bd6fe7b3d3f123e72d8dcd591)
dans ce cas la, il faut rajouter un 0 avant le chiffre.
L'objectif final, c'est d'arriver a ce cas de figure :
![](/proxy.php?image=http%3A%2F%2Fnsa37.casimages.com%2Fimg%2F2017%2F06%2F07%2Fmini_170607100949918268.jpg&hash=05a7cd9ccd292f685b1d4dc65635322d)
Pour y parvenir, je dois faire une macro, car j'ai plusieurs fichiers de ce type a faire.
Malheureusement je ne suis pas très doué.
J'ai trouvé une partie de code qui pourrait faire office mais il ne prends pas en compte la situation de l'ajout du 0 dans la colonne B.
VB:
Attribute VB_Name = "Module_completer"
Sub Remplir_vide()
Dim nb_ligne, nb_colonne As Integer
Dim dep_ligne, dep_colonne As Integer
Dim lin, col As Integer
If Selection.Rows.Count <= 1 And Selection.Columns.Count <= 1 Then
MsgBox ("Ce traitement nécessite de sélectionner la zone à traiter")
Exit Sub
End If
'initialisation
nb_ligne = Selection.Rows.Count
nb_colonne = Selection.Columns.Count
dep_ligne = Selection.Row
dep_colonne = Selection.Column
lin = dep_ligne
col = dep_colonne
While lin < (nb_ligne + dep_ligne)
While col < (nb_colonne + dep_colonne)
If Cells(lin, col) = "" Then Cells(lin, col) = Cells(lin - 1, col)
col = col + 1
Wend
lin = lin + 1
col = dep_colonne
Wend
End Sub
La colonne A est normalisée. Elle est toujours avec 3 caractères.
La colonne B a 3 choix possibles :
Cellule vide : Alors reprendre la chaîne de caractère de la colonne A et la coller dans la colonne B
Cellule avec 1 caractère: Il s'agit de la situation ou il manque le 0 qu'il faut rajouter et ensuite concaténer avec la chaîne de caractère de la colonne A
cellule avec 2 caractère : Il faut concaténer avec la chaîne de caractère de la colonne A
La colonne C contient une chaîne de caractère.Cellule avec 1 caractère: Il s'agit de la situation ou il manque le 0 qu'il faut rajouter et ensuite concaténer avec la chaîne de caractère de la colonne A
cellule avec 2 caractère : Il faut concaténer avec la chaîne de caractère de la colonne A
Pouvez vous m'aider sur cette présentation des données ?
Je vous remercie.