Expand a macro to varaible data
Résolu/Fermé
nonossov
Messages postés
611
Date d'inscription
lundi 29 décembre 2014
Statut
Membre
Dernière intervention
17 janvier 2020
-
24 oct. 2019 à 16:16
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020 - 11 déc. 2019 à 10:40
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020 - 11 déc. 2019 à 10:40
A voir également:
- Expand a macro to varaible data
- App data - Guide
- Macro logiciel - Télécharger - Organisation
- Macro word - Guide
- Qwerty to azerty - Guide
- Macro recorder - Télécharger - Confidentialité
1 réponse
jordane45
Messages postés
38112
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 mars 2024
4 635
24 oct. 2019 à 17:07
24 oct. 2019 à 17:07
Bonjour,
Afin de faire gagner du temps à tout le monde et éviter de devoir télécharger ton fichier...
voici le code VBA que tu utilises actuellement:
On notera que tu as utilisé l'enregistreur de macros... et que tu as laissé plein de lignes inutiles.
Il faut également éviter les .Select ... Copy... Paste....
A la place, on ciblera directement les cellules désirées et on manipulera les "VALUE"
Pour ce qui est de définir des "plages de cellules" de façon "automatique", tu peux utiliser du code tel que :
qui te permet d'avoir le numero de la dernière ligne et celui de la dernière colonne.
A toi d'adapter ensuite à tes besoins.
Quoi qu'il en soit, en l'état, nous balancer un code en vrac en nous disant d'aller le lancer pour voir ce qu'il doit faire et qu'ensuite on te fournisse le code tout cuit... (c'est sincèrement à ça que ta question fait penser.... ) ce n'est pas top.
Donc revient nous voir avec une explication claire et détaillée de ce que tu souhaites faire....
Du code que tu auras tenté de réaliser pour y arriver... et le détail des éventuels soucis rencontrés.
Afin de faire gagner du temps à tout le monde et éviter de devoir télécharger ton fichier...
voici le code VBA que tu utilises actuellement:
Sub TVA() ' ' TVA Macro ' ' Keyboard Shortcut: Ctrl+Shift+T ' Sheets("Wide export journal 2018").Select ActiveWindow.SmallScroll Down:=-31 Range("D2").Select Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select Range("A2").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("B5").Select ActiveSheet.Paste Sheets("BD").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Sheets("TVA").Name = "TVA" Range("C5").Select ActiveSheet.Paste Range("J5").Select Sheets("Wide export journal 2018").Select Range("F3").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select Range("F4").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("K5").Select ActiveSheet.Paste Range("P5").Select Sheets("Wide export journal 2018").Select Range("G2").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Range("Q5").Select Sheets("Wide export journal 2018").Select ActiveWindow.SmallScroll Down:=38 Range("A47").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select ActiveWindow.SmallScroll Down:=-38 Range("D21").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("A6").Select ActiveSheet.Paste Range("B6").Select Sheets("Wide export journal 2018").Select Range("A21").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Sheets("BD").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("C6").Select ActiveSheet.Paste Range("J6").Select Sheets("Wide export journal 2018").Select Range("F22").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select Range("F23").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("K6").Select ActiveSheet.Paste Range("P6").Select Sheets("Wide export journal 2018").Select Range("G21").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select ActiveWindow.SmallScroll Down:=49 Range("A67").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Sheets("TVA").Name = "TVA" Range("Q6").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select ActiveWindow.SmallScroll Down:=-39 Range("D18").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("A7").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select Range("A18").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("B7").Select ActiveSheet.Paste Sheets("BD").Select Range("B3:H3").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("C7").Select ActiveSheet.Paste Range("J7").Select Sheets("Wide export journal 2018").Select Range("F19").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Range("K7").Select Sheets("Wide export journal 2018").Select Range("F20").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Range("P7").Select Sheets("Wide export journal 2018").Select Range("G18").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Application.CutCopyMode = False Sheets("Wide export journal 2018").Select Application.CutCopyMode = False Selection.Copy Range("F20").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select Range("G18").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("P7").Select ActiveSheet.Paste Sheets("Wide export journal 2018").Select ActiveWindow.SmallScroll Down:=62 Range("A93").Select Application.CutCopyMode = False Selection.Copy Sheets("TVA").Select Range("Q7").Select ActiveSheet.Paste Columns("J:J").ColumnWidth = 15.5 Columns("J:J").ColumnWidth = 17.83 Columns("K:K").ColumnWidth = 14.17 Columns("K:K").ColumnWidth = 16.33 Columns("P:P").ColumnWidth = 15.67 Columns("P:P").ColumnWidth = 18 End Sub
On notera que tu as utilisé l'enregistreur de macros... et que tu as laissé plein de lignes inutiles.
Il faut également éviter les .Select ... Copy... Paste....
A la place, on ciblera directement les cellules désirées et on manipulera les "VALUE"
Pour ce qui est de définir des "plages de cellules" de façon "automatique", tu peux utiliser du code tel que :
'Find the last non-blank cell in column A(1) lRow = Cells(Rows.Count, 1).End(xlUp).Row 'Find the last non-blank cell in row 1 lCol = Cells(1, Columns.Count).End(xlToLeft).Column
qui te permet d'avoir le numero de la dernière ligne et celui de la dernière colonne.
A toi d'adapter ensuite à tes besoins.
Quoi qu'il en soit, en l'état, nous balancer un code en vrac en nous disant d'aller le lancer pour voir ce qu'il doit faire et qu'ensuite on te fournisse le code tout cuit... (c'est sincèrement à ça que ta question fait penser.... ) ce n'est pas top.
Donc revient nous voir avec une explication claire et détaillée de ce que tu souhaites faire....
Du code que tu auras tenté de réaliser pour y arriver... et le détail des éventuels soucis rencontrés.
11 déc. 2019 à 10:40