Help... Transpositions d'adresses lignes en colones...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Patrick8585

XLDnaute Nouveau
Bonjour à tous,

Après de maintes recherches et d'essais infructueux je me tourne vers ce forum en espérant que quelqu'un aie une solution ou du moins une aide à mon problème.

J'ai une liste d'adresse de la forme:

Nom de la compagnie1
Numero de tel1
Email1
Adresse1
Nom de la compagnie2
Numero de tel2
Email2
Adresse2
...

Et j'aimerais les transposer en colonnes sous la forme:

Nom de la compagnie - Numero de tel - email - adresse
1
2
3
4
...

Il y a bien un moyen pour transposer bloc par bloc chaque adresse, mais comme il y en a beaucoup je pense qu'il doit exister une méthode plus simple de transposer toutes les adresses en meme temps..

Je n ai helas pas encore trouvé la solution, meme en essayer d'enregistrer une macro afin de répéter la transposition de mon bloc de 4 lignes en quatre colonnes, cela ne fonctionne pas 🙁...

Si une bonne âme aurait une quelconque idée comme je pourrais faire... je serais très reconnaissant pour toute aide 🙂...

Merci d'avance 🙂

Patrick
 
Re : Help... Transpositions d'adresses lignes en colones...

Bonjour à tous,
Salut Michel,

Peux-tu essayer avec :

Option Explicit

Code:
Option Explicit

Sub Transpose()
    Dim X As Long
        
 For X = 1 To Range("A65536").End(xlUp).Row Step 4
        Range("A" & X & ":A" & X + 3).Copy
        Range("B" & Range("B65536").End(xlUp).Row + 1).Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=True
    Next
    Columns("B:E").Columns.AutoFit
    Range("A1").Select
End Sub
A+ à tous
 

Pièces jointes

Dernière édition:
Re : Help... Transpositions d'adresses lignes en colones...

Bonjour le fil, bonjour le forum,

Une autre proposition VBA (colonne à adapter) :
Code:
Sub Macro1()
Dim col As Byte 'déclare la variable col (COLonne)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim y As Byte 'déclare la variable y (décalage ligne /colonne)
Dim dest As Range 'déclare la variable dest (DESTination)
 
col = 1 'définit la colonne où sont les données ((à adapter à ton cas)
dl = Cells(65536, col).End(xlUp).Row 'définit la variable dl (dernière ligne éditée de la colonne)
For x = 1 To dl Step 4 'boucle 1 : sur toutes les cellules éditées de la colonne par pas de 4
    
    'définit la cellule de destination
    'condition : si la première cellule de la colonne adjacente est vide
    If Cells(1, col + 1).Value = "" Then
        Set dest = Cells(1, col + 1) 'dest est cette première cellule
    Else 'sinon
        ' dest est la premiere cellule vide rencontrée dans la colonne adjacente
        Set dest = Cells(65536, col + 1).End(xlUp).Offset(1, 0)
    End If ' fin de la condition
    
    For y = 0 To 3 'boucle 2 : sur un décalage de 0 à 3
        'la cellule décalée en colonne prend la valeur de la cellule décalée en ligne
        dest.Offset(0, y).Value = Cells(x, 1).Offset(y, 0)
    Next y 'prochain décalage de la boucle 2
Next x ' prochaine 4ème cellule de la boucle 1
Columns(col).Delete 'supprime la colonne où étaient les données initialament
End Sub
 
Re : Help... Transpositions d'adresses lignes en colones...

Bonjour JC, Robert

Sinon, je lui aurais demandé si il connaissait Henry 🙂.

Remarque, il le connaît peut-être 😛.

Avec vos macros, il faut qu'il y en ait toujours 4 dans le même ordre 😉.
 
Re : Help... Transpositions d'adresses lignes en colones...

Bonjour à tous, JCGL (salutations)

Une autre façon (qui évite le copier/coller)

