Excel converstion de tableau

Signaler
Messages postés
2
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
30 janvier 2008
-
Messages postés
2
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
30 janvier 2008
-
Bonjour,
j'ais un tableau style cédule de production dans excel 2003:

Work order 10-01-2008 11-01-2008 12-01-2008 etc...
L51000 10 null 20 etc..
L52011 null 1000 200 etc ..

Je veut importé le tableau dans sql mais j'aurais besoin avant de le convertir de cette facon:

Work order date quantity
L51000 10-01-2008 10
L51000 12-01-2008 20
etc...
L52011 11-01-2008 1000
L52011 12-01-2008 200
etc...

Je ne suis pas un expert en vb je suis surtout spécialiste en database sql je ne sais pas par ou commencé pour eliminé les null transposé et dupliquété les étiquette de work order enfin un départ serais grandement aprécié.

Merci d'avance,
Badstef.
BadStef

1 réponse

Messages postés
2
Date d'inscription
jeudi 11 décembre 2003
Statut
Membre
Dernière intervention
30 janvier 2008

Bonjour, j'ai recu ce code d'un forum ca fonctionne très bien et c est très simple:


Merci a tout ceux qui m on aidé.
Badstef


ex:
Sub ConvertTable()


  Dim C As Long
  Dim LastCol As Long
  Dim LastRow As Long
  Dim N As Long
  Dim R As Long
  Dim Rng As Range
  Dim NewWks As Worksheet
 
    N = 2
    Set NewWks = Worksheets("result")
 '   Set NewWks = Worksheets.Add(After:=Worksheets(Worksheets.Count))
    Set Rng = NewWks.Range("A1:C1")
   
      With Rng
        .Cells(1, 1) = "Work Order"
        .Cells(1, 2) = "Date"
        .Cells(1, 3) = "Quantity"
        .Font.Bold = True
        .Columns.AutoFit
      End With
      With Worksheets("source")
      'With ActiveSheet
        LastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        'LastCol = 10
        'LastRow = 10
      End With
     ' MsgBox (LastRow)
        For R = 2 To LastRow
          For C = 2 To LastCol
            If Not IsEmpty(ActiveSheet.Cells(R, C)) Then
               NewWks.Cells(N, "A") = Worksheets("source").Cells(R, "A")  'Work Order
               'NewWks.Cells(N, "A") = ActiveSheet.Cells(R, "A")  'Work Order
               NewWks.Cells(N, "B") = Worksheets("source").Cells(1, C)  'Date
               NewWks.Cells(N, "C") = Worksheets("source").Cells(R, C)  'Quantity
               N = N + 1
            End If
          Next C
        Next R
     
End Sub

BadStef