VBA : Mise en forme base de données brute
Résolu
nila44
Messages postés
10
Statut
Membre
-
nila44 Messages postés 10 Statut Membre -
nila44 Messages postés 10 Statut Membre -
Bonjour à tous,
Chaque semaine, j'extraie des données brutes que je souhaite mettre en forme dans un tableau.
Avez-vous des morceaux de code pour m'aider à débuter mon programme ?
Vous trouverez ci-dessous le lien vers le fichier base de donnée extrait :
https://www.cjoint.com/c/JIElefAmsxH
Je souhaite donc :
- Reprendre la donnée en colonne A et la dupliquer pour chaque ligne correspondante (difficulté car je n'ai pas toujours le même nombre de lignes)
- Reprendre la donnée en colonne B et dupliquer pour chaque ligne
- Reprendre la donnée en colonne K associée dans le cas ou mon activité est différente de "connexion"
- Décomposer les réponses de la colonne N en 4 colonnes lorsque celle-ci est remplie + une colonne observations
Voici le lien vers le fichier attendu, fait manuellement pour l'exemple :
https://www.cjoint.com/c/JIEleR7DvNH
Merci d'avance pour votre aide !
Nila44
Chaque semaine, j'extraie des données brutes que je souhaite mettre en forme dans un tableau.
Avez-vous des morceaux de code pour m'aider à débuter mon programme ?
Vous trouverez ci-dessous le lien vers le fichier base de donnée extrait :
https://www.cjoint.com/c/JIElefAmsxH
Je souhaite donc :
- Reprendre la donnée en colonne A et la dupliquer pour chaque ligne correspondante (difficulté car je n'ai pas toujours le même nombre de lignes)
- Reprendre la donnée en colonne B et dupliquer pour chaque ligne
- Reprendre la donnée en colonne K associée dans le cas ou mon activité est différente de "connexion"
- Décomposer les réponses de la colonne N en 4 colonnes lorsque celle-ci est remplie + une colonne observations
Voici le lien vers le fichier attendu, fait manuellement pour l'exemple :
https://www.cjoint.com/c/JIEleR7DvNH
Merci d'avance pour votre aide !
Nila44
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, j'ai regardé, et tout n'est pas immédiatement clair.
tu aurais pu nous faciliter le travail en précisant aussi les colonnes dans la feuille de destination.
je vais te proposer un code pour commencer, pour la partie que j'ai compris.-
suggestion:
Option Explicit Sub transfo() Dim fsource As Worksheet, fdest As Worksheet, rsource As Range Dim immat As String, cond As String, action As String Dim derlig As Long, lsource As Long, ldest As Long Set fsource = ThisWorkbook.Sheets("avant") Set fdest = ThisWorkbook.Sheets("apres") lsource = fsource.UsedRange.Row derlig = lsource + fsource.UsedRange.Rows.Count ldest = 2 Do While lsource <= derlig If fsource.Cells(lsource, "a") <> "" Then immat = fsource.Cells(lsource, "a") cond = "" End If If fsource.Cells(lsource, "b") <> "" Then cond = fsource.Cells(lsource, "b") End If action = fsource.Cells(lsource, "k") Select Case action Case "", "CONNEXION", "Activité" Case Else fdest.Cells(ldest, "a") = immat fdest.Cells(ldest, "b") = cond fdest.Cells(ldest, "c") = action ldest = ldest + 1 End Select lsource = lsource + 1 Loop End Sub
-