Bonjour,
Je souhaiterais savoir si quelqu'un sait (ou a déjà réalisé) comment importer des données à partir d'un autre classeur Excel contenant "n" onglets.
La procédure est la suivante:
1) Ouvrir le classeur
2) Sélectionner sur chaque onglet une cellule de destination
3) Copier cette ou ces cellules de le classeur de synthèse
Je suis totalement débutant en VBA et en programmation donc si jamais quelqu'un peut m'aider, je le remercie d'avance.
Le code plante et me dit l'indice n'appartient pas à la sélection (je présume qu'il y a un soucis dans ma boucle et le "i" représentant le numéro des onglets...)
Voici le code :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 Sub calcul() 'PARTIE 1/////////////////////////// 'type variables itération Dim i As Integer Dim j As Integer Dim Produits As String Dim Enzyme As Double Dim DossierTravail As String Dim ouvre As String Dim ouvre2 As String Dim fichier As String Dim nom As String Application.ScreenUpdating = False 'pour désactiver le rafraichissement de l'écran pendant l'éxecution de la macro fichier = "Produits" & ".xls" DossierTravail = ActiveWorkbook.Path ouvre = DossierTravail & "\test\" & fichier ouvre2 = DossierTravail & "\Indicateurs_bdd_essai.xls" Workbooks.Open Filename:=ouvre For i = 1 To Sheets.Count Sheets("i").Select Range("S2").Select nom = Range("S2").Value For j = 1 To 181 ' ////////////////// transposition Enzyme /////////////////////////// If (Range("A" & j) = "Enzyme") Then Range("H" & j).Select Enzyme = Range("C" & j).Value End If ' ////////////////// ecriture dans fichier de synthese/////////////////////////// ThisWorkbook.Activate Sheets("Feuil3").Select Range("Q" & i + 3) = nom Range("R" & i + 3).Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = Enzyme Next j Next i Workbooks(fichier).Close End Sub
Partager