Bonjour, Bonjour,

J'en appel encore à votre savoir

J'ai un (ou plutot plusieurs) fichiers, avec plusieurs onglets (nom défini dans une table mais variblable), il me faut rappatrié les données contenues dans les differents onglets (sauf un nommé toujours de la même maniere) dans un autre fichiers, avec toutes les lignes les une à la suite des autres

Le principe retenue : début cellule B14, s'il y a qq chose copie de la ligne entiere (car il y a des cellules vides mais qu'il faut garder absolument) dans le tableau de destination en commencé à A3, puis la ligne suivante etc etc, lorsque l'on tombe sur une cellule vide en colonne B on passe à l'autre onglet.

Les lignes doivent être copiées telles quelles, c'est à dire avec la même mise en forme, et les cellules vides.

Ensuite une fois le fichiers reconstituer, je devrai faire une recherche par equilavance dans 2 onglets de mon fichiers de destination et s'il y à un équilavent, copier les données dans l'onglet correspondant par exemple cellule CX dans DX etc, mais toujours dans le même ordre.

Voici mon début de code (récuperer à droite à gauche) mais je ne suis pas sur d'etre partit dans la bonne direction et surtout la je seche depuis un moment....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
 
Sub Importation()
 
Dim classeurDestination As Workbook
Dim classeurSource As Workbook
Dim onglet As Worksheet
Dim plage As Range
 
Application.ScreenUpdating = False
Worksheets.Add after:=Sheets(Sheets.Count)
 
ActiveSheet.Move Before:=Sheets(1)
ActiveSheet.Name = "Données"
 
' On rempli de l'entête du tableau
 
Cells(2, 1).Value = "CODE_PIECE"
Cells(2, 2).Value = "CODE_PIECE_ANCIEN"
Cells(2, 3).Value = "NOM_USAGE"
Cells(2, 4).Value = "NOM_NORMALISE"
Cells(2, 5).Value = "NOM_USAGE"
Cells(2, 6).Value = "NOM_NORMALISE"
Cells(2, 7).Value = "SECTEUR_ACTIVITE"
Cells(2, 8).Value = "SOUS_SECTEUR_ACTIVITE"
Cells(2, 9).Value = "CODE_UG"
Cells(2, 10).Value = "CODE_UA"
Cells(2, 11).Value = "OCCUPANT_EXTERNE"
Cells(2, 12).Value = "CODE_POLE"
Cells(2, 13).Value = "SERVICE"
Cells(2, 14).Value = "DISPONIBILITE"
Cells(2, 15).Value = "ACCES_HANDICAPES"
Cells(2, 16).Value = "SURFACE"
Cells(2, 17).Value = "HSP"
Cells(2, 18).Value = "HSFP"
Cells(2, 19).Value = "VOLUME"
Cells(2, 20).Value = "RISQUE_LABORATOIRE"
Cells(2, 21).Value = "AMIANTE"
Cells(2, 22).Value = "NATURE_SOL"
 
 
Set classeurDestination = ThisWorkbook
 
  ' On demande le nom du fichier à ouvrir et on le note en A1
  Cells(1, 1).Value = Application.GetOpenFilename("Fichier Excel (*.xls), *.xls")
 
  'On ouvre le classeur choisi noté en A1
Set classeurSource = Application.Workbooks.Open(Cells(1, 1).Value, , True)
 
 
 
For Each onglet In classeurSource.Worksheets 'pour tous les onglets du classeur source
 
' sauf pour l'onglet MODE EMPLOI
 
If onglet.Name <> "MODE EMPLOI" Then 'si l'onglet est different de MODE EMPLOI
 
 
End If
Next
 
 
'classeurSource.Close
 
'MsgBox "!!YouPiDou!!"
 
End Sub
Et la je bloque....

J'ai testé tout plein de morceau mais sans succes....

Il faudrait que je definisse la plage dans le classeur source?

Choisir derniere ligne non vide de la colonne B et remonter ?


Si vous avez une idée....

Merci d'avance


Voici le type de fichier, sachant qu'ils auront tous la même forme.
Et le fichier plateforme me sert d'echange entre excel et Autocad

http://www.cijoint.fr/cjlink.php?fil...cij05A3c8R.zip