Retraitement de données

Bonjour à tous,

Je suis en train de créer une macro pour retraiter des informations extraites depuis un logiciel tiers.

J'ai réussi à programmer une macro pour supprimer mes informations inutiles, les colonnes et lignes en trop, etc.

Cependant, je bloque à un moment donné :

En effet, j'ai par exemple, le nom de mon fournisseur sur la ligne 1. Les montants dûs eux, sont bien dans ma colonne B, mais sur la ligne 2, 3, 4, etc.

Je voulais savoir s'il était possible de remettre en face ces deux données. L'idée est d'avoir le fournisseur dans ma colonne A1 avec le premier montant en B1, puis encore le nom du fournisseur en A2 avec le montant en B2, etc.

Je joins un fichier pour que tout soit plus clair.

18exemple.xlsx (9.84 Ko)

Si vous pouviez m'aider ce serait top !

Merci à tous et bonnes fêtes avec un peu d'avance.

Nicolas

Bonjour,

Personnellement j'ajouterai une macro afin de compléter la colonne A pour "Répéter le nom des fournisseurs qui manque"

Ensuite un simple filtre sur la colonne date "non vide" et vous obtiendrai ce que vous souhaitez.

Mais l'ajout d'un tableau croisé dynamique avec vos données vous permettra ensuite d'avoir n'importe quel récapitulatif par fournisseur date ou autre.

(Tout en sachant qu'un double clic sur un sous-total vous ouvrira un nouvelle onglet avec uniquement les données concernées.

12exemple-retour.xlsm (24.07 Ko)

Bonjour Xmenpl,

En effet le but final était de créer un TCD ! Donc votre proposition est pertinente et le TCD proposé est exactement ce que je veux créer à la fin !

Auriez-vous une petite idée du code pour répéter le nom du fournisseur qui manque ? J'imagine que ça doit être ... tant que la ligne du dessous est vide... répéter la ligne du dessus ?

Merci !

Exactement ce que vous pensiez.

Le code est inclu au fichier transmis

Code du bouton Mise en Forme sur la feuile :

Private Sub CommandButton1_Click()
Dim NBLIGNE As Long
NBLIGNE = Range("C65536").End(xlUp).Row

For i = 3 To NBLIGNE
If Range("A" & i).Value = "" Then
Range("A" & i).Value = Range("A" & i - 1).Value
End If
Next i

End Sub

Merci beaucoup, c'est top !

Bonne soirée et bonnes fêtes !

Rechercher des sujets similaires à "retraitement donnees"