Bonjour,
Je suis tout nouveau sur le site et vous remercie d'avance pour vos réponses.
Actuellement en stage, je dois réaliser une macro excel permettant de mettre en forme des données importées "brutes".
Note: Chaque onglet comporte des données semblables (les colonnes sont les mêmes, en revenche, le nombre de ligne peut varier)
J'ai donc mis les mains dans le VBA et le découvre doucement, j'ai créé un programme dans l'optique de répéter les actions suivantes pour chaque feuille du classeur:
1 - Création d'un tableau s'adaptant au nombre de lignes (ca fonctionne), chaque tableau porte le nom de la feuille de calcul correspondante. => J'arrive à le faire répéter pour chaque feuille
2 - Opérations entre les différentes colonnes (exemple, je veux que dans le colonne 4, on y trouve le produit de la colonne 2 et 3) => Ca fonctionne mais je n'arrive pas à répéter cette opération à cause du nom des tableaux...
Mes tableaux ont donc pour nom "nomdefeuille1", "nomdefeuille2" etc... ActiveSheet.Name renvois normalement au nom de la feuille (et donc dans mon cas au nom de chaque tableau) mais je n'arrive pas à l'exploiter => J'ai mis des "?????" à la fin de mon programme pour vous demander que mettre ?
Pourriez vous s'il vous plait m'aider pour pouvoir réussir à boucler mon étape 2 sur tous les onglets, je suis sur que c'est un détail mais pardonnez moi, je débute... ^^
Je reste à votre disposition, vous remercie d'avance et vous fournit mon script
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Sub Boucle_de_répétition() Dim WS_Count As Integer Dim I As Integer ' Set WS_Count equal to the number of worksheets in the active ' workbook. WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop. For I = 1 To WS_Count If I < WS_Count Then Call Creation_de_tableau Call Operations ActiveSheet.Next.Select Else Call Creation_de_tableau Call Operations End If Next I End Sub Sub Creation_de_tableau() 'Données rangées dans un tableau partant le même nom que celui de la feuille active 'Selection d'une box balayant le domaine utilisé Range("A1", Range("A1").End(xlToRight)).Select Range(ActiveCell, ActiveCell.End(xlToLeft)).Select 'Création du tableau à partir de la selection ActiveSheet.ListObjects.Add(xlSrcRange, , , xlYes).Name = _ ActiveSheet.Name ActiveSheet.ListObjects(ActiveSheet.Name).TableStyle = "TableStyleLight8" End Sub Sub Operations() Range("???????[Colonne4]").FormulaR1C1 = "=????????[Colonne2]*????????[Colonne3]" End Sub
Partager