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
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
J'essaie de mettre un fichier.....
Les cellules concernées sont De A4 à O12
A plus tard, bonne fin de journée !