Transposer colonne en ligne

Fermé
CBO1973 - 15 janv. 2021 à 13:52
franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 - 23 janv. 2021 à 17:01
Bonjour,
j'ai une seule colonne A avec 505 lignes que j'aimerais transposer en 10 colonnes (parfois la 10e colonne sera vide). La case qui devrait déclencher le passage à la ligne contient toujours le mot "parcelle". J'ai commencé à le faire manuellement avec la fonction collage spécial-transposer mais c'est franchement pénible... Est-ce qu'il y a moyen d'automatiser ce "transposage" en ligne avec une macro? Je vais devoir le faire régulièrement avec des données différentes. A savoir que je n'ai jamais fais de Macro en Excell avant...... :-/

Merci d'avance pour vos bons conseils
A voir également:

13 réponses

franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
Modifié le 15 janv. 2021 à 14:56
Bonjour
la cellule qui contient "parcelle" doit elle être recopiée et où…
Ci joint ma proposition sans parcelle
https://www.cjoint.com/c/KApn3xSd8hz
A+ François
0
Bonjour. Merci d'avoir pris le temps de me répondre. La cellule avec Parcelle ne doit pas être recopiée. Je vois bien votre fichier, mais je fais quoi avec cela? Je recopie mes données dedans? et il fait la transposition?
0
franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
18 janv. 2021 à 16:32
Bonjour,
la macro se lance en double cliquant sur la feuille

A+ François
0
tout se transpose en 1 seule ligne. Je dois faire autre chose?
https://www.cjoint.com/c/KAsrkgoSrZ8
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
18 janv. 2021 à 19:35
Pour le fichier que tu as joint voici la macro correspondante
Clic droit sur le nom de la feuille
Choisir Visualiser le code et recopier cette macro
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long, dl As Long, col As Integer, lig As Long
dl = Cells(1, Columns.Count).End(xlToLeft).Column 'Range("A" & Rows.Count).End(xlUp).Row
col = 1: lig = 5
For i = 1 To dl
If Cells(1, i).Value Like "*Parcelle*" Then
lig = lig + 1: col = 1
Else
Cells(lig, col).Value = Cells(1, i).Value
col = col + 1
End If
Cells(1, i).Value = ""
Next
End Sub

A+ François
0
désolée de vous embêter mais cela ne fonctionne tjr pas. soit je ne sauve pas correctement les modifications soit je fais qlq chose de travers mais je n'arrive pas au résultat. J'ai même l'impression qu'en fait, cela efface le contenu de la première cellule et puis fini...
0
franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
19 janv. 2021 à 16:49
Fait moi suivre ton fichier avec des données bidon ...
Quelle version d' excel? windows ou mac?
A+ François
0
Bonjour,

Désolée, je n'avais pas vu votre réponse.
Je travaille sous Excel 2016- Windows 10.
Voici le fichier
https://www.cjoint.com/c/KAwmtQkPUj8
Merci bcp pour votre aide en tout cas.

Belle fin de journée.
0
franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
Modifié le 22 janv. 2021 à 15:18
Bonjour
Moi ça marche très bien…
Double clic sur la feuille "Feuil1" dans n'importe quelle case
https://www.cjoint.com/c/KAwop4NJ7Az

A+ François
0
Bonjour,

Ah oui, là c'est bon... je ne touche plus a rien! Merci.
Et donc pour les suivants, je copie dans la première colonne et double click, c'est cela?

Bon weekend à vous.
0
franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
23 janv. 2021 à 16:30
Exact
Tu efface les données existantes (ou tu les copies sur une autre feuille)
tu colle tes nouvelles données en A1 et tu double clic

A+ François
0
bon l'idéal maintenant serait de comprendre ce que vous avez fait pour pouvoir le refaire. Mais ça cela va être une autre paire de manches :-(.
Encore merci
0
franc38 Messages postés 197 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 27 février 2023 38
23 janv. 2021 à 17:01
Cette macro tu la retrouve en cliquant sur l'onglet de la feuille concernée
clic droit choisir visualiser le code

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long, dl As Long, col As Integer, lig As Long 'déclaration des variables
dl = Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne de la colonne A
col = 2: lig = 2
For i = 1 To dl 'boucle qui analyse toutes les cellules de la colonne A
If Cells(i, 1).Value Like "*Parcelle*" Then 'recherche si il y a le mot Parcelle
lig = lig + 1: col = 2 ' si oui ajout d'une ligne, colonne remis à 2
Else 'si pas de mot Parcelle
Cells(lig, col).Value = Cells(i, 1).Value 'la cellule correspondant à la valeur lig et la colonne col reprend la valeur de la cellule analysée
col = col + 1 'on augmente la colonne de 1
End If 'fin de la condition
Cells(i, 1).Value = "" 'on efface la cellule analysée
Next 'fin de la boucle
End Sub

J'ai ajouté des explications
A+ François
0