Automatisation : Une ligne en deux lignes + permutation de blocs
Résolu/Fermé
Zinkzink
Messages postés
2
Date d'inscription
mercredi 21 août 2013
Statut
Membre
Dernière intervention
22 août 2013
-
21 août 2013 à 13:51
Zinkzink Messages postés 2 Date d'inscription mercredi 21 août 2013 Statut Membre Dernière intervention 22 août 2013 - 22 août 2013 à 06:29
Zinkzink Messages postés 2 Date d'inscription mercredi 21 août 2013 Statut Membre Dernière intervention 22 août 2013 - 22 août 2013 à 06:29
A voir également:
- Automatisation : Une ligne en deux lignes + permutation de blocs
- Logiciel automatisation mac - Guide
- Logiciel automatisation clic souris - Télécharger - Divers Utilitaires
- Choisir les applications qui se lancent au démarrage du Mac - Guide
- Créer un script d’automatisation - Forum Windows 10
- Automatic Mouse and Keyboard - Télécharger - Divers Utilitaires
5 réponses
via55
Messages postés
14512
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 janvier 2025
2 740
21 août 2013 à 14:42
21 août 2013 à 14:42
Bonjour zinkzink
Une possibilité par formule sans macro :
https://www.cjoint.com/?0HvoPrJJ6Pz
A adapter à ton fichier
Cdlmnt
Une possibilité par formule sans macro :
https://www.cjoint.com/?0HvoPrJJ6Pz
A adapter à ton fichier
Cdlmnt
tontong
Messages postés
2569
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
22 janvier 2025
1 059
21 août 2013 à 16:50
21 août 2013 à 16:50
Bonjour,
Le mieux est parfois l'ennemi du bien.
Sur la très bonne base proposée par Via55 j'ai voulu simplfier la procédure: pas de colonne A auxiliaire, 1 formule en B1, 1 formule en F1.
En B1 =INDEX(donnees;$A1;COLONNE()-1) devient:
=INDEX(donnees;2*ENT((LIGNES($1:1)-1)/2)+1;COLONNE()+8*MOD((LIGNES($1:1)-1)/2;1)-1) à recopier jusqu'à E6.
En F1=INDEX(donnees;$A1+1;COLONNE()-5) devient:
=INDEX(donnees;2*ENT((LIGNES($1:1)-1)/2)+2;COLONNE()-8*MOD(LIGNES($1:1)/2;1)-1) à recopier jusqu'à I6
La lisibilité des formules en souffre beaucoup!!!
Le mieux est parfois l'ennemi du bien.
Sur la très bonne base proposée par Via55 j'ai voulu simplfier la procédure: pas de colonne A auxiliaire, 1 formule en B1, 1 formule en F1.
En B1 =INDEX(donnees;$A1;COLONNE()-1) devient:
=INDEX(donnees;2*ENT((LIGNES($1:1)-1)/2)+1;COLONNE()+8*MOD((LIGNES($1:1)-1)/2;1)-1) à recopier jusqu'à E6.
En F1=INDEX(donnees;$A1+1;COLONNE()-5) devient:
=INDEX(donnees;2*ENT((LIGNES($1:1)-1)/2)+2;COLONNE()-8*MOD(LIGNES($1:1)/2;1)-1) à recopier jusqu'à I6
La lisibilité des formules en souffre beaucoup!!!
Bonjour
Voila une macro
Sub Transpose()
' Le tableaux commence en B15
Application.ScreenUpdating = False
Range("L15:S28").Delete
For L = 15 To 20 Step 2
Range(Cells(L, 2), Cells(L, 5)).Copy
Cells(L, 12).PasteSpecial xlPasteAll
Cells(L, 12).PasteSpecial xlPasteColumnWidths
Range(Cells(L, 6), Cells(L, 9)).Copy
Cells(L + 1, 12).PasteSpecial xlPasteAll
L1 = L + 1
Range(Cells(L1, 2), Cells(L1, 5)).Copy
Cells(L1 - 1, 16).PasteSpecial xlPasteAll
Cells(L1 - 1, 16).PasteSpecial xlPasteColumnWidths
Range(Cells(L1, 6), Cells(L1, 9)).Copy
Cells(L1, 16).PasteSpecial xlPasteAll
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
Range("A1").Select
End Sub
A+
Maurice
Voila une macro
Sub Transpose()
' Le tableaux commence en B15
Application.ScreenUpdating = False
Range("L15:S28").Delete
For L = 15 To 20 Step 2
Range(Cells(L, 2), Cells(L, 5)).Copy
Cells(L, 12).PasteSpecial xlPasteAll
Cells(L, 12).PasteSpecial xlPasteColumnWidths
Range(Cells(L, 6), Cells(L, 9)).Copy
Cells(L + 1, 12).PasteSpecial xlPasteAll
L1 = L + 1
Range(Cells(L1, 2), Cells(L1, 5)).Copy
Cells(L1 - 1, 16).PasteSpecial xlPasteAll
Cells(L1 - 1, 16).PasteSpecial xlPasteColumnWidths
Range(Cells(L1, 6), Cells(L1, 9)).Copy
Cells(L1, 16).PasteSpecial xlPasteAll
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
Range("A1").Select
End Sub
A+
Maurice
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zinkzink
Messages postés
2
Date d'inscription
mercredi 21 août 2013
Statut
Membre
Dernière intervention
22 août 2013
22 août 2013 à 06:29
22 août 2013 à 06:29
Mille merci pour vos réponses, ça devrait le faire.