OVH Cloud OVH Cloud

transposition du contenu d'une cellule sur plusieurs, le retour...

2 réponses
Avatar
tinou
bonjour, l'idee a deja ete posee en mai dernier
(http://www.microsoft.com/office/community/fr-fr/default.mspx?dg=microsoft.public.fr.excel&tid=4c20bb95-d3e8-45a6-9370-1272512b575a&cat=fr-fr-produitsbureautiques&lang=fr&cr=FR&sloc=fr-fr&m=1&p=1)

le principe est le meme : j'ai dans une cellule plusieurs lignes generees
par des retours chariot ou des sauts de ligne (chr 10 / chr 13 ??)
et j'aimerai que chaque ligne se recopie dans la cellule d'a cote (sauf la
1re ligne)

petit schema... :

A B C D
E F
+-------+----------+---------+------------------+--------+------------+
1 |CIV |NOM |PRENOM|AD 1 |CP |VILLE
|
+-------+----------+---------+------------------+--------+------------+
2 |Mlle |DUPONT |CATY |9 RUE TUC |75001 |PARIS |
+-------+----------+---------+------------------+--------+------------+
|M. |DERICK |JEAN |5 BD TOTO |38000 |GRENOBLE |
3 | | | |ETAGE 11 |
| |
| | | |BAT. F
| | |
+-------+----------+---------+------------------+--------+------------+
| |SERVICE | |BP 14 |13001
|MARSEILLE|
4 | |INFO | |
| | |
+-------+----------+---------+------------------+--------+------------+

etc...

bref on peut donc observer qu'a la ligne 3, dans la colonne D "ad 1",
il y a 3 (sauts de) lignes. Il y en a aussi a la ligne 4, colonne B "nom".

j'aimerai une macro qui me demande sur quelle colonne travailler (inputbox),
et si, par exemple, je reponds "D", elle m'insere autant de colonne qu'il y
a de saut de ligne, (ici, 2 colonnes a droite de D), pour coller "ETAGE 11"
dans E3 et "BAT. F" dans F3... bien sur tous les "CP" se retrouveront en G et
"VILLE" en H...!

on aurait donc :

A B C D E
F G H
+----+---------+------+------------+----------+-------+-------+-----------+
1 |CIV|NOM |PREN |AD1 |AD2 |AD3 |CP
|VILLE |

+----+---------+------+------------+----------+-------+-------+-----------+
2 |Mlle|DUPONT|CATY |9 RUE TUC | | |75001|PARIS
|

+----+---------+------+------------+----------+-------+--------------------+
3 |M. |DERICK |JEAN |5 BD TOTO |ETAGE 11| BAT. F|38000|GRENOBLE |

+---+---------+------+------------+----------+-------+--------------------+
| |SERVICE| |BP 14 | |
|13001|MARSEILLE|
4 | |INFO | | | |
| | |

+----+---------+------+------------+----------+-------+-------+------------+

voila j'espere avoir été claire...
Merci par avance...

Tinou

Ps : je remets les codes pris du mois de mai...
merci clement



sub entroiscellules()
derniereligne = range("a65536").end(xlup).row
for i = 1 to derniereligne
lacellule = cells(i,1).value
lavaleur = split(lacellule, chr(10))
for z = 0 to ubound(lavaleur)
cells(i,z+2).value = lavaleur(z)
next
next
end sub

2 réponses

Avatar
tinou
...c'est sur qu'avec une mise en page comme ca.. on risque pas de m'aider...

le premier schema est :


/ A / B / C / D /
E / F /
----------------------------------------------------------------------
1 /CIV /NOM /PREN/AD 1 /CP /VILLE
/
----------------------------------------------------------------------
2 /Mlle /DUPONT /CATY/9 RUE TUC /75001 /PARIS /
----------------------------------------------------------------------
/M. /DERICK /JEAN /5 BD TOTO /38000 /GRENOBLE /
3 / / / /ETAGE 11 /
/ /
/ / / /BAT. F /
/ /
----------------------------------------------------------------------
4 / /SERVICE / /BP 14 /13001
/MARSEILLE/
/ /INFO / / /
/ /
----------------------------------------------------------------------



le deuxieme... :

--------------------------------------------------------------------------------
1 /CIV /NOM /PREN/ AD 1 /AD 2 / AD 3 / CP
/VILLE /
--------------------------------------------------------------------------------
3 /M. /DERICK /JEAN /5 BD TOTO/ETAGE 11/BAT. F/38000 /GRENOBLE /
--------------------------------------------------------------------------------
Avatar
michdenis
Bonjour Tinou,

Essaie ceci :

Tu copies ceci dans un module standard et
tu adaptes le nom de la feuille et la colonne où
sont tes données.

'------------------------------
Sub test()

Dim Rg As Range, C As Range

With Worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("a65536").End(xlUp).Row) _
.SpecialCells(xlCellTypeConstants)
End With
Application.ScreenUpdating = False
For Each C In Rg
t = Split(C, Chr(10))
If TypeName(t) <> "String" Then
For a = 1 To UBound(t)
C.Offset(, a) = t(a)
C.Replace t(a), ""
C.Replace Chr(10), ""
Next
End If
Next

