gérer trois classeurs différents

gérer trois classeurs différents - VB/VBA/VBS - Programmation

Marsh Posté le 20-04-2007 à 09:16:39    

edit : cf Etat actuel

  

Bonjour,

 

j'ai un problème, je ne m'en sors pas en voulant virevolter sur 3 classeurs différents

 

je m'explique : j'ai un fichier d'utilisation de prévision d'utilisation du matériel (VENDREDI 13 AVRIL.xls) tapé par une autre personne donc un peu désordonné, et cette personne n'utilise pas les mêmes références que ce que l'on me demande (elle indique par exemple le num de la plaque et mon supérieur veut le num de réf interne du véhicule)

 

j'ai donc associé une base de donnée faisant correspondre les plaques et les réf internes

 

VENDREDI 13 AVRIL.xls : fichier de prévision d'utilisation du matériel
BaseDeDonnes.xls : base de données correspondances plaque/réf internes
DefautPointage.xls : là où je evux que ça soit transcrit

  

Mon problème est qu'à force d'ouvrir les classeurs excel et de les fermer, ça ne va pas ... il n'y a pas moyen de travailler temporairement dans un classeur pour qqs instructions, puis passer à l'autre, puis revenir à celui là etc ... sans devoir ouvrir et fermer à chaque fois ?

 


Code :
  1. Dim Ligne
  2. Dim Cellule
  3. Dim Employe
  4. Dim appExcel As Excel.Application
  5. Dim BaseDeDonnees As Excel.Workbook
  6. Dim VENDREDI13AVRIL As Excel.Workbook
  7. Dim DefautPointageFinal As Excel.Workbook
  8. 'Macro balayant le tableau verticalement dans la première colonne
  9. Sub BalayageVertical()
  10.    
  11.     Set appExcel = CreateObject("Excel.Application" )
  12.     Set BaseDeDonnees = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\BaseDeDonnees.xls" )
  13.     Set VENDREDI13AVRIL = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\VENDREDI 13 AVRIL.xls" )
  14.     Set DefautPointageFinal = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\DefautPointageFinal.xls" )
  15.     Ligne = 5
  16.    
  17.     Workbooks.Open (VENDREDI13AVRIL)
  18.     For Each Cellule In Range("A:A" )
  19. 'Instruction de sortie du balayage vertical
  20.         If Cellule.Value = "LOCATION EXT" Then
  21.             n = 1
  22.         ElseIf ValeurCellule <> NullString Then
  23.             Call RechercheChef
  24.         End If
  25.     Next
  26.     End Sub


Message édité par Xocs le 25-10-2011 à 14:59:01
Reply

Marsh Posté le 20-04-2007 à 09:16:39   

Reply

Marsh Posté le 20-04-2007 à 09:57:43    

tu peux retirer la fonction .open dans tes workbook, tu mets juste  
for each cell in workbooks("vendredi13" ).range("A:A" )
next

Reply

Marsh Posté le 20-04-2007 à 10:45:43    

jpcheck a écrit :

tu peux retirer la fonction .open dans tes workbook, tu mets juste  
for each cell in workbooks("vendredi13" ).range("A:A" )
next


 
 
mouarf, c'est un truc comme ça que je cherchais ... merci beaucoup à toi :)
 
 :hello:

Reply

Marsh Posté le 20-04-2007 à 11:13:33    

Euh en fait, je viens donc d'écrire  
 

Code :
  1. For Each Cellule In Workbooks("VENDREDI13AVRIL" ).Range("A:A" )
  2. 'Instruction de sortie du balayage vertical
  3.        If Cellule.Value = "LOCATION EXT" Then
  4.            n = 1
  5.        ElseIf ValeurCellule <> NullString Then
  6.            Call RechercheChef
  7.        End If
  8.    Next


 
Et cela provoque une erreur d'exécution 9 : L'indice n'appartient pas à la sélection.
 
Tu saurais d'où cela peut venir ?


Message édité par Xocs le 20-04-2007 à 11:30:17
Reply

Marsh Posté le 20-04-2007 à 11:16:36    

essaye avec ca  
For Each Cellule In Workbooks("VENDREDI13AVRIL" ).Range("A:A" ).Cells

