HELP // Retraitement EXCEL
Inconnu-75486
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
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 moyenne - 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)