Bonjour,
J'ai été débordé cette semaine mais j'ai pu avancer grâce à ton information et cela fonctionne. Le code est très moche pour le moment et je souhaite l’optimiser à l'aide de ton exemple du tutoriel.
Je suis confronté à un problème de perte de valeur lors du passage d'un range à une procédure.
Je que j'ai fait:
Création d'une feuille "Parametre rapport" contenant l'ensemble des paramètres avec des plages nommées
Un tableau à 3 colonnes dans lequel (ligne à ligne), on donne le nom de la plage de critère, la plage d'entête, la description
Une feuille de résultat "Rapport"
L'objectif parcourir le tableau de critère afin d'afficher les résultats des recherches les un sous les autres.
Voici le code qui me pose souci:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Set znSelection = Worksheets("Parametre rapport").Range("B2").CurrentRegion
For row = 2 To znSelection.Rows.Count
Set argCriteria = Range(znSelection.Cells(row, 2))
Set argEntete = Range(znSelection.Cells(row, 4))
NomRequete = znSelection.Cells(row, 5).Value
'Création de l'entête de tableau
Call entete_col(NoligEncours, argEntete)
MsgBox NomRequete
Next
Sub entete_col(ligne As Integer, acEntete As Range)
'copy de l'entête
Range(acEntete).Select
Selection.Copy
Sheets("Rapport").Select
Range("B" & ligne).Paste
ActiveSheet.Paste
end sub |
Lorsque j'exécute le code, j'ai affiché, jusque avant l'appel à procédure, l'adresse de argEntete.adress. La variable est bien instanciée mais quand j'arrive dans ma procédure, elle n'est plus connue.
Il doit y avoir un problème dans mon appel à la procédure mais lequel je ne vois pas.
Partager