Reply

Marsh Posté le 20-04-2007 à 11:28:08    

jpcheck a écrit :

essaye avec ca
For Each Cellule In Workbooks("VENDREDI13AVRIL" ).Range("A:A" ).Cells

 


Code :
  1. Dim Ligne
  2. Dim Cellule
  3. Dim Employe
  4. Dim NumeroFeuille
  5. Dim FeuilleBaseDeDonnes As Integer
  6. Dim FeuilleVENDREDI13AVRIL As Integer
  7. Dim FeuilleDefautPointage As Integer
  8.  
  9. Dim appExcel As Excel.Application
  10. Dim BaseDeDonnees As Excel.Workbook
  11. Dim VENDREDI13AVRIL As Excel.Workbook
  12. Dim DefautPointage As Excel.Workbook
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. 'Macro balayant le tableau verticalement dans la première colonne
  21. Sub BalayageVertical()
  22.    NumeroFeuille = 0
  23.    
  24.    Set appExcel = CreateObject("Excel.Application" )
  25.    
  26.    Set BaseDeDonnees = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\BaseDeDonnees.xls" )
  27.    Set VENDREDI13AVRIL = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\VENDREDI 13 AVRIL.xls" )
  28.    Set DefautPointage = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\DefautPointage.xls" )
  29.    
  30.    Ligne = 5
  31.    
  32.    For Each Cellule In Workbooks("VENDREDI13AVRIL" ).Range("A:A" ).Cells
  33. 'Instruction de sortie du balayage vertical
  34.        If Cellule.Value = "LOCATION EXT" Then
  35.            n = 1
  36.        ElseIf ValeurCellule <> NullString Then
  37.            Call RechercheChef
  38.        End If
  39.    Next
  40.    End Sub
 


ça me redonne la même erreur :/

Message cité 1 fois
Message édité par Xocs le 25-10-2011 à 14:59:44
Reply

Marsh Posté le 20-04-2007 à 11:33:33    

et avec ca ?

Xocs a écrit :

Code :
  1. For Each Cellule In VENDREDI13AVRIL.Range("A:A" ).Cells




Reply

Marsh Posté le 20-04-2007 à 11:37:04    

ça me retourne une erreur d'exécution 438 : propriété ou méthode non gérée par cet objet ...

Reply

Marsh Posté le 20-04-2007 à 11:45:13    

Si je comprends bien, par exemple, ici, VENDREDI13AVRIL représente l'instruction d'ouverture de l'application
 
dans la ligne For Each Cellule In VENDREDI13AVRIL.xls.Range("A:A" ).Cells, on lui demande de rouvrir le fichier non ?

Reply

Marsh Posté le 20-04-2007 à 12:17:03    

Salut,
Workbooks, ne comporte pas de Range ni de Cells...
Workbooks("blabla" ).Worksheeets("truc" ).Cells ou Range...
A+

Reply

Marsh Posté le 20-04-2007 à 12:17:03   

Reply

Marsh Posté le 20-04-2007 à 13:43:09    

galopin01 a écrit :

Salut,
Workbooks, ne comporte pas de Range ni de Cells...
Workbooks("blabla" ).Worksheeets("truc" ).Cells ou Range...
A+

 

