XL 2021 Transformation de données sur une ligne en plusieurs lignes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

xavieralvaro

XLDnaute Nouveau
Bonjour à tous,

Je bug depuis quelques jours sur cette problématique (cf fichiers joint) j'ai des données sur une ligne, dans mon fichier : ligne 1 et 2 (mais fichiers originaux peuvent avoir jusqu'à 300 lignes de données. et je dois les dispatcher comme indiquer sur mon fichiers à partir de la ligne 8. j'ai essayer avec power query, je n'y suis pas arriver, ensuite j'ai fait une macro qui fonctionne mais qui prends en compte les numéro de ligne donc à chaque fois il repars de la ligne1 et écrase les données précédentes. Lorsque j'enregistre ma macro je déplace mes données par des couper coller je ne sais pas si s'est bien. Etant néophyte je suis preneur de vos conseils et aides ou autres solutions
je vous met ma macro ci dessous :
Sub Macro2()
'
' Macro2 Macro
'
Range("A2").Select
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("A2:A7"), Type:=xlFillDefault
Range("A2:A7").Select
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B7"), Type:=xlFillDefault
Range("B2:B7").Select
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C7"), Type:=xlFillDefault
Range("C2:C7").Select
Sheets("Macro").Select
Range("G2").Select
Selection.Copy
Range("G2").Select
Application.CutCopyMode = False
Selection.Cut
Range("G3").Select
ActiveSheet.Paste
Range("H2").Select
Selection.Cut
Range("G4").Select
ActiveSheet.Paste
Range("I2").Select
Selection.Cut
Range("E5").Select
ActiveSheet.Paste
Range("E5").Select
Selection.Copy
Range("F5").Select
ActiveSheet.Paste
Range("J2").Select
Application.CutCopyMode = False
Selection.Cut
Range("G6").Select
ActiveSheet.Paste
Range("K2").Select
Selection.Cut
Range("G7").Select
ActiveSheet.Paste
Range("L2").Select
Selection.AutoFill Destination:=Range("L2:L7"), Type:=xlFillDefault
Range("L2:L7").Select
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M7"), Type:=xlFillDefault
Range("M2:M7").Select
Range("N2").Select
Selection.AutoFill Destination:=Range("N2:N7"), Type:=xlFillDefault
Range("N2:N7").Select
End Sub

merci pour votre futur aide
 

Pièces jointes

Bonsoir Xavieralvaro, et bienvenu sur XLD,
Pour le code utilisez la balise "</>", c'est plus lisible. 🙂
En PJ un essai. La macro se lance automatiquement lorsqu'on sélectionne la feuille Destination.
J'ai supposé que sur une ligne il ne pouvait y avoir que 2 TTC Taux.
NB: J'ai updaté la PJ pour accélérer le processus. Dans cette PJ, sur mon vieux XL2007, 300 lignes sont traitées en 0.5s, ce qui me semble raisonnable.
 

Pièces jointes

Dernière édition:
Bonsoir Xavieralvaro, et bienvenu sur XLD,
Pour le code utilisez la balise "</>", c'est plus lisible. 🙂
En PJ un essai. La macro se lance automatiquement lorsqu'on sélectionne la feuille Destination.
J'ai supposé que sur une ligne il ne pouvait y avoir que 2 TTC Taux.
NB: J'ai updaté la PJ pour accélérer le processus. Dans cette PJ, sur mon vieux XL2007, 300 lignes sont traitées en 0.5s, ce qui me semble raisonnable.
Super, Merci pour votre aide. C'est exactement ça. Je vais essayer de décrypter vos macro pour comprendre ce que vous avez fait et essayer de le reproduire. A nouveau merci et bravo pour votre réactivité.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Formules
Réponses
2
Affichages
660
Réponses
22
Affichages
3 K
Retour