Boucle sous vba
PYGOS69
Messages postés
452
Date d'inscription
Statut
Membre
Dernière intervention
-
PYGOS69 Messages postés 452 Date d'inscription Statut Membre Dernière intervention -
PYGOS69 Messages postés 452 Date d'inscription Statut Membre Dernière intervention -

Suite à la récupération de cette macro sur le net, pour remplacer INDIRECT EXT, je cherche comment effectuer une boucle, au lieu de répéter x fois le code suivant..
Private Sub Worksheet_Change(ByVal Target As Range)
Dim chemin$, fichier$, feuille$, plage$, dest As Range
chemin = ThisWorkbook.Path & "\"
fichier = [A5]
feuille = [D4]
plage = [h2]
Set dest = [D5]
Application.EnableEvents = False
On Error Resume Next
dest.Resize(Range(plage).Rows.Count, Range(plage).Columns.Count).FormulaArray = _
"=IFERROR('" & chemin & "[" & fichier & "]" & feuille & "'!" & plage & ",0)"
Application.EnableEvents = True
suite
End Sub
Sub suite()
Dim chemin$, fichier$, feuille$, plage$, dest As Range
chemin = ThisWorkbook.Path & "\"
fichier = [A6]
feuille = [D4]
plage = [h2]
Set dest = [D6]
Application.EnableEvents = False
On Error Resume Next
dest.Resize(Range(plage).Rows.Count, Range(plage).Columns.Count).FormulaArray = _
"=IFERROR('" & chemin & "[" & fichier & "]" & feuille & "'!" & plage & ",0)"
Application.EnableEvents = True
suite1
End Sub
Sub suite1()
Dim chemin$, fichier$, feuille$, plage$, dest As Range
chemin = ThisWorkbook.Path & "\"
fichier = [A7]
feuille = [D4]
plage = [h2]
Set dest = [D7]
Application.EnableEvents = False
On Error Resume Next
dest.Resize(Range(plage).Rows.Count, Range(plage).Columns.Count).FormulaArray = _
"=IFERROR('" & chemin & "[" & fichier & "]" & feuille & "'!" & plage & ",0)"
Application.EnableEvents = True
suite2
End Sub
…………………………….etc....
Le tableau est constitué de 8 lignes et de 14 colonnes.
De A5 à A12 le nom des fichiers (toto.xlsm, titi.xlsm)
De la colonne D4 à la colonne O4 = noms des onglets (janvier à décembre)
De D5 à D12 cellules cible
Merci d'avance,
Configuration: Windows / Internet Explorer 11.0
1 réponse
-
Bonjour,
il faut faire une macro paramétrée
ex:
sub suite(Fichier, feuille, plage, dest)
et tu boucles sur des array de ces 4 parametres ou en parcourant tes données sous forme d'une variable-tableau
Mais comme tu nous met une image plutôt que le classeur,sans aucun repère de lignes et de colonnes, on ne peut rien faire pour toi