Coller transposer dans differentes colonnes selon la celulle

Fermé
pinkbaby91 Messages postés 23 Date d'inscription mercredi 11 novembre 2015 Statut Membre Dernière intervention 17 août 2016 - 3 juin 2016 à 16:40
pinkbaby91 Messages postés 23 Date d'inscription mercredi 11 novembre 2015 Statut Membre Dernière intervention 17 août 2016 - 3 juin 2016 à 18:18
Bonjour à tous,
Je travaille sur un fichier excel qui va etre documenté par différentes personnes. Je souhaite pouvoir copier transposer différentes colonnes de mon fichier
A colonne A, j'ai un Numauto( mon fichier s'exporte d'access). Un numero par ligne
En colonnes BG à BU, j'ai, sur la premiere lignes, des monnaies (EUR, JPY, RUB, CNY, TRY...) et sur les lignes suivantes, attribuées à chaque NumAuto, des montants de monnaies

Je souhaiterai grace a une macro, pouvoir recuperer, en colonne les monnaies de ma premiere ligne BG BU (qu'il faudra dupliquer en fonction du nombre de Numauto), les montants et mon numAuto dupliqué en face de chaque monnaie.
En gros sur excel ca donne ca (en me supprimant les lignes à 0
ce que l'on documente

Numauto / RUB / JPY / EUR/ USD
1 25 / 200/ 45 / 0
2 30 / 56 / 80 / 90

Et je souhaite obtenir

1 RUB 25
1 JPY 200
1 EUR 45
2 RUB 30
2 JPY 56
2 EUR 80
2 USD 90


Si quelqu'un sait m'aider!! je seche!!
Merci
A.

1 réponse

via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 704
3 juin 2016 à 17:25
Bonjour

Essaie cette macro, à adapter éventuellement à ton fichier (en ce qui concerne les feuilles) à lancer depuis la 1ere feuille :
Sub transfert()
Dim ligne As Long
'dernière ligne remplie 1ere feuille
ligne = Sheets(1).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
' boucle sur les lignes de 1er feuille
For x = 2 To ligne
numero = Range("A" & x)
' boucles sur les  colonnes BG à BU
For y = 59 To 73
monnaie = Cells(1, y)
' si valeur> 0 dans une colonne
If Cells(x, y) > 0 Then
' incremente de 1 le n° de ligne de recopie et inscrit données
lg = lg + 1
With Sheets(2)
.Range("A" & lg) = numero
.Range("B" & lg) = monnaie
.Range("C" & lg) = Cells(x, y)
End With
End If
Next y
Next x
End Sub


Cdlmnt
Via


0
pinkbaby91 Messages postés 23 Date d'inscription mercredi 11 novembre 2015 Statut Membre Dernière intervention 17 août 2016
3 juin 2016 à 18:18
Je suis toujours ebahie de voir les reponses si rapides, si fiables et si faciles à utiliser
C'est exactement ce dont j'avais besoin...
Merci, Merci Infiniement
0