je viens de modifier comme ceci :

 
Code :
  1. Dim Ligne
  2. Dim Cellule
  3. Dim Employe
  4. Dim NumeroFeuille
  5.  
  6. Dim appExcel As Excel.Application
  7.  
  8. Dim BaseDeDonnees As Excel.Workbook
  9. Dim VENDREDI13AVRIL As Excel.Workbook
  10. Dim DefautPointage As Excel.Workbook
  11.  
  12. Dim FeuilleBaseDeDonnees As Excel.Worksheet
  13. Dim FeuilleVENDREDI13AVRIL As Excel.Worksheet
  14. Dim FeuilleDefautPointage As Excel.Worksheet
  15.  
  16.  
  17. 'Macro balayant le tableau verticalement dans la première colonne
  18. Sub BalayageVertical()
  19.        
  20.    Set appExcel = CreateObject("Excel.Application" )
  21.    
  22.    Set BaseDeDonnees = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\BaseDeDonnees.xls" )
  23.    Set VENDREDI13AVRIL = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\VENDREDI 13 AVRIL.xls" )
  24.    Set DefautPointage = appExcel.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\DefautPointage.xls" )
  25.    
  26.    Set FeuilleBaseDeDonnees = BaseDeDonnees.Worksheets(1)
  27.    Set FeuilleVENDREDI13AVRIL = VENDREDI13AVRIL.Worksheets(1)
  28.    Set FeuilleDefautPointage = DefautPointage.Worksheets(1)
  29.    
  30.    Ligne = 5
  31.    
  32.    For Each Cellule In Workbooks("VENDREDI13AVRIL" ).Worksheets("FeuilleVENDREDI13AVRIL" ).Range("A:A" )
  33. 'Instruction de sortie du balayage vertical
  34.        If Cellule.Value = "LOCATION EXT" Then
  35.        ElseIf ValeurCellule <> NullString Then
  36.            Call RechercheChef
  37.        End If
  38.    Next
  39.    End Sub
 

et ça s'arrêt à la ligne 32 en faisant une erreur 9 : indice n'appartenant pas à la sélection

 

Pourtant, ça me paraissait bon cette fois-ci :/


Message édité par Xocs le 25-10-2011 à 15:00:10
Reply

Marsh Posté le 20-04-2007 à 14:40:01    

VENDREDI13AVRIL est une variable (As Excel.Workbook) et tu l'utilises comme un string
de même FeuilleVENDREDI13AVRIL est une variable (As Excel.Worksheet) et tu l'utilises comme un string
 
Ou tu utilises tes variables instanciées ou tu utilises directement les noms de claseurs et de feuilles.
De manière générale il est maladroit d'utiliser des noms de variables équivoques (semblables aux noms d'objets)
 
En gros ça donne, (non verifié et codé avec le pied... )
ou :
For Each Cellule In Workbooks("VENDREDI 13 AVRIL. xls" ).Worksheets("Feuille1" ).Range("A:A"  
 
ou :
sans Dim appExcel As Excel.Application
Dim Wb As Workbook
Dim Ws As Worksheet
Set Wb = Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\VENDREDI 13 AVRIL.xls" )
Set Ws = Wb.Worksheets(1)
 
For Each Cellule In Ws.Range...
 
 
A+


Message édité par galopin01 le 27-10-2011 à 08:27:58
Reply

Marsh Posté le 20-04-2007 à 14:51:54    

Et si tu tiens à l'ouvrir dans une autre instance...
 
Dim App As Excel.Application  
Dim Wb As Workbook  
Dim Ws As Worksheet  
Set App = CreateObject("Excel.Application" )
Set Wb = App.Workbooks.Open("D:\Mes documents\user\Script SAP régulation\Tests\VENDREDI 13 AVRIL.xls" )  
Set Ws = Wb.Worksheets(1)
 
For Each Cellule In Ws.Range...  
 
A+


Message édité par galopin01 le 27-10-2011 à 08:28:16
Reply

Marsh Posté le 20-04-2007 à 14:58:00    

Euh...
Je peine un peu à comprendre cette structure :
 
Dim...
Dim...
Dim...
 
Sub...
 
End Sub
 
ça me parait (pour le moins) ...curieux !
A+

Reply

Marsh Posté le 20-04-2007 à 15:04:21    

Merci beaucoup :)
ça marche à présent. j'ai d'autres problèmes mais je vais tenter de trouver seul ;)

Reply

Marsh Posté le 20-04-2007 à 15:07:07    

galopin01 a écrit :

Euh...
Je peine un peu à comprendre cette structure :
 
Dim...
Dim...
Dim...
 
Sub...
 
End Sub
 
ça me parait (pour le moins) ...curieux !
A+


 
 
Ah ? eh bien je pensais déclarer les variables dans la déclartion, d'où les Dim
 
puis après les utiliser dans ma macro Sub ... End Sub
 
non ?  [:tibo2002]

Reply

Marsh Posté le 20-04-2007 à 15:57:07    

Ben, sauf utilisation très très particulière d'habitude c'est :
 
Sub...
Dim...
Dim...
Dim...
 
