Insérer sur la même ligne des données réparties sur deux lignes.

Résolu/Fermé
MathouMitheu - 1 avril 2016 à 16:07
 MathouMitheu - 6 avril 2016 à 17:10
Au secours !!!!
J'ai une base de donnée de 14 000 lignes avec des noms, des adresses, des numéros de téléphones et des numéros de compte client.
Jusque là tout va bien, sauf que tous mes numéros de compte clients et mes adresses sont décalées sur une ligne en dessous du nom. Bref, pour être plus claire voici un exemple :
N° DE COMPTE Nom/prénom
390001 Bayeux Marcel

Adresse Code postal Entreprise
78 rue des Maronniers 710000 Bouiboui

N° DE COMPTE Nom/prénom
400001 Marlieu Arnaud

Adresse Code postal Entreprise
78 rue des Colquelicots 520000 Croquemou

Et ça sur 14 000 lignes (dû à une extraction de données sur un logiciel d'entreprise).

Ma question c'est, est que l'on peut rapatrier toutes les adresses, les codes postales et les noms d'entreprises sur la même ligne que les n° de compte, les nom/prénom ?


Merci de votre aide si vous avez une solution !!!





2 réponses

via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
1 avril 2016 à 16:29
Bonjour MathouMitheu

Oui certainement possible par formules ou par macro mais il faut connaitre le structure exacte de ton fichier (quelles colonnes sont remplies, s'il y a des lignes vides etc) pour te dire
Postes un exemple exact mais allégé (une dizaine de lignes suffisent) et anonymé (avec des noms bidons) de ta feuille d'extraction sur cjoint.com, dais créer un lien, copies le et reviens le coller ici dans ton prochain message

Cdlmnt
Via
0
Bonjour Via55,

Tout d'abord, merci pour l'aide et votre réactivité, je suis impressionnée d'avoir une réponse si rapidement.

Voici donc le lien du fichier,
http://www.cjoint.com/c/FDegXv83hCS

Ce que je souhaite faire, c'est de remettre toutes les informations par compte client sur la même ligne. Les appellations de chaque lignes (Code client, Entreprise, Adresse...) ne doivent pas obligatoirement être répétées avant chaque client, mais si cela vous complique la tâche ne vous embêtez pas. Faites au plus simple je me débrouillerai par la suite !

Cordialement,

MathouMitheu,
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 4/04/2016 à 10:36
Bonjour Mathou , Via

solution proposée par VBA

le code
Option Explicit
Option Base 1
'--------------------------------------------------------------
Sub reorganiser()
Dim Derlig As Long, T_in, Nbre As Long, T_out
Dim Cptr1 As Long, Cptr2 As Long, Col As Byte
Dim Start As Single

'---------------------------initialisations
Application.ScreenUpdating = False
Start = Timer
With Sheets(1)
'mémorisation en RAM tableau brut
Derlig = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row + 2
T_in = .Range("A2:F" & Derlig)
'mémorisation en RAM tableau réorganisé
Nbre = Application.CountIf(.Columns("A"), "Compte client")
End With
ReDim T_out(Nbre, 8)

'---------------------------------- parcours T_in vers T_out
For Cptr1 = 1 To UBound(T_in) Step 4
Cptr2 = Cptr2 + 1
'ligne client
For Col = 1 To 4
T_out(Cptr2, Col) = T_in(Cptr1, Col)
Next
'ligne adresse
For Col = 3 To 6
T_out(Cptr2, Col + 2) = T_in(Cptr1 + 2, Col)
Next
Next
'-------------------------------------Restition en feuille2 du tableau réorganisé
With Sheets(2)
.Range("A2:H20000").Clear
.Range("A2").Resize(Nbre, 8) = T_out
.Range("A2:H" & Nbre + 1).Borders.Weight = xlThin
.Select
End With
Application.ScreenUpdating = True
MsgBox "Base de données des " & Nbre & " clients réorganisée en " & Timer - Start & " secondes."
End Sub


Le classeur en retour
https://www.cjoint.com/c/FDeiIofONmt

 Michel
0
Ca marche !!! Merci beaucoup !

Cordialement,

MathouMitheu
0