Insérer sur la même ligne des données réparties sur deux lignes.
Résolu/Fermé
A voir également:
- Insérer sur la même ligne des données réparties sur deux lignes.
- Comment aller à la ligne sur excel - Guide
- Insérer une vidéo sur powerpoint - Guide
- Partage de photos en ligne - Guide
- Site de vente en ligne particulier - Guide
- Insérer signature word - Guide
2 réponses
via55
Messages postés
14506
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
27 décembre 2024
2 738
1 avril 2016 à 16:29
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 4/04/2016 à 10:36
Modifié par michel_m le 4/04/2016 à 10:36
Bonjour Mathou , Via
solution proposée par VBA
le code
Le classeur en retour
https://www.cjoint.com/c/FDeiIofONmt
Michel
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
4 avril 2016 à 09:07
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,