End Sub


Message édité par galopin01 le 20-04-2007 à 15:59:01
Reply

Marsh Posté le 20-04-2007 à 16:15:45    

Ah ok, mais j'utilise ces variables dans d'autres Sub aussi (j'ai essayé d'intégrer ça dans la première, ça ne marchait plus)

Reply

Marsh Posté le 20-04-2007 à 16:19:42    

ca fait donc partie des utilisations particulière
 
regarde l'aide de vba avec le mot "public"

Reply

Marsh Posté le 20-04-2007 à 18:06:17    

Ok. Mais j'avoue que je ne saisis pas bien l'intérêt de "s'embêter" à les déclarer Public alors qu'en les déclarant au début ça marche :??:
C'est juste sémantiquement plus correct ? plus élégant ? ou il y a des raisons ?
 
 
J'ai un autre problème après : j'essaye de copier le contenu d'une cellule dans l'autre, j'ai donc fait
 

Code :
  1. Sub InscriptionEngin()
  2.    FeuilleDefautPointageFinal.Cells(1, Ligne).Value = FeuilleBaseDeDonnees.Cells(1, Ligne2).Value
  3.    FeuilleDefautPointageFinal.Cells(2, Ligne).Value = FeuilleBaseDeDonnees.Cells(4, Ligne2).Value
  4.    FeuilleDefautPointageFinal.Cells(4, Ligne).Value = FeuilleBaseDeDonnees.Cells(3, Ligne2).Value
  5. End Sub


 
 
Mais celà ne marche pas : erreur d'exécution 1004 : erreur définie par l'application ou par l'objet.
 
J'avais aussi essayé de passer par une variable
 

Code :
  1. Sub InscriptionEngin()
  2.    IdEngin = FeuilleBaseDeDonnees.Cells(1, Ligne2).Value
  3.    Description = FeuilleBaseDeDonnees.Cells(4, Ligne2).Value
  4.    Dernier = FeuilleBaseDeDonnees.Cells(3, Ligne2).Value
  5.    
  6.    FeuilleDefautPointageFinal.Cells(1, Ligne).Value = IdEngin
  7.    FeuilleDefautPointageFinal.Cells(2, Ligne).Value = Description
  8.    FeuilleDefautPointageFinal.Cells(4, Ligne).Value = Dernier
  9. End Sub


 
Cela ne marche pas non plus, même en mettant IdEngin entre "" ...

Reply

Marsh Posté le 20-04-2007 à 18:17:13    

Non, ce n'est pas sémantique, c'est conceptuel.
 
Sauf exceptions (assez exceptionnelles au niveau débutant) les Dim se placent au début de chaque Sub...
 
Il est difficile de corriger une macro avec des bribes de bouts de morceau de modules surtout si tu mets tes Dim en tête !
 
Celà dépend de l'ensemble de ton classeur, du (ou des) modules utilisés d'autant que tu fais des appels à d'autres procédures...
 
[Edit] Ce n'est pas un jugement péjoratif ! On est tous débutant en quelque chose...  
Ta manière de voir les déclarations est peut-être vraie en C#, java ou Php, et tu es peut être un expert dans ces langages, je ne sais pas, mais en VBA tu fais surement fausse route.
 
A+

Message cité 1 fois
Message édité par galopin01 le 20-04-2007 à 18:26:39
Reply

Marsh Posté le 20-04-2007 à 18:26:58    

En fait, plus simplement, je n'arrive pas à écrire le contenu d'une cellule d'un classeur dans un autre classeur ... pourtant, ça doit pas être bien sorcier ... j'ai essayé par un copier coller, et par une méthode de Ws.Cells(1,1).value = Ws2.Cells(1,1).value mais ça ne marche pas ...

Reply

Marsh Posté le 20-04-2007 à 18:28:20    

galopin01 a écrit :

Non, ce n'est pas sémantique, c'est conceptuel.
 
Sauf exceptions (assez exceptionnelles au niveau débutant) les Dim se placent au début de chaque Sub...
 
Il est difficile de corriger une macro avec des bribes de bouts de morceau de modules surtout si tu mets tes Dim en tête !
 
