Besoin d'aide pour VBA

Besoin d'aide pour VBA - VB/VBA/VBS - Programmation

Marsh Posté le 03-04-2014 à 10:09:29    

Bonjour à vous tous,
 
Je viens pour ma première fois sur le forum pour solliciter votre aide :-).
 
Je dispose de fichiers Excel remplit chaque jour depuis plus ou moins un an (soit 300 fichiers). Ils sont tous identiques de part leur trame, seul varie les valeurs dans les champs à remplir.
 
Il y a un paramètre principal chaque jour dans une liste deroulante : "off line" ; "in line" ou"in transit" dans une cellule fusionnee (CDE ; 8). J'aimerai extraire les données (vitesse, conso, ... une dizaine de champ en gros) de tous les documents ayant le champ "In line" et les copier coller dans un nouveau fichier excel. J'imagine qu'il faut programmer une condition du type " IF "IN LINE" ON CELL (CDE ; 8) SO DO COPY..."
 
 
Peut-être que VBA n'est pas l'outil le plus adapté. Je suis ouvert à vos différents conseils/propositions et me permet de préciser que je n'ai pas de connaissances en VBA mais suis prêt à m'investir pour réaliser ce projet.
 
Je vous remercie d'avance.
 
Thibaut.


Message édité par thibaut68140 le 03-04-2014 à 10:24:30
Reply

Marsh Posté le 03-04-2014 à 10:09:29   

Reply

Marsh Posté le 03-04-2014 à 10:54:28    

Salut, voir http://forum.hardware.fr/hfr/Progr [...] 1595_1.htm et adapter à ton contexte


---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 03-04-2014 à 10:59:01    

Euh ca me semble assez complexe par rapport à mon cas et je retrouve pas l'action du "IF "IN LINE" " ... ce n'est pas possible de faire ca comme commande ?

Reply

Marsh Posté le 03-04-2014 à 11:11:33    

Re,http://cjoint.com/14ma/DCwnzZuLGAj.htm là tu as déjà 75% du code puisque ce fichier fusionne des fichiers xls ou csv , évidemment si tu ne cherches pas mais comme on dit : pas de bras pas de chocolat ..


Message édité par kiki29 le 03-04-2014 à 11:13:51

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 03-04-2014 à 11:27:50    

Moui merci :-)
 
Lorsque je lance une fusion (mois de février par exemple) il me crée un dossier avec un nouveau fichier Excel. Ce dernier est vide, j'imagine qu'il y a un soucis ?

Reply

Marsh Posté le 03-04-2014 à 11:51:51    

le fait que mes fichiers soient en xlsx peut entrainer le soucis ?
 
j'ai essayé avec 2 fichiers identiques en xls mais il copie etrangement, simplement les 4 premiers lignes de chacun des fichiers et sur la feuille. Le but est des les mettre sur une sheet differente ??


Message édité par thibaut68140 le 03-04-2014 à 12:01:54
Reply

Marsh Posté le 03-04-2014 à 15:48:58    

re, une version fusion pour les xlsx, à adapter : pas de cellules fusionnées dans les fichiers à fusionner et macro nettoyage à personnaliser http://cjoint.com/?DDdpTQAzYBI


Message édité par kiki29 le 03-04-2014 à 15:49:58

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 03-04-2014 à 16:02:02    

j'ai repris avec des .xls entre temps depuis ce matin mais je n'y arrive toujours pas.
 
Du coup je veux verifier qu'on parle bien d'un outil qui permet de réunir X fichiers dans 1 seul fichier contenant plusieurs onglets ?
 
Quand je lance (.xls) pour un mois (30 fichiers) il me sort un document DATA001, mais il est vierge ...


Message édité par thibaut68140 le 03-04-2014 à 16:02:20
Reply

Marsh Posté le 03-04-2014 à 16:15:50    

re, poste qqs fichiers à xxxx@xxxxx.xx je regarderais à l'occasion


Message édité par kiki29 le 03-04-2014 à 17:23:34

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 03-04-2014 à 16:39:36    

D'accord

Reply

Marsh Posté le 03-04-2014 à 16:39:36   

Reply

Marsh Posté le 03-04-2014 à 17:04:17    

Pour le code c'est bon  
Je tape ça:
 

Sub macro3()
 
' condition Macro
If Sheets("Daily Report" ).Range("C8" ) = "At port" Then
Sheets("Sheet2" ).Range("A1" ) = Sheets("Daily Report" ).Range("C8" ).Value
End If
 
End Sub


 
Il recupere la bonne chose dans le menu deroulant. reste simplement le soucis de fusion de feuilles :-)


Message édité par thibaut68140 le 03-04-2014 à 17:05:16
Reply

Marsh Posté le 03-04-2014 à 21:20:33    

Salut, je t'avais suggéré de me poster qqs fichiers mais visiblement rien, alors tchao.


---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 04-04-2014 à 09:11:02    

je t'ai envoyé ça hier à 16h33 depuis gmail. Tu le vois pas ??

Reply

Marsh Posté le 04-04-2014 à 11:11:39    

c'est bon j'ai reussi  :-)
 

Code :
  1. Dim chemin As String
  2. Dim rep As String
  3. Dim fic As String
  4. Dim Wf As Workbook
  5. Dim source As Range
  6. rep = ThisWorkbook.Path & "\"
  7. Application.ScreenUpdating = False
  8. Application.EnableEvents = False
  9. Application.DisplayAlerts = False
  10. Set Wf = ThisWorkbook
  11. fic = Dir(rep & "*.xls" )    ' recherche fichiers
  12. While fic <> ""
  13. If fic <> ThisWorkbook.Name Then
  14.     chemin = rep & fic       ' chemin fichiers
  15.          
  16.         Workbooks.Open chemin, 0  ' ouverture
  17.         Set source = ActiveWorkbook.Sheets(1).Range("A1:IV65000" )
  18.         Wf.Sheets.Add
  19.          
  20.         source.Copy
  21.         With Wf.Sheets(1)
  22.         .Cells(1).PasteSpecial Paste:=8
  23.         .Cells(1).PasteSpecial Paste:=xlPasteValues
  24.         .Cells(1).PasteSpecial Paste:=xlPasteFormats
  25.         Application.CutCopyMode = False
  26.         End With
  27.          
  28.     ActiveWorkbook.Close
  29. End If
  30.     fic = Dir
  31. Wend



Message édité par thibaut68140 le 04-04-2014 à 11:12:46
Reply

Marsh Posté le 04-04-2014 à 11:17:46    

Salut, non je n'ai strictement rien reçu comme mail


Message édité par kiki29 le 04-04-2014 à 12:07:55

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Sujets relatifs:

Leave a Replay

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