bonjour
cela fait un moment que j'essaye des tas de solution, rien a faire.
mon code s'arrete toujours sur un vulgaire appel de cellule, sans que rien ne l'explique, et sans le moindre message d'erreur. j'ai tout tenté, je sais plus quoi inventer. des idées ?
donc quelques bout de mon code pour illustration (excel 2010)
je commence dès le début de ma fonction, avant toute autre chose, a m'assurer d'enregistrer dans trois variables de quoi revenir plus tard a mon point de départ.
donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dim sh as worksheet dim rowcall, colcall as long set sh = workbooks(application.caller.worksheet.parent.name).worksheets(application.caller.worksheet.name) rowcall = application.caller.row colcall = application.caller.column
ensuite il y a tout un code qui permet de mettre dans un arraw de variable de type personnel (adresse() as cellule; cellule etant mon type perso) des résultat issue de d'autre fichiers excel.
chaque fichier est ouvert, les donnée copié, et fermé, sans faire appel ni a des "activate", ni copy, paste, ou autre. j'agis toujours uniquement sur des workbook.worksheet.cells.value directement.
à la fin, ces résultat issue d'import doivent etre copié dans l'excel dont est issue la formule (car le tout est dans une fonction <=> s'utilise en temps que formule) à une colonne donnée, et la ligne de la formule.
j'ai une plage range qui contient les "titre" des colonnes, j'y cherche un titre en particulier, c'est lui qui détermine la colonne. ce range s'appelle "plagesortie"
sh.cells(rowcall, cl).value = adresse(i).resultat => le code s'arrete ici, sans raison.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 for each cel in plagesortie if cel.value = nom then cl = cel.column sh.cells(rowcall, cl).value = adresse(i).resultat exit for end if next set sh = nothing end function
tout le reste marche, et en placant un espion, tout contient pourtant les bonnes variables.
sh pointe bien sur le bon workbook et worksheet
la plage est bien scanné, le "nom" trouvé et cl retourne bien alors le bon n° de colonne
le n° de ligne est bien toujours dans "rowcall"
alors ... quoi ????
je sais plus quoi inventer.
j'ai testé sans objet "sh", en faisant directement un workbook.worksheet.cells()
avec ou sans 'application' devant
sans rien (cells().value directement)
je vois plus quoi faire.
merci a tout ceux qui peuvent m'eclairer de leurs lumiere ! moi je craque![]()
Partager