Celà dépend de l'ensemble de ton classeur, du (ou des) modules utilisés d'autant que tu fais des appels à d'autres procédures...
 
[Edit] Ce n'est pas un jugement péjoratif ! On est tous débutant en quelque chose...  
Ta manière de voir les déclarations est peut-être vraie en C#, java ou Php, et tu es peut être un expert dans ces langages, je ne sais pas, mais en VBA tu fais surement fausse route.
 
A+


 
Ne t'inquiètes pas, je le prends bien ;) d'autant plus que tu cherches à m'aider visiblement :)
Bon, je vais les réintégrer en public.
 
PS : je ne suis par un expert en programmation :D j'ai des notions on va dire, et j'essaye de m'accrocher ...

Reply

Marsh Posté le 20-04-2007 à 18:33:53    

j'utilise souvent
cells(1,1).formular1c1
mais cells(1,1).value marche aussi
il y a surement une difference mais j'ai pas saisi laquelle essaye avec ca
ca peut peut etre marcher
 
si quelqu'un la connait je suis preneur

Reply

Marsh Posté le 20-04-2007 à 18:42:38    

ingenieurcesi a écrit :

j'utilise souvent
cells(1,1).formular1c1
mais cells(1,1).value marche aussi
il y a surement une difference mais j'ai pas saisi laquelle essaye avec ca
ca peut peut etre marcher
 
si quelqu'un la connait je suis preneur


 
 
le Ws.cells(1,1).value = Ws2.cells(1,1).value ne marche pas chez moi en tout cas :/

Reply

Marsh Posté le 20-04-2007 à 18:49:42    

tu as essayer avec formular1c1 ?
 
ce qui est sur ( je viens de le tester ) Cells(1, 2).Value = Cells(1, 1).Value fonctionne tu es bien sur de tes ws et ws2 ?
 
essaye ce petit test
ws2.cells(1,2).value=ws2.cells(1,1).value
val=ws2.cells(1,1).value
msgbox val
 
ou
ws.cells(1,1)=ws2.cells(1,1)

Reply

Marsh Posté le 20-04-2007 à 18:56:15    

bonsoir,
Non pas de Public des :
Sub...
Dim...
Dim...
 
End Sub
 
Bien sur dans un contexte de déclarations orthodoxes  
ws.cells(1,2).value=ws2.cells(1,1).value est correct.
C'est tout le reste qu'il faut disséquer, variable après variable, dans tout le module.
A+


Message édité par galopin01 le 20-04-2007 à 18:57:01
Reply

Marsh Posté le 20-04-2007 à 18:59:28    

bon, je me mets tellement à douter là que je préfère mettre une caps pour que qqn d'autre voie si j'ai pas fait d'erreur à la c... genre une variable mal orthographiée (mai je pense pas parce que les caps se mettent toutes seules)
 
http://www.hebergement-images.com/ [...] 3_caps.jpg


Message édité par Xocs le 20-04-2007 à 19:02:28
Reply

Marsh Posté le 20-04-2007 à 19:00:21    

FormulaR1C1 renvoie une value si la cellule contient une valeur, si elle contient une formule ça renvoie la formule en mode R1C1

Reply

Marsh Posté le 20-04-2007 à 19:07:53    

Je ne comprends pas ... si je fais une structure comme ça :
 

Code :
  1. Sub ...
  2. Public Dim ...
  3. Public Dim ...
  4.  
  5. ...
  6.  
  7. End Sub


 
ça devrait aller non ?

Reply

Marsh Posté le 20-04-2007 à 19:20:41    

quel est l'intéret de mettre public dans ta sub ?

Reply

Marsh Posté le 20-04-2007 à 19:21:37    

ouais je suis pas sur que dans ta derniere macro le "système" sache à quoi correpond feuillebasededonnees et feuilledefautpointagefinal

Reply

Marsh Posté le 20-04-2007 à 19:22:53    

si les varariables sont pas publics, d'une macro à l'autre, elles ne seront pas reconnues. non?!!

Reply

Marsh Posté le 20-04-2007 à 19:23:19    

jpcheck a écrit :

quel est l'intéret de mettre public dans ta sub ?


 
 
