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"

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
sh.cells(rowcall, cl).value = adresse(i).resultat => le code s'arrete ici, sans raison.
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