Code:
Sub a()
Dim plg As Range, i&, j&
Set plg = Cells(Rows.Count, 1).End(xlUp): j = 1
For i = 1 To plg.Row Step 4
Cells(j, 2).Resize(, 4) = Application.Transpose(Cells(i, 1).Resize(4))
j = j + 1
Next
Set plg = Nothing
End Sub
 
Re : Help... Transpositions d'adresses lignes en colones...

Bonjour à tous,

Si, comme le suppose Michel, tu devais avoir plus de quatre items par Client, il suffit de modifier Z dans le code

Code:
Option Explicit

Sub Transpose()
    Dim X As Long
    Dim Z As Byte
    
    Z = 4
        
 For X = 1 To Range("A65536").End(xlUp).Row Step Z
        Range("A" & X & ":A" & X + Z - 1).Copy
        Range("B" & Range("B65536").End(xlUp).Row + 1).Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=True
    Next
    Columns("B:E").Columns.AutoFit
    Range("A1").Select
End Sub
A+ à tous

Édition: Salut Hasco 🙂 🙂
 

Pièces jointes

Dernière édition:
Re : Help... Transpositions d'adresses lignes en colones...

Re JC, Bonjour JM, AH Ges pas vu 😱

Sinon j'ai fait cela il y a peu (Zoneà dispatcher_by_MJ).

L'intérêt est qu"on a pas besoin de se prendre la tête avec le nombre de colonnes mais il faut qu'il y ai une structure répétitive des données (comme dans les données météos par exemple 😉).

https://www.excel-downloads.com/threads/passage-des-3kg.146587/
 
Dernière édition:
Re : Help... Transpositions d'adresses lignes en colones...

Re à tous


Une version plus aboutie

Code:
Sub aa()
Dim plg As Range, i&, j&
Set plg = Cells(Rows.Count, 1).End(xlUp): j = 1
For i = 1 To plg.Row Step 4
Cells(j, 2).Resize(, 4) = Application.Transpose(Cells(i, 1).Resize(4))
j = j + 1
Next
Set plg = Nothing: Columns(1).Delete: Rows(1).Insert
    With Range("A1:D1")
        .Value = [{"Nom de la compagnie","Numero de tel","Email","Adresse"}]
        .ColumnWidth = 20
    End With
End Sub
PS: Salutations aux sieurs Hasco et MJ13

PS2: JCGL: je me suis pourtant lavé les dents ce matin 😉
 
Re : Help... Transpositions d'adresses lignes en colones...

Bonjour à tous 🙂!

J'ai dans un premier temps essayé la solution version 1 de JCGL qui était presque idéale, et ensuite la version 2 qui était parfaite 😀 !

Merci à tous les participants pour vos diverses solutions 🙂! C'était la première fois que je me tournais vers un forum pour demander une aide et je vois que la vitesse et la qualité de réponse est excellente 🙂! En tout cas sur ce forum!

Merci encore à tous 🙂!

Meilleures salutations et bonne fin de week end 🙂!

Patrick
 
Re : Help... Transpositions d'adresses lignes en colones...

Bonjour à tous,

Merci de ton retour.

Merci de jeter un œil sur les différentes solutions proposées...
Elles sont plus rapides sur un nombre de lignes plus important.

A+ à tous
 
Re : Help... Transpositions d'adresses lignes en colones...

Re , bonjour Mecano

Merci Patrick pour ta réponse en temps et en heure.

Une version en passant par un tableau (parfois plus rapide pour les longs tableaux)...

Cordialement

EDIT : apparemment, déjà vu plus haut! Une version en passant par un tableau (parfois plus rapide pour les longs tableaux)...

Cordialement

EDIT : apparemment, déjà vu plus haut! Aujourd'hui 18h07

Mécano: Merci pour ta version. Mais pourquoi, chez moi, c'est plus bas 🙂. AH 😱, j'ai compris car dans mes optons, j'ai choisi du plus récent au plus ancien 😉.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
1 K
Retour