Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 07/11/2006, 16h03   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: novembre 2006
Messages: 17
Par défaut Parcours itératif de cellule

Salut, voilà le truc que j'ai à faire... c'est pas bien complexe mais le code VBA, c'est un peu obscur pour moi.
Alors oui, c'est sûr, je pourrais apprendre mais disons que mon projet est assez pressé et que c'est vraiment une annexe pour de la documentation alors j'ai pas trop le temps, je sollicite donc votre aide! Merci d'avance...

j'ai donc des noms de fichiers (oui encore des noms de fichiers, ceux qui ont suivis mon post précédent comprendront ) dans une colonne (je reprécise, une et une seule colonne). Par exemple toto.xls, puis tata.xls enfin vous voyez je pense.

Le problème, c'est que je ne connais pas la colonne par avance, ça peut être la colonne D, la F, la G etc... Je ne sais pas non plus à quelle ligne est inscrit le premier nom de fichiers, ni à quelle ligne le dernier se trouve le dernier. Tout ce que je sais, c'est que du premier fichier au dernier, il ne peut y avoir de vide.

Voilà, le décors est planté! Maintenant ce que je veux faire, c'est une macro qui ouvre tous les fichiers de la colonne contenant les fichiers.
Pour la macro, bon, j'ai un début de piste:

Code:
Sub ChargerFichiers()
Dim Chemin$, Wbk As Workbook
Chemin = "D:\repertoire\toto.xls"
Workbooks.Open Chemin
End Sub
J'ai donc le code pour ouvrir toto.xls. Maintenant pour récupérer ma colonne, ça se gate... vu que je suis une quiche. Le pseudo-algo serait un truc du genre:

