HELP // Retraitement EXCEL
Inconnu-75486
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
Bonjour à tous,
J'ai un léger soucis pour retraiter une information provenant d'un logiciel. Il s'agit d'un grand-livre de comptes.
J'ai créé une un feuillet permettant de reprendre les informations de mon importation que je souhaite exploiter. Cependant, pour que mon feuillet contenant les formules puisse fonctionner, j'ai besoin de retraiter préalablement mon importation (Grand-livre de tiers).
J'aimerais utiliser une macro "Enregistrer une macro" pour pouvoir automatiser le procéder et gagner du temps mais je bloque à une étape, le retraitement des tiers.
L'importation se présente ainsi pour la colonne TIERS, elle est combinée avec les dates des mouvements :
Exemple :
Colonne A
TIERS "TEST A"
DATE
DATE
DATE
DATE
(Ligne vide)
TIERS "TEST B"
DATE
DATE
DATE
....
J'aimerais une technique lol pour pouvoir avoir ce genre de résultat (je parviens à le faire manuellement mais aucun intérêt à perdre autant de temps dessus :/) :
Colonne A Colonne B
TIERS "TEST A" DATE
TIERS "TEST A" DATE
TIERS "TEST A" DATE
TIERS "TEST A" DATE
TIERS "TEST B" DATE
TIERS "TEST B" DATE
TIERS "TEST B" DATE
J'ai un léger soucis pour retraiter une information provenant d'un logiciel. Il s'agit d'un grand-livre de comptes.
J'ai créé une un feuillet permettant de reprendre les informations de mon importation que je souhaite exploiter. Cependant, pour que mon feuillet contenant les formules puisse fonctionner, j'ai besoin de retraiter préalablement mon importation (Grand-livre de tiers).
J'aimerais utiliser une macro "Enregistrer une macro" pour pouvoir automatiser le procéder et gagner du temps mais je bloque à une étape, le retraitement des tiers.
L'importation se présente ainsi pour la colonne TIERS, elle est combinée avec les dates des mouvements :
Exemple :
Colonne A
TIERS "TEST A"
DATE
DATE
DATE
DATE
(Ligne vide)
TIERS "TEST B"
DATE
DATE
DATE
....
J'aimerais une technique lol pour pouvoir avoir ce genre de résultat (je parviens à le faire manuellement mais aucun intérêt à perdre autant de temps dessus :/) :
Colonne A Colonne B
TIERS "TEST A" DATE
TIERS "TEST A" DATE
TIERS "TEST A" DATE
TIERS "TEST A" DATE
TIERS "TEST B" DATE
TIERS "TEST B" DATE
TIERS "TEST B" DATE
Configuration: Windows / Chrome 78.0.3904.70
A voir également:
- HELP // Retraitement EXCEL
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel trier par ordre croissant chiffre - Guide
1 réponse
Bonjour,
Par exemple :
Par exemple :
Option Explicit
Sub Retraitement()
Dim f As Worksheet
Dim c As Range
Dim v As Variant
Dim t As String
Dim d As Long
Dim n As Long
Set f = ThisWorkbook.Worksheets("Importation") ' à adapter
With f
Set c = .Range("B1")
d = .Cells(.Rows.Count, "A").End(xlUp).Row
For n = 1 To d
v = .Cells(n, "A").Value
If TypeName(v) = "String" Then
t = v
ElseIf TypeName(v) = "Date" Then
c.Value = t
c.Offset(0, 1).Value = v
Set c = c.Offset(1)
End If
Next n
.Columns(1).Delete
End With
End Sub
Je vais tester ta proposition.
Je te fais un retour bientôt.
Bonne journée Patrice !
Je viens de tester, j'ai l'impression que ça fonctionne lol. Je vais essayer d'exporter le document et de tester la formule.
Ça t’embêterait de m'expliquer un peu comment tu as fait afin que je suis puisse comprendre le fonctionne et reproduire ce genre de formule.
Merci encore !
Bonne fin de journée,
d, c'est la dernière ligne de la colonne A qui contient une valeur.
c, c'est la cellule de destination du résultat (B1 pour commencer)
J'analyse la valeur (v) de chaque cellule de la colonne A de 1 à d
Si c'est une chaine je la mémorise (dans t)
Si c'est une date :
- j'écris t (le texte) en c (destination) et
- j'écris la date (v) dans la cellule à droite de c [c.offset(0,1)]
- je définis la cellule c en dessous du c actuel comme nouvelle destination (destination suivante)
Quand toutes les lignes sont analysées, je supprime la première colonne (A)