Chercher un document en VB sur excel

Résolu/Fermé
ced - Modifié par ced le 20/05/2010 à 10:11
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 20 mai 2010 à 11:34
Bonjour,

j'aimerai pouvoir aller chercher des infos dans un document excel fermé a partir d'une macro d'un autre document excel.

pour le moment mon code est :

        LabelDoc = Cells(34 + i, 2).Value 
        Windows(LabelDoc).Activate   ' "LabelDoc" est le nom de mon document excel ou se trouve les infos que je cherche         
        Application.Goto Reference:="TableListe" 
        Selection.Copy 
        Windows("Test de macro.xls").Activate 
        Sheets("Liste").Activate 
        Cells(cellule, 1).Select 
        ActiveSheet.Paste


la ligne qui me permet d'acceder au document ou se trouve les infos que je cherche est :
" Windows(LabelDoc).Activate "

Le problème est que je suis obligé d'ouvrir mon document avant de lancer ma macro sinon le message d'erreur suivant apparait : "l'indice n'appartient pas a la selection".
En gros il ne trouve pas mon document; en sachant aussi que tous mes documents sont dans le même fichier.

merci d'avance pour vos aides !
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
Modifié par pijaku le 20/05/2010 à 10:34
Bonjour,
aller chercher des infos dans un document excel fermé n'est pas si évident que cela. Vous trouverez ici tout ce que vous avez besoin de savoir pour cela.
Personnellement, je préfère :
- ouvrir le classeur concerné,
Workbooks.Open Filename:= "Chemin du repertoire du fichier\X.xls " 

- piocher les infos utiles
- fermer le classeur
ActiveWorkbook.Close SaveChanges:=False

De la doc la dessus à cette adresse...
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
0
bonjour pijaku,
deja merci pour ton interet.

ta solution pourrait m'aller mais en dernier recourt,
mais j'ai une autre question pour toi si tu veux bien :
dans la ligne de code
Workbooks.Open Filename:= "Chemin du repertoire du fichier\X.xls " 

est-il possible de mettre une variable après le chemin du répertoire? je m'explique, j'ai plusieurs classeur a ouvrir et les noms de ces classeurs sont dans une feuille "paramètres" de mon classeur d'origine. Quel est le code pour faire cela?

merci !!!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
20 mai 2010 à 10:52
Supposons que tes noms de classeur soient écrit en Feuil2 de A1à A20, un nom par cellule, et que ton chemin d'accès soit toujours le même.
Tu peux faire quelque chose comme ça :
Dim chemin, nomfic As String
Dim i As Integer
chemin = "C:\travail\fichiers Excel\"
For i = 1 to 20
nomfic = Sheets("Feuil2").Cells(i ,1).Value
Workbooks.Open Filename:= chemin & nomfic
'ici copier les valeurs utiles
ActiveWorkbook.Close SaveChanges:=False
Next i

Attention à bien mettre l'extension (.xls) dans tes noms de fichiers de A1 à A20 ex : toto.xls (pas toto)
0
Ce code est super !!
dernière question :
entre l'ouverture et la fermeture je fait une copie d'un tableau
Application.Goto Reference:="TableListe"
        Selection.Copy

le seul truc, c'est que quand le doc ce ferme avec le "ActiveWorkbook.Close", il me demande si je veux sauvegarder la copie que j'ai effectuée, en sachant que je n'en ai plus besoin. Comment annuler cette demande?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
20 mai 2010 à 11:23
??????? Peut être cela :
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=False
Next i 
'bla bla bla
Application.DisplayAlerts = True
End Sub
0
t'es un génie !
vraiment merci beaucoup, grace a toi le code a été terminer en 20 min alors que sa fait 3 jours que je suis dessus! alors encore merci !!!!!!!!
0