VBA Excel 2007 Problème de variable objet. Erreur 91 - VB/VBA/VBS - Programmation
Marsh Posté le 01-03-2011 à 13:59:19
Hello,
essaie avec
au lieu de
mais ca parait bizarre car normalement tu aurais du avoir l'erreur lors de la modification de la variable myWorkbook
Marsh Posté le 01-03-2011 à 14:04:59
Du coup j'ai une erreur sur la ligne que tu m'as dis de modifier.
Erreur 424 , objet requis.
Pourtant dans l'en-tête j'ai mis :
Public myWorkbook As Workbook
....
Merci
Marsh Posté le 02-03-2011 à 10:17:52
Si nomClasseur est le nom du classeur en type Chaine ca ne peut pas marcher...
Si c'est le cas, je passerai par un truc comme ca :
With Workbooks(nomClasseur).Sheets ("Dépenses prévisionnelles" )
ou si vraiment tu veux passer par 'myWorkbook'
Set myWorkbook = Workbooks(nomClasseur)
Marsh Posté le 02-03-2011 à 11:16:00
C'est ce que j'ai finis par faire hier le :
With Workbooks(nomClasseur).Sheets("Dépenses prévisionnelles" )
Mais maintenant ça me dit que l'indice n'appartient pas à la sélection sur cette ligne là...
Marsh Posté le 02-03-2011 à 11:17:09
Erreur dans le nom de l'onglet ? "Dépenses prévisionnelles"
Marsh Posté le 02-03-2011 à 11:33:43
pour éviter toutes erreurs, j'ai pour habitude de faire des copier coller des noms.
Là je l'ai pris directement de l'onglet...
Et dans une autre portion de code j'arrive à l'atteindre cette feuille, mais je ne fais pas la même méthode car je ne recherche pas sur une plage, je prends la valeur d'une cellule particulière pour la copier dans mon tableau de bord. (ADODB)
Marsh Posté le 02-03-2011 à 12:50:40
L'erreur est sur ta ligne 14 ?
Et myWorkbook.name renvoie bien le nom de ton classeur ?
Marsh Posté le 02-03-2011 à 13:06:04
Je ne sais pas car finalement j'ai opté pour :
With Workbooks(nomClasseur).Sheets("Dépenses prévisionnelles" )
que je trouve plus simple finalement de compréhension et de lecture pour les autres développeurs qui suivront mon projet après mon stage...
Mais lorsque je fais en F8, j'affiche les variables et nomClasseur porte bien le nom du classeur en question...
Marsh Posté le 02-03-2011 à 13:10:56
ReplyMarsh Posté le 02-03-2011 à 14:10:09
Non... ça me dit que l'indice n'appartient pas à la sélection sur cette ligne là :
With Workbooks(nomClasseur).Sheets("Dépenses prévisionnelles" )
:S
Marsh Posté le 02-03-2011 à 14:48:12
Et juste avant un
Msgbox nomClasseur
Te donne quoi ?
Marsh Posté le 02-03-2011 à 15:58:29
Fiche INFO 0000 - unNomDeSubventionneur
Ce qui est le nom du classeur :s
Marsh Posté le 02-03-2011 à 16:05:26
Hum, je pense avoir compris, il te manque le ".xls" ou ".xlsx"
Avec un truc de ce genre :
Code :
|
myWorkbook.Name renvoie bien MonClasseur.xls et le code passe sans souci
Et si je fais :
Code :
|
Ca me met la meme erreur que toi
Et si je fais :
Code :
|
Ca passe
Marsh Posté le 02-03-2011 à 22:12:49
Bonjour,
Hum... Je pratique pas beaucoup ce genre de sport ! mais Akhane a dit
Je lis les fichiers excel sans les ouvrir
ça ne m'étonne donc pas trop que " l'indice n'appartient pas à la sélection"
En effet, je suppose que Workbooks(...) ne considère que les classeurs ouverts.
Il doit donc y avoir une autre manière de lire dans le classeur non ouvert.
A+
Marsh Posté le 03-03-2011 à 09:38:49
Citation : Hum, je pense avoir compris, il te manque le ".xls" ou ".xlsx" |
Alors en fait je me suis arrangée pour que le .xls soit directement dans le nom du classeur, et je fais un msgBox juste avant le with et le nom du classeur est bien complété du .xls
Cependant l'erreur persiste!
Citation : Bonjour, |
Ce que j'appelle lire un fichier excel sans l'ouvrir c'est le fait de pouvoir aller chercher des informations dans ce dossier sans pour autant qu'il s'ouvre de manière visuelle pour l'utilisateur. Et j'y suis arrivée dans une autre portion de code à lire une information dans cette feuille précisément et à copier la valeur de la cellule dans mon tableau de bord...
Donc je pensais procéder de la même façon pour cette portion de code :
Marsh Posté le 03-03-2011 à 09:54:35
Si je me trompe pas pour le problème d'extension, il peut etre résolu en modifiant les parametres des dossiers.
si tu es sous XP :
Démarrer -> Panneau de configuration -> Option des dossiers -> Affichage -> décocher "Masquer les extensions des fichiers dont le type est connu"
Marsh Posté le 03-03-2011 à 11:29:21
ReplyMarsh Posté le 03-03-2011 à 12:32:29
Je vais continuer à chercher.
Merci quand même
C'est sympa pour l'aide!
Marsh Posté le 03-03-2011 à 15:18:55
Sinon, envoie moi le fichier, je zieuterai avec des fichiers appelés fictifs...
Marsh Posté le 01-03-2011 à 13:51:07
Bonjour à tous,
Je suis actuellement en stage dans le cadre de ma 2ème année de BTS Informatique de Gestion, option développeur d'applications.
Je dois réaliser des macros afin de générer un tableau de bord sous excel.
Cette portion de code appelle des fonctions qui servent à remplir mon tableau de bord.
Mon main fait défiler un par un les fichiers excel servant de "bdd" pour créer le tableau de bord. Je lis les fichiers excel sans les ouvrir. (autre portion de code)
Portion du main :
La 1ère fonction recupAnnees récupère toutes les années où le fichier actif comporte des subventions (Dans A8:A200 il n'y a que des années, et elle n'apparaissent qu'une seule fois).
La 2ème fonction remplie les cellules du tableau de bord en fonction de certaines données recherchées à un endroit précis dans les fichiers excel annexes,et ce selon l'année.
(La fonction n'est pas finie et ne servira à rien pour mon problème présent).
Voilà pour l'explication succinte de mon code.
J'ai une erreur 91 : variable objet ou de bloc with non définie sur la ligne en gras et rouge.
Quelqu'un aurait-il une idée?
Merci d'avance,
Cdt
Akhane.