Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Manip pour copier en colonne des valeurs qui sont en lignes
J'ai besoin d'aide pour une manipulation sur un dossier de base-client d'environ 13 000 clients.
Je voudrais savoir comment transposer en colonne les infos de chaque client (adresse, code postal, tel) qui sont en ligne (le dossier s'étend sur + de 100 000 lignes), sachant qu'il n'y pas de rythme entre chaque client.
Y a-t-il une manip simple et rapide qui m'éviterais de copier ces infos pour un client à la fois ?
Voila, et ça continue comme ça sur 100 000 lignes pour les 13 000 clients.
En fait je voudrais pour chaque client afficher une colonne pour le code postal, une pour l'adresse, une pour le tél, etc..
Re : Manip pour copier en colonne des valeurs qui sont en lignes
Salut Shakki
Merci pour ta réponse !
En fait chez moi j'ai le excel 2013 et tes manip de marche pas du coup je ne vois pas ce que tu as essayé de faire sur mon fichier.
Je réessaierais lundi au bureau avec le excel 2010 pour voir si ça fait quelque chose.
Re : Manip pour copier en colonne des valeurs qui sont en lignes
Bonjour IManai, Shakki
un essai macro utilisant les tableaux( array) pour tenter d'optimiser le temps de traitement
Code:
Sub MacroTrans()
Dim Tablo, Tabfin(), i As Long, j As Long, x As Long
With Worksheets("Feuil1")
Tablo = .Range("A1:A" & .Range("A" & Rows.Count).End(xlUp).Row)
For i = LBound(Tablo) To UBound(Tablo) Step 9
x = x + 1
ReDim Preserve Tabfin(0 To 7, 1 To x)
For j = 0 To 7
Tabfin(j, x) = Tablo(i + j, 1)
Next
Next
.Range("B1").Resize(UBound(Tabfin, 2), UBound(Tabfin, 1)) = Application.Transpose(Tabfin)
End With
End Sub
A+
Edit: Flûte, tout faux !! Je n'avais pas fait attention à:
sachant qu'il n'y pas de rythme entre chaque client.
Re : Manip pour copier en colonne des valeurs qui sont en lignes
Bonjour,
Une fois que tu as ouvert ton fichier et sélectionné l'onglet avec tes clients, tu appuies sur Alt + F11. La fenêtre macro s'ouvre.
Dans la barre de menu VBA, tu fais Insertion / module et tu copies-colles le code de Paf ou le mien ci-dessous:
Code:
Sub Clients()
Application.ScreenUpdating = False
Range("C1:Z" & Range("C" & Rows.Count).End(xlUp).Row).ClearContents
Entete = Array(, "Client", "CP", "Adresse", "Tel", "Fax", "Cabinet", "CP", "Adresse Cabinet")
For a = 1 To 8
Cells(1, a + 2) = Entete(a)
Next
Set MaDest = Range("C2")
For Each X In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
If X.Value = "" Then
Set MaDest = Range("C" & Rows.Count).End(xlUp).Offset(1, 0)
j = 0
Else
MaDest.Offset(0, j).Value = X.Value
j = j + 1
End If
Next
MaDest.Cells.EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Ensuite ne reste plus qu'à exécuter la macro. Pour ça, appuie sur F5 ou clique sur le triangle vert dans la barre de menu VBA.
Note que si ton fichier est en xlsx, le code sera supprimé quand tu enregistreras. Si tu souhaites conserver ce code, il faudra enregistrer ton fichier en xlsm.
Une fois que tu as ouvert ton fichier et sélectionné l'onglet avec tes clients, tu appuies sur Alt + F11. La fenêtre macro s'ouvre.
Dans la barre de menu VBA, tu fais Insertion / module et tu copies-colles le code de Paf ou le mien ci-dessous:
Code:
Sub Clients()
Application.ScreenUpdating = False
Range("C1:Z" & Range("C" & Rows.Count).End(xlUp).Row).ClearContents
Entete = Array(, "Client", "CP", "Adresse", "Tel", "Fax", "Cabinet", "CP", "Adresse Cabinet")
For a = 1 To 8
Cells(1, a + 2) = Entete(a)
Next
Set MaDest = Range("C2")
For Each X In Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
If X.Value = "" Then
Set MaDest = Range("C" & Rows.Count).End(xlUp).Offset(1, 0)
j = 0
Else
MaDest.Offset(0, j).Value = X.Value
j = j + 1
End If
Next
MaDest.Cells.EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Ensuite ne reste plus qu'à exécuter la macro. Pour ça, appuie sur F5 ou clique sur le triangle vert dans la barre de menu VBA.
Note que si ton fichier est en xlsx, le code sera supprimé quand tu enregistreras. Si tu souhaites conserver ce code, il faudra enregistrer ton fichier en xlsm.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.