XL 2010 Question Workbooks

Pozaec

XLDnaute Nouveau
Bonjour,

Pour mon stage je dois gérer deux fichiers excel, c'est a dire prendre les valeur que j'ai eu avec un premier programme et les envoyées dans un autre fichier excel, mais je ne comprend pas comment fonctionne la gestion des classeurs,
Lorsque je déclare le classeur cible, je n'arrives plus a travailler sur le classeur de base ou je suis, il me sors une erreur comme si il ne le trouvais plus, "erreur 9, l'indice n'appartient pas a la sélection". j'ai casiment tout essayé toute la matinée mais il y a un truc que je dois louper et ça commence à me rendre zinzin

voici l'extrait du code qui pose problème, le classeur de base contient la feuille consommation où sont les valeurs à envoyer sur l'autre classeur:
Sub copie_valeurs()

Set classeur = ActiveWorkbook
'Set classeur = Workbooks("C:\Users\lhelblin\Documents\Stage\Fichiers excel\Alpha.v1.xlsm")
Set classeur1 = Workbooks.Open("C:\Users\lhelblin\Documents\Stage\Fichiers excel\Matières productions plafonds 2016cop.xlsx")

' classeur1 = "C:\Users\lhelblin\Documents\Stage\Fichiers excel\Matières productions plafonds 2016cop.xlsx"
' classeur = "C:\Users\lhelblin\Documents\Stage\Fichiers excel\Alpha.v1.xlsm"
'
'Workbooks.Open(classeur1).Activate
'thisWorkbooks.Activate


tabmois = Array("indexage", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre")

'classeur.Activate
nbcolonne = (Sheets("consommation").Cells(1, Columns.Count).End(xlToLeft).Column) - 1 <--le programme bloque a l'exécution de la première ligne qui touche au classeur de base
nbligne = (classeur.Worksheets("consommation").Cells(Application.Rows.Count, 1).End(xlUp).Row) - 1 <-- ce modèle la ne fonctionne pas non plus c'est meme pire

Merci d'avance,

Pozaec
 

vgendron

XLDnaute Barbatruc
Re : Question Workbooks

Hello
nbcolonne = (Sheets("consommation").Cells(1, Columns.Count).End(xlToLeft).Column) - 1
nbligne = (classeur.Worksheets("consommation").Cells(Applica tion.Rows.Count, 1).End(xlUp).Row) - 1

Tu ne lui dis pas de quel classeur il s'agit.. juste la feuille..
d'ailleurs. je présume que si tu remets le "classeur.activate", ca fonctionne.. non?
dans ce cas par défaut, il prend la feuille "consommation" du classeur actif

essaie avec

Code:
with classeur
   nbcolonne = .Sheets("consommation").Cells(1, Columns.Count).End(xlToLeft).Column) - 1 
   nbligne = .sheets("consommation").Cells(Rows.Count, 1).End(xlUp).Row) - 1 
end with
 
Dernière édition:

Pozaec

XLDnaute Nouveau
Re : Question Workbooks

J'ose pas trop donner le fichier car la base viens de mon entreprise, oui le nom est bien identique j'ai fait un copié collé d'un autre programme qui marche, je vais essayer de faire ça dans un autre module car pour l'instant j'ai plusieurs Sub dans le meme module, c'est peut etre ça le souci, sinon je n'ai plus qu'a devenir chèvre

merci de tes réponses :)

[EDIT:]
Non, toujours pas de changement :(
 
Dernière modification par un modérateur:

Pozaec

XLDnaute Nouveau
Re : Question Workbooks

je regarde tout ça et je te redis, est-ce possible qu'une protection sur le fichier visé fasse tout planté ? car meme une pauvre instruction dans un autre module, de comptage ne marchais plus, et après redémarrage d'excel, tout fonctionnais, mais apres relancement du bout de code pour appelé le fichier visé, plus rien ne remarchais

merci beaucoup !
 

Pozaec

XLDnaute Nouveau
Re : Question Workbooks

Pas de protections, je ne comprends pas, je vais essayer d'envoyer la feuille complète et de refaire un prog sur mon deuxième fichier au lieux d'envoyer valeur par valeur ce sera peut etre plus simple
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 860
Membres
103 978
dernier inscrit
bderradji