End Sub
'------------------------------


Salutations!



"tinou" a écrit dans le message de news:
bonjour, l'idee a deja ete posee en mai dernier
(http://www.microsoft.com/office/community/fr-fr/default.mspx?dg=microsoft.public.fr.excel&tidL20bb95-d3e8-45a6-9370-1272512b575a&cat=fr-fr-produitsbureautiques&lang=fr&cr=FR&sloc=fr-fr&m=1&p=1)

le principe est le meme : j'ai dans une cellule plusieurs lignes generees
par des retours chariot ou des sauts de ligne (chr 10 / chr 13 ??)
et j'aimerai que chaque ligne se recopie dans la cellule d'a cote (sauf la
1re ligne)

petit schema... :

A B C D
E F
+-------+----------+---------+------------------+--------+------------+
1 |CIV |NOM |PRENOM|AD 1 |CP |VILLE
|
+-------+----------+---------+------------------+--------+------------+
2 |Mlle |DUPONT |CATY |9 RUE TUC |75001 |PARIS |
+-------+----------+---------+------------------+--------+------------+
|M. |DERICK |JEAN |5 BD TOTO |38000 |GRENOBLE |
3 | | | |ETAGE 11 |
| |
| | | |BAT. F
| | |
+-------+----------+---------+------------------+--------+------------+
| |SERVICE | |BP 14 |13001
|MARSEILLE|
4 | |INFO | |
| | |
+-------+----------+---------+------------------+--------+------------+

etc...

bref on peut donc observer qu'a la ligne 3, dans la colonne D "ad 1",
il y a 3 (sauts de) lignes. Il y en a aussi a la ligne 4, colonne B "nom".

j'aimerai une macro qui me demande sur quelle colonne travailler (inputbox),
et si, par exemple, je reponds "D", elle m'insere autant de colonne qu'il y
a de saut de ligne, (ici, 2 colonnes a droite de D), pour coller "ETAGE 11"
dans E3 et "BAT. F" dans F3... bien sur tous les "CP" se retrouveront en G et
"VILLE" en H...!

on aurait donc :

A B C D E
F G H
+----+---------+------+------------+----------+-------+-------+-----------+
1 |CIV|NOM |PREN |AD1 |AD2 |AD3 |CP
|VILLE |

+----+---------+------+------------+----------+-------+-------+-----------+
2 |Mlle|DUPONT|CATY |9 RUE TUC | | |75001|PARIS
|

+----+---------+------+------------+----------+-------+--------------------+
3 |M. |DERICK |JEAN |5 BD TOTO |ETAGE 11| BAT. F|38000|GRENOBLE |

+---+---------+------+------------+----------+-------+--------------------+
| |SERVICE| |BP 14 | |
|13001|MARSEILLE|
4 | |INFO | | | |
| | |

+----+---------+------+------------+----------+-------+-------+------------+

voila j'espere avoir été claire...
Merci par avance...

Tinou

Ps : je remets les codes pris du mois de mai...
merci clement



sub entroiscellules()
derniereligne = range("a65536").end(xlup).row
for i = 1 to derniereligne
lacellule = cells(i,1).value
lavaleur = split(lacellule, chr(10))
for z = 0 to ubound(lavaleur)
cells(i,z+2).value = lavaleur(z)
next
next
end sub