que la variable soit connue aussi dans les autres sub ?

Reply

Marsh Posté le 20-04-2007 à 19:24:08    

si tu mets public autant la mettre hors de la sub...

Reply

Marsh Posté le 20-04-2007 à 19:24:24    

vu que tes macros sont assez courtes pourquoi ne pas faire une seule macro.  
ca devrait resoudre ton problème et tu n'as qu'à faire que 2 couper/coller au bon endroit

Reply

Marsh Posté le 20-04-2007 à 19:24:49    

ingenieurcesi a écrit :

ouais je suis pas sur que dans ta derniere macro le "système" sache à quoi correpond feuillebasededonnees et feuilledefautpointagefinal


 
 
 
Ah ? Pourtant RechercheChef() passe sans problème (j'ai même testé avec des espions, il va bien chercher les bonnes valeurs)

Reply

Marsh Posté le 20-04-2007 à 19:25:20    

et moi aussi je l'ai mettrais hors de la sub

Reply

Marsh Posté le 20-04-2007 à 19:26:29    

ingenieurcesi a écrit :

vu que tes macros sont assez courtes pourquoi ne pas faire une seule macro.  
ca devrait resoudre ton problème et tu n'as qu'à faire que 2 couper/coller au bon endroit


 
 
 
euh oui, mais après je vais ajouter d'autres modules à ce programme
 
là c'est difficile parce que je début avec vba, mais après ça sera exactement le même style de manipulations à faire mais dans des ordres différents ... donc si j'arrive à m'en sortir là normalement c'est bon après :)
 
mais là j'ai peur que si je mette tout dans une macro, au final il faura que je fasse pareil et ça sera dur à suivre non ?
 
enfin, en même temps, si c'est la seule solution ...

Reply

Marsh Posté le 20-04-2007 à 20:37:33    

Public ou pas c'est sans intéret, ce ne me semble pas le problème.
Si l'on utilise une notation conventionnelle avec des variables dans les procédures, celà oblige à passer des paramètres et/(ou) à utiliser des blocs With pour travailler sur des objets diférents.
Ce ne me semble pas beaucoup plus compliqué que les contorsions que tu essaies de faire...
Il me semble (mais je ne suis pas du tout sur de cette affirmation) que le fait de déclarer des objets Workbook et Worksheet en tête de module rallonge exagérément la durée d'exécution de la procédure. Il faudrait vérifier en mettant un timer mais bon...
Quoi qu'il en soit, bien que cette méthode ne m'inspire guère, malgré ma répugnance, je l'ai testé sur 2 classeurs bidons, je vous passe un tas de commentaire...
J'ai juste résumé scrupuleusement le code :  
 

Code :
  1. Dim k, o
  2. Dim Wb As Workbook
  3. Dim WbB As Workbook
  4. Dim Ws As Worksheet
  5. Dim WsB As Worksheet
  6. Sub test()
  7. Set Wb = Workbooks.Open("A.xls" )
  8. Set WbB = ThisWorkbook
  9. Set Ws = Wb.Worksheets(1)
  10. Set WsB = WbB.Worksheets(1)
  11. For Each o In WsB.Range("A1:A10" )
  12. k = k + 1
  13. galopin
  14. Next
  15. End Sub
  16. Sub galopin()
  17. Ws.Cells(k, 1).Value = WsB.Cells(k, 1).Value
  18. End Sub


 
Et ça passe sans encombre ! Ce qui n'est en aucune façon un encouragement à coder de cette manière !
 
J'en déduit qu'il y a matière à examiner plus à fond l'ensemble du classeur de notre ami pour voir si dans les autres modules au hasard de ses déclarations globales, il n'y aurait pas des déclarations contradictoires.  
Pour ma part dans le code en image je ne vois pas d'anomalie criante (sauf peut-être cellule qui est déclarée) mais pas instanciée et ensuite utilisée à la volée de manière... (à vérifier mais bon...)
Tant qu'à mettre une pièce jointe, tu aurais aussi vite fait de balancer tout ton classeur sur cjoint ( en virant les données inutiles dans les feuilles.
Bonsoir.


Message édité par galopin01 le 20-04-2007 à 20:42:48
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed