Boucle sous vba

Fermé
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 - Modifié le 26 juin 2020 à 12:22
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 - 29 juin 2020 à 22:32
Bonjour,

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

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié le 27 juin 2020 à 09:40
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


1
PYGOS69 Messages postés 452 Date d'inscription jeudi 23 août 2012 Statut Membre Dernière intervention 10 octobre 2023 21
Modifié le 29 juin 2020 à 22:36
Merci Michel !
J'essaie de mettre un fichier.....
Les cellules concernées sont De A4 à O12

A plus tard, bonne fin de journée !
0