Code:
booleen trouver = faux;
cellule garde; // l adresse de la cellule ou se trouve le premier nom de fichier
entier i=1; // numero de ligne
colonne J; // colonne
Tant que (booleen == faux)
|      Pour J de A à Z (on dit que la colonne le nom de fichier ne peut être  après  la colonne Z)
|      |    Si Cellule[J][i] contient .xls sur sa ligne (alors c'est la colonne nom de fichier car aucune autre colonne ne contiendra de nom de fichier)
|      |    {
|      |    |       garde = Cellule[J][i];
|      |    |       trouver = vrai;
|      |    |
|      |    }
|      |    I++;
|      | 
|      finpour
fintantque

// maintenant on sait ou se trouve le premier nom de fichier, on a plus qu'a parcourir toute la colonne jusqu'à trouver un blanc
I=0;
Tant que garde!=blanc
|   ouvrirFichier(garde);
|   I++;
|   garde = cellule[J][i]
fintantque
Voilà, c'est du pseudo-code, ça fait peut être long à lire comme post mais je pense que ça permets d'être plus clair pour éventuelle résolution, alors merci à tous! Si quelqu'un a une autre solution que celle que je propose, je suis preneur, c'est plus une question de non maitrise du langage que de problème avec comment faire!
the_ionic est déconnecté   Réponse avec citation
ANNONCES
Vieux 07/11/2006, 16h15   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de Hervé
 
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 452
Par défaut Re : Parcours itératif de cellule

bonjour

peut etre une piste à travers ce code :

Code:
Dim c As Range
Dim Chemin$
Dim i As Integer
Dim colonne As Byte
Dim lignedebut As Integer, lignedefin As Integer

Chemin = "D:\repertoire\"


Set c = Cells.Find(".xls")
If Not c Is Nothing Then
    colonne = c.Column
    lignedebut = c.Row
    lignedefin = Cells(65536, colonne).End(xlUp).Row
    For i = lignedebut To lignedefin
        Workbooks.Open Chemin & Cells(i, colonne)
    Next i
End If
salut
Hervé est déconnecté   Réponse avec citation
Vieux 07/11/2006, 17h19   #3 (permalink)
XLDnaute Nouveau
 
Date d'inscription: novembre 2006
Messages: 17
Par défaut Re : Parcours itératif de cellule

Merci beaucoup, c'est je pense, le gros du travail.
Par contre cela ne fonctionne pas, enfin ça ne marche que pour le premier fichier, ensuite je récupère une erreur du type:

Code:
Erreur '1004'
"c:\repertoire\" introuvable. Vérifier l'orthographe du nom...
Donc il arrive pas à chopper le nom du deuxième fichier apparement vu que y'a rien après répertoire. Or celui-ci est bien juste en dessous le premier nom de fichier. J'ai beau essayer de débugger, je vois pas...
the_ionic est déconnecté   Réponse avec citation
Vieux 08/11/2006, 11h00   #4 (permalink)
XLDnaute Nouveau
 
Date d'inscription: novembre 2006
Messages: 17
Par défaut Re : Parcours itératif de cellule

Petite précision préalable:
J'appele maitre.xls le classeur qui contient les noms de fichiers, et la macro permettant de lancer l'ouverture de tous les fichiers.
toto.xls est le premier nom de fichier dans la colonne nom de fichier.


Bon, j'ai identifié l'erreur... en fait, la première itération, ça marche bien.

Le fichier toto.xls s'ouvre.
Ensuite au niveau des différents indexs, c'est nickel, par contre ce qui va pas, c'est qu'il va essayer d'aller voir le nom du fichier dans le fichier toto.xls car celui-ci est le workbook actif or il faudrait qu'il regarde dans le fichier maitre.xls.

J'arrive pas à résoudre ce problème... quelqu'un a une idée?

Merci beaucoup!
the_ionic est déconnecté   Réponse avec citation
Vieux 08/11/2006, 11h20   #5 (permalink)
XLDnaute Barbatruc
 
Avatar de pierrejean
 
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Version Excel : Excel 2000 (PC)
Messages: 5 807
Par défaut Re : Parcours itératif de cellule

bonjour the_ionic

salut Hervé

a tester
..............
For i = lignedebut To lignedefin
Workbooks.Open Chemin & Cells(i, colonne)
workbooks("maitre.xls").Activate
Next i
...............
pierrejean est déconnecté   Réponse avec citation
Vieux 08/11/2006, 11h52   #6 (permalink)
XLDnaute Nouveau
 
Date d'inscription: novembre 2006
Messages: 17
Par défaut Re : Parcours itératif de cellule

Nickel, ça marche, merci!

Par contre un nouveau problème, mon classeur maitre.xls fait un tas de calcul à l'aide des fichiers qu'il ouvre. Donc à chaque fichier ouvert, y'a un recalcul qui se fait donc ça rame carrêment.
Y'a pas moyen de dire à mon fichier maitre.xls, tu recalcules pas? Ou alors même mieux, tu recalcules que une fois tous les fichiers ouverts?

Merci beaucoup!
the_ionic est déconnecté   Réponse avec citation
Vieux 08/11/2006, 14h17   #7 (permalink)
XLDnaute Nouveau
 
Date d'inscription: novembre 2006
Messages: 17
Par défaut Re : Parcours itératif de cellule

Bon, j'ai trouvé. Voici la solution pour qui rencontrerait le même problème.

Code:
Sub ChargerFichiers()
Dim c As Range
Dim Chemin$
Dim i As Integer
Dim colonne As Byte
Dim lignedebut As Integer, lignedefin As Integer
Dim workBookName As String


workBookName = ThisWorkbook.Name
Chemin = ThisWorkbook.Path

Application.Calculation = xlCalculationManual
Set c = Cells.Find(".xls")
If Not c Is Nothing Then
    colonne = c.Column
    lignedebut = c.Row
    lignedefin = Cells(65536, colonne).End(xlUp).Row
    For i = lignedebut To lignedefin
         Workbooks.Open Chemin & "\" & Cells(i, colonne)
         Workbooks(workBookName).Activate
    Next i
End If
Application.Calculation = xlCalculationAutomatic
End Sub
qui fait bien le recalcul qu'une fois tous les fichiers ouverts.
the_ionic est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
tri iteratif d'après combo Francis Forum Excel 21 16/05/2005 17h45
basculer en calcul itératif à l'ouverture guillaume Forum Excel Downloads - Archives 0 16/12/2004 11h39
parcours colonne Antho Forum Excel Downloads - Archives 3 09/08/2004 17h06
Pb de parcours :-( jo Forum Excel Downloads - Archives 5 03/06/2004 22h58
Parcours de ligne. Cyril Forum Excel Downloads - Archives 14 25/10/2002 18h39


Fuseau horaire GMT +2. Il est actuellement 00h56.


(C) 2006